Weird full screen glitch

In Eternity 3.37.00 I'm encountering a weird glitch in full screen mode. 11 pixels get cut off of the bottom of the screen and 3 pixels get cut off of the left side of the screen. At the same time, 11 pixels of garbage appear at the top of the screen and 3 pixels of garbage appear at the right side of the screen. This happens at all resolutions. Screenshots are unaffected by this, so I can only show it by taking a screencap.

Screencap



Screenshot

Share this post


Link to post

Have you tried updating your gfx-card drivers to the latest? Perhaps that could help.

Share this post


Link to post
ptoing said:

Have you tried updating your gfx-card drivers to the latest? Perhaps that could help.

Other things to try, in order:

  • Try -directx and see if that makes a difference.
  • Try the -8in32 parameter.
  • Try both of them together.
  • Try a different resolution, with and without the above flags. You can change your video mode setting temporarily from the command line by using -geom WWWWxHHHH[wf] where WWWW is the width, HHHH is the height, and [wf] means to specify either w or f to get windowed or fullscreen.
  • Disable the "vsync" option in the config file if it is enabled.
  • Run windowed instead of fullscreen.
  • If running windowed already, make sure you selected a resolution which is less than your desktop resolution in dimensions. SDL bugs out if you ask it to make a window larger than the desktop.
If none of these fix it, you're in a bad way. Either way, this is probably a machine-specific problem with the combo of video driver, SDL, and screen mode you are trying.

Also, info on the version of Windows you're using might be helpful.

Share this post


Link to post
Doom_user said:

Adding -directx fixes it completely.

OK in that case, you may wish to add the following to your system environment variables:

SDL_VIDEODRIVER=directx
Then you shouldn't have to use this command-line parameter any more. Hopefully somebody else can help you on how to do this, since I myself still do not know where later versions of Windows have squirreled the permanent environment variables off to. In Win9x you could just add them to your autoexec.bat >_>

Share this post


Link to post
Quasar said:

In Win9x you could just add them to your autoexec.bat >_>

For Win9x you could just add them to Eternity :)

Share this post


Link to post
entryway said:

For Win9x you could just add them to Eternity :)

How do you detect you're running on Win9x? Probably an amateur question but I've never had to do it, even with all the Win32-specific programming I've done over the years.

Share this post


Link to post
Quasar said:

How do you detect you're running on Win9x?

(int)GetVersion() < 0

prboom+ forces 'directx' for win9x only if config value for sdl_videodriver is "default" and it is not overridden through command line.

  {"sdl_videodriver", {NULL,&sdl_videodriver}, {0,"default"},UL,UL,
   def_str,ss_none},

  ...

  if ((p = M_CheckParm("-videodriver")) && (p < myargc - 1))
  {
    free(sdl_videodriver);
    sdl_videodriver = strdup(myargv[p + 1]);
  }

  if (strcasecmp(sdl_videodriver, "default"))
  {
    // videodriver != default
    char buf[80];
    strcpy(buf, "SDL_VIDEODRIVER=");
    strncat(buf, sdl_videodriver, sizeof(buf) - sizeof(buf[0]) - strlen(buf));
    putenv(buf);
  }
  else
  {
    // videodriver == default
#ifdef _WIN32
    if ((int)GetVersion() < 0 && V_GetMode() != VID_MODEGL ) // win9x
      putenv("SDL_VIDEODRIVER=directx");
#endif
  }

  p = SDL_Init(flags);

  if (p < 0 && strcasecmp(sdl_videodriver, "default"))
  {
    //e6y: wrong videodriver?
    lprintf(LO_ERROR, "Could not initialize SDL with SDL_VIDEODRIVER=%s [%s]\n",
      sdl_videodriver, SDL_GetError());

    putenv("SDL_VIDEODRIVER=");
    free(sdl_videodriver);
    sdl_videodriver = strdup("default");
    p = SDL_Init(flags);
  }

Share this post


Link to post
Quasar said:

OK in that case, you may wish to add the following to your system environment variables:

SDL_VIDEODRIVER=directx
Then you shouldn't have to use this command-line parameter any more. Hopefully somebody else can help you on how to do this, since I myself still do not know where later versions of Windows have squirreled the permanent environment variables off to. In Win9x you could just add them to your autoexec.bat >_>

http://support.microsoft.com/kb/310519
http://support.microsoft.com/kb/931715

Share this post


Link to post

SDL_VIDEODRIVER=directx question. This is a dumb question, but I don't know exactly where to put this information at. I opened the system config as a notepad document and wrote it at the bottom(screen in zip folder).

Can someone help my dumbass.

Share this post


Link to post
TendaMonsta said:

SDL_VIDEODRIVER=directx question. This is a dumb question, but I don't know exactly where to put this information at. I opened the system config as a notepad document and wrote it at the bottom(screen in zip folder).

Can someone help my dumbass.

It depends entirely on what operating system you're using.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now