Sign in to follow this  
Followers 0

Can't seem to enable vsync

Hello. I've been trying to make vsync work with the latest svn build (and also the latest official release) but it is no use.

-vsync: broken.

v_retrace: broken.

Before I go into details, I'd like to know if for some reason I should expect this to happen.

Regards.

Share this post


Link to post

'windib' does not support vsync and probably it is by default in EE. You have to use 'directx' SDL video driver. Try to use '-directx' command line switch. But if you have modern OS, then probably you will have some problems (with palette for example).

Also 'windib' is needed for dosbox (at least on my Win7), otherwise some keys do not work. For example I can't use '=' key in DOSBox (screen/automap zoomin in doom/heretic/hexen). So I use such DOS.BAT:

d:
cd \tools\dosbox
set sdl_videodriver=windib
start d:\tools\dosbox\dosbox.exe -noconsole

Share this post


Link to post

Thanks for the trick, it worked. Unfortunately I get random stuttering with vsync on, so even though I don't have problems with the palettes or anything else, I feel discouraged already.

Will give it another try when/if it's fixed.

Share this post


Link to post
entryway said:

Also 'windib' is needed for dosbox (at least on my Win7), otherwise some keys do not work.

If you uninstall the infrared remote driver in the control panel, windib shouldn't be needed anymore. See this. And if you need that driver, Windows will reinstall it automatically if you plug a receiver.

Share this post


Link to post

Are there any plans for getting rid of the hiccups in DirectX mode? the more I learn about Eternity's features, the more I like it, but it's annoying problems like this what keep me from giving it the attention it deserves.

Share this post


Link to post
Porsche Monty said:

Are there any plans for getting rid of the hiccups in DirectX mode? the more I learn about Eternity's features, the more I like it, but it's annoying problems like this what keep me from giving it the attention it deserves.

You must run the game in 32-bit mode. Either use -8in32 on the command line or go into system.cfg and set the display surface bitdepth to 16-, 24-, or 32-bit (32-bit recommended strongly). This is not an Eternity bug, and it cannot be fixed by Eternity. It is an SDL DirectX backend idiocy of which SDL has been notified multiple times and refuses to fix.

Also, vsync works best with the OpenGL 2D-in-3D backend.

Share this post


Link to post

Been there, done that, but it didn't work.

-8in32 was one of the first things I tried, basically because it fixed the item pickup palette lag in Chocolate Doom so I thought it might do something for Eternity given that it too is based on SDL.

Maybe I'm barking at the wrong tree here, but SDL, at least the way it works with Chocolate Doom, provides 100% hiccup-free video for me, and that's why I thought it was an Eternity problem.

Share this post


Link to post
Porsche Monty said:

Been there, done that, but it didn't work.

-8in32 was one of the first things I tried, basically because it fixed the item pickup palette lag in Chocolate Doom so I thought it might do something for Eternity given that it too is based on SDL.

Maybe I'm barking at the wrong tree here, but SDL, at least the way it works with Chocolate Doom, provides 100% hiccup-free video for me, and that's why I thought it was an Eternity problem.

You are the only person to ever report this as not fixing the DirectX issue. I think you should try again; it's possible you didn't actually get the mode you requested because your card doesn't support it. I would suggest trying different combinations of resolution and bitdepths higher than 8-bit.

Share this post


Link to post

I double-checked with a Windows printscreen screenshot (when the colours in the output image are ok, there's a big chance it isn't 8-bit) so I think I'm getting the requested mode?

I could only accurately test this with 2 display modes because others don't have that perfect 70hz and Eternity does not compensate when you're off by a few decimals, unlike, for example, Doom64 EX.

The problem isn't really like the item pickup palette hiccup in CD, it actually resembles more the stutter you get in most 35fps-capped source ports when vsyncing to anything other than a perfect 70hz or a multiple.

If SDL's still to blame here, well, guess I'm out of luck.

Thanks for the suggestion sorry for the inconvenience.

Share this post


Link to post
Porsche Monty said:

I double-checked with a Windows printscreen screenshot (when the colours in the output image are ok, there's a big chance it isn't 8-bit) so I think I'm getting the requested mode?

I could only accurately test this with 2 display modes because others don't have that perfect 70hz and Eternity does not compensate when you're off by a few decimals, unlike, for example, Doom64 EX.

The problem isn't really like the item pickup palette hiccup in CD, it actually resembles more the stutter you get in most 35fps-capped source ports when vsyncing to anything other than a perfect 70hz or a multiple.

If SDL's still to blame here, well, guess I'm out of luck.

Thanks for the suggestion sorry for the inconvenience.

Just to be certain, you are using -directx and -8in32 together, right? Also, the mode will need to be fullscreen or there's no chance of actually getting a surface that supports any type of sync'd update.

If you can't get this to work, I recommend trying the OpenGL 2D-in-3D backend, because it supports a true vsync that, for me at least, is smooth as glass, and even works in windowed mode.

Share this post


Link to post

Also, try toggling d_fastrefresh in the console. On some computers, setting it to 0 will limit CPU usage with no apparent drawbacks, but on others it can cause noticeable choppiness.

Share this post


Link to post

And so esselfortium solves the mystery. d_fastrefresh had to be turned on. No wonder no backend would work!

Here's a few lines from my system.cfg in case someone else finds himself dealing with this kind of problem:

i_videodriverid = 1
i_softbitdepth = 32
gl_colordepth = 32
d_fastrefresh = 1
use_vsync = 1

Thank you both for your help.

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
Sign in to follow this  
Followers 0