Roob's Fps/vsync Guide
Roobubba
Who you gonna call? Join Date: 2003-01-06 Member: 11930Members, Reinforced - Shadow, WC 2013 - Shadow
in Tech Support
<div class="IPBDescription">Using winXP/2k? Stuck on 60fps? READ ON!</div> The issues I discuss in this thread apply to those running winXP or win2k, REGARDLESS OF WHAT FPS YOU GET IN GAME.
I have, since the dawn of my gaming career, played in OpenGL (yeah ok, my online gaming career post quake 1 <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html/emoticons/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif'><!--endemo-->) with vsync disabled.
Why? To understand what you're doing with Vsync it's important to know:
<b>WHAT VSYNC IS</b>
Vsync, or "vertical synchronization" ensures that your monitor refresh rate (in Hz = 1/s) is synchronized with the in game frame rate (also effectively measured in "Hz" ie frames/s (fps)). It is set in your graphics card settings NOT IN GAME.
Disabling vsync means that the game will determine the frames per second, by running as fast as is possible in a particular configuration. The monitor will run at whatever the default refresh rate is at the resolution you're running in game.
VSYNC gives a different feel to how the game engine responds. With VSYNC off you may find more responsiveness, but it may feel less smooth than with the setting enabled. Try playing with and without Vsync (after addressing the refresh rate issue I describe below!!) to see what you prefer.
Bear in mind also that Vsync stops "frame tearing". This occurs when the frame to be displayed by the graphics card changes while the monitor is still "drawing the last one". In other words, the monitor starts to draw one frame, then the frame changes half way through (because the graphics card is outputting faster than the monitor can keep up). The result is called a "tear" and to be honest it looks pretty damn awful.
If your game cannot achieve the same frames per second as your monitor with Vsync ON, it will (sometimes) drop to 1/2 the value of your refresh rate, hence fps drops to 30, 20, 15 etc in *steps* when vsync is on, but without vsync the change is in 1fps units (or less)
NOTE: I have not found this on ATI radeon boards, so there may be something I'm missing here, but it is well documented on NVidia graphics boards...
<b>Monitor refresh rates</b>
60Hz is bad mmmkay. Speaking personally, I have had very bad headaches and eye strain from using a monitor at 60Hz (I didn't realise, this thread is the result of my realisation).
There are numerous reports of eye strain and headaches being caused by low refresh rates. it appears that running at refresh rates of 72-75 or higher reduces the risk of these problems significantly.
Monitor settings of "optimal" should be taken with a pinch of salt. Don't trust Windows to know what is best for your set up, find out for yourself!
Bear in mind that the resolution you run the game at is most likely to be lower than the resolution you run your windows desktop at. Your monitor may be able to handle higher refresh rates at the gaming resolution than at your desktop resolution.
You <b>have</b> to know what resolution your monitor is able to run at in a particular resolution. Better still, have the correct monitor drivers which should contain this information.
<b>Frames Per Second. How High and Why?</b>
In NS 1.0x and earlier (more generally in the HL engine), many aspects of the game are determined by your client frame rate.
For example, building speeds and jetpack thrust (not recharge rate) are determined by fps. Someone with 100 fps will build and jetpack upwards FAR quicker than someone with 30 fps. The same goes for leap and charge - the number of "touches" recorded (hence the number of 4 or 16 damages dealt by each attack respectively) is determined by fps. It is possible to do somewhere between 350 and 400 damage with one single leap at 100 fps.
Half life has a default maximum frame rate of 72. This can be increased to a maximum allowable value of 100, using the fps_max setting in the console (type "<b>fps_max 100</b>" without the " in console).
HOWEVER if vsync is enabled in your graphics card driver settings, the actual fps will be no more than the refresh rate of your monitor at the gaming resolution.
To find out your fps in game, type "<b>cl_showfps 1</b>" in console (without "). Settings 0 disables.
The "net_graph X" will show you your fps, however this uses a significant amount of resources. It is MOST useful for determining data transfer rates (in packets and kB/s), packet loss and choke values for your connection to the server. Only use for a short time, do not leave this setting on!
DO NOT USE "timerefresh" in console. It is NOT the true value of your fps!
<b>WindowsXP and Windows2000</b>
There is a known problem in these operating systems, where the monitor refresh rate will be defaulted to 60Hz in non-desktop resolutions, WHATEVER REFRESH RATE you have on the desktop setting.
EVEN IF YOU HAVE VSYNC DISABLED your monitor refresh rate will be 60Hz, which as we know is bad for your eyes mmmkay...
A fix I have found to work with both Nvidia and ATI cards under winXP *AND OPENGL* (not confirmed win2k yet) is called Refresh Lock. The website for this program is: <a href='http://www.pagehosting.co.uk/rl/' target='_blank'>http://www.pagehosting.co.uk/rl/</a> <span style='color:yellow'>I recommend this for ATI card users, there are more suitable programs for NVidia graphics card users (such as <a href='http://www.nvrt.org/' target='_blank'>http://www.nvrt.org/</a></span>
This program runs in the background and will force windows to use the maximum refresh rate reported by your monitor or monitor drivers for a particular resolution.
<b>Pre-2k windows</b>
There is not the same problem in these operating systems. Simple registry entries allow for refresh rates to be set for each known resolution.
In conclusion:
If you have a maximum fps of 60.0, you most likely have Vsync enabled, and you should try to increase your monitor refresh rate, because the benefits of increased Hz also give increased fps with VSYNC ON. Job's a good un.
If you have a max fps of 72, you can get higher by setting fps_max 100 in console You probably don't have vsync enabled, hence you may have a monitor refresh rate of 60 Hz (in winXP/2k), you should try to address this issue to make sure your monitor refresh rate is more than 72 (if your monitor supports these refresh rates!) (in other words set Vsync ON in your graphics card drivers and see what fps you get in game when you set fps_max 100)
If you have a max fps of 100, you most likely don't have vsync on, check the above paragraph to ensure your monitor is running properly.
If your fps is very low, it is advised that you don't use vsync (by meh <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->) but still make sure you're running at a high enough refresh rate in game (use refresh lock if necessary)
If your fps is 30, or 20 or 15 constantly and only ever changes between these values, YOU NEED TO DOWNLOAD one of the suggested programs to fix your monitor refresh rate. You monitor is at 60Hz but your system is not good enough to run at 60fps. Ensure you have the correct monitor drivers and ALSO THE BEST GRAPHICS CARD DRIVERS FOR YOUR BOARD*!!!! You will be able to run at a higher FPS by disabling vsync, but YOUR MONITOR WILL STILL RUN AT 60Hz unless you use a refresh fix program.
* NB not necessarily the newest, the *only* way is to try several (you can get lots of drivers, from the very earliest from <a href='http://www.reactorcritical.com' target='_blank'>Reactor Critical</a> but there are MANY other sites you can also get drivers from!! More info: <a href='http://www.guru3d.com' target='_blank'>Guru3D</a>.
Hope this helps. Any questions you can PM me.
I'm not an authority on this, and I've no doubt people will correct me if I've made a mistake here. I shall update it if there's anything wrong or anything unclear.
Thanks for your time, and good luck getting higher refresh rates and frames per second!
Roo
PS NS 1.1 will not address this issue, it is a problem with -HALF LIFE- under win2k and winXP NOT specifically natural selection.
PPS thanks go to TeoH, Uh-Oh, Eternal Bliss, Anavrin and Jower for their feedback on the original of this when it was in the general discussion forum. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
PPPS this was previously in the general discussion forum, but I put it here as it's more appropriately placed <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
I have, since the dawn of my gaming career, played in OpenGL (yeah ok, my online gaming career post quake 1 <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html/emoticons/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif'><!--endemo-->) with vsync disabled.
Why? To understand what you're doing with Vsync it's important to know:
<b>WHAT VSYNC IS</b>
Vsync, or "vertical synchronization" ensures that your monitor refresh rate (in Hz = 1/s) is synchronized with the in game frame rate (also effectively measured in "Hz" ie frames/s (fps)). It is set in your graphics card settings NOT IN GAME.
Disabling vsync means that the game will determine the frames per second, by running as fast as is possible in a particular configuration. The monitor will run at whatever the default refresh rate is at the resolution you're running in game.
VSYNC gives a different feel to how the game engine responds. With VSYNC off you may find more responsiveness, but it may feel less smooth than with the setting enabled. Try playing with and without Vsync (after addressing the refresh rate issue I describe below!!) to see what you prefer.
Bear in mind also that Vsync stops "frame tearing". This occurs when the frame to be displayed by the graphics card changes while the monitor is still "drawing the last one". In other words, the monitor starts to draw one frame, then the frame changes half way through (because the graphics card is outputting faster than the monitor can keep up). The result is called a "tear" and to be honest it looks pretty damn awful.
If your game cannot achieve the same frames per second as your monitor with Vsync ON, it will (sometimes) drop to 1/2 the value of your refresh rate, hence fps drops to 30, 20, 15 etc in *steps* when vsync is on, but without vsync the change is in 1fps units (or less)
NOTE: I have not found this on ATI radeon boards, so there may be something I'm missing here, but it is well documented on NVidia graphics boards...
<b>Monitor refresh rates</b>
60Hz is bad mmmkay. Speaking personally, I have had very bad headaches and eye strain from using a monitor at 60Hz (I didn't realise, this thread is the result of my realisation).
There are numerous reports of eye strain and headaches being caused by low refresh rates. it appears that running at refresh rates of 72-75 or higher reduces the risk of these problems significantly.
Monitor settings of "optimal" should be taken with a pinch of salt. Don't trust Windows to know what is best for your set up, find out for yourself!
Bear in mind that the resolution you run the game at is most likely to be lower than the resolution you run your windows desktop at. Your monitor may be able to handle higher refresh rates at the gaming resolution than at your desktop resolution.
You <b>have</b> to know what resolution your monitor is able to run at in a particular resolution. Better still, have the correct monitor drivers which should contain this information.
<b>Frames Per Second. How High and Why?</b>
In NS 1.0x and earlier (more generally in the HL engine), many aspects of the game are determined by your client frame rate.
For example, building speeds and jetpack thrust (not recharge rate) are determined by fps. Someone with 100 fps will build and jetpack upwards FAR quicker than someone with 30 fps. The same goes for leap and charge - the number of "touches" recorded (hence the number of 4 or 16 damages dealt by each attack respectively) is determined by fps. It is possible to do somewhere between 350 and 400 damage with one single leap at 100 fps.
Half life has a default maximum frame rate of 72. This can be increased to a maximum allowable value of 100, using the fps_max setting in the console (type "<b>fps_max 100</b>" without the " in console).
HOWEVER if vsync is enabled in your graphics card driver settings, the actual fps will be no more than the refresh rate of your monitor at the gaming resolution.
To find out your fps in game, type "<b>cl_showfps 1</b>" in console (without "). Settings 0 disables.
The "net_graph X" will show you your fps, however this uses a significant amount of resources. It is MOST useful for determining data transfer rates (in packets and kB/s), packet loss and choke values for your connection to the server. Only use for a short time, do not leave this setting on!
DO NOT USE "timerefresh" in console. It is NOT the true value of your fps!
<b>WindowsXP and Windows2000</b>
There is a known problem in these operating systems, where the monitor refresh rate will be defaulted to 60Hz in non-desktop resolutions, WHATEVER REFRESH RATE you have on the desktop setting.
EVEN IF YOU HAVE VSYNC DISABLED your monitor refresh rate will be 60Hz, which as we know is bad for your eyes mmmkay...
A fix I have found to work with both Nvidia and ATI cards under winXP *AND OPENGL* (not confirmed win2k yet) is called Refresh Lock. The website for this program is: <a href='http://www.pagehosting.co.uk/rl/' target='_blank'>http://www.pagehosting.co.uk/rl/</a> <span style='color:yellow'>I recommend this for ATI card users, there are more suitable programs for NVidia graphics card users (such as <a href='http://www.nvrt.org/' target='_blank'>http://www.nvrt.org/</a></span>
This program runs in the background and will force windows to use the maximum refresh rate reported by your monitor or monitor drivers for a particular resolution.
<b>Pre-2k windows</b>
There is not the same problem in these operating systems. Simple registry entries allow for refresh rates to be set for each known resolution.
In conclusion:
If you have a maximum fps of 60.0, you most likely have Vsync enabled, and you should try to increase your monitor refresh rate, because the benefits of increased Hz also give increased fps with VSYNC ON. Job's a good un.
If you have a max fps of 72, you can get higher by setting fps_max 100 in console You probably don't have vsync enabled, hence you may have a monitor refresh rate of 60 Hz (in winXP/2k), you should try to address this issue to make sure your monitor refresh rate is more than 72 (if your monitor supports these refresh rates!) (in other words set Vsync ON in your graphics card drivers and see what fps you get in game when you set fps_max 100)
If you have a max fps of 100, you most likely don't have vsync on, check the above paragraph to ensure your monitor is running properly.
If your fps is very low, it is advised that you don't use vsync (by meh <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->) but still make sure you're running at a high enough refresh rate in game (use refresh lock if necessary)
If your fps is 30, or 20 or 15 constantly and only ever changes between these values, YOU NEED TO DOWNLOAD one of the suggested programs to fix your monitor refresh rate. You monitor is at 60Hz but your system is not good enough to run at 60fps. Ensure you have the correct monitor drivers and ALSO THE BEST GRAPHICS CARD DRIVERS FOR YOUR BOARD*!!!! You will be able to run at a higher FPS by disabling vsync, but YOUR MONITOR WILL STILL RUN AT 60Hz unless you use a refresh fix program.
* NB not necessarily the newest, the *only* way is to try several (you can get lots of drivers, from the very earliest from <a href='http://www.reactorcritical.com' target='_blank'>Reactor Critical</a> but there are MANY other sites you can also get drivers from!! More info: <a href='http://www.guru3d.com' target='_blank'>Guru3D</a>.
Hope this helps. Any questions you can PM me.
I'm not an authority on this, and I've no doubt people will correct me if I've made a mistake here. I shall update it if there's anything wrong or anything unclear.
Thanks for your time, and good luck getting higher refresh rates and frames per second!
Roo
PS NS 1.1 will not address this issue, it is a problem with -HALF LIFE- under win2k and winXP NOT specifically natural selection.
PPS thanks go to TeoH, Uh-Oh, Eternal Bliss, Anavrin and Jower for their feedback on the original of this when it was in the general discussion forum. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
PPPS this was previously in the general discussion forum, but I put it here as it's more appropriately placed <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
This discussion has been closed.
Comments
Helped me fix my fps <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
got a nifty 99 fps now <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
Thank you Rooster (haha, a play of words, aren't I funny...)
Seriously, TA for the research and effort,
STICKY THE THING !!!
[/edit] sticky the thread, not the thing <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->
But I have a question:
How do I tell if vsync is turned on? I didn't see it in video modes...
My graphics driver tells me i have a 85hz refresh, so does my montior.. how can I change the ingame one?
*I cannot increase my hz, 85 is the highest it can go*
*edit* my refresh rate is 60 ingame
it is listed as 85 in the config file..
Disabled v-sync, now my fps gets up pretty high, but it varies..its been 75, then drops to 30-40 (ns_bast going between alien start(feed) and marine start)
Another question... I get an error about TrackerUI.dll when I join any game (including local games) how can I fix this?
*edit* another question, can I change the resolution that the menu runs at, there is this annoying 5 second delay between me pressing escape and the menu appearing
I think the menu is still running at 640x480 while the game is 1024x768
That will force your monitor to accept particular refresh rates in specific resolutions (you can set these).
The problem is that you're not locking the refresh rate, so windows takes over and uses 60Hz, hence with VSYNC enabled, you're only getting 60fps in game.
As for trackerUI.dll.... pass, I will do a quick scan though.
Fix for trackerUI.dll problem
Roo
Is the rest OK?
Roo
about time one of the mods stickies this thread
*clap* *clap* *clap*
Sadly, I'm clearly not far sighted enough to understand <!--emo&:(--><img src='http://www.unknownworlds.com/forums/html/emoticons/sad.gif' border='0' style='vertical-align:middle' alt='sad.gif'><!--endemo-->
it's important and useful stuff in here.
Well, I for one am happy, because this thread helped me solve my fps problem and got my fps up to a lovely 99 <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
'nuff said I think
Right click on your desktop (NOT on any icon), some menu appears, select PROPERTIES, on the window that appears click on the SETTINGS tab <!--emo&::skulk::--><img src='http://www.unknownworlds.com/forums/html/emoticons/skulk.gif' border='0' style='vertical-align:middle' alt='skulk.gif'><!--endemo--> (you can select resolution here) and there click on ADVANCED button, another window appears, click on MONITOR tab, there you might want to set your type of monitor (dload the drivers from your monitor manufacters web), this will set the proper maximum refresh rates for every resolution so you cannot set it higher than your monitor can go. There is a scroll-out menu (dont know how to name it <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo--> ) where you select the refresh rates.
You need to do this for every resolution you use, like if you play game XYZ na 1024x768 you must switch to that resolution (search for the <!--emo&::skulk::--><img src='http://www.unknownworlds.com/forums/html/emoticons/skulk.gif' border='0' style='vertical-align:middle' alt='skulk.gif'><!--endemo--> above) and then select refresh rate for it, and if you are also playing game ZYX on 1280x960 you have to select that resolution ( <!--emo&::skulk::--><img src='http://www.unknownworlds.com/forums/html/emoticons/skulk.gif' border='0' style='vertical-align:middle' alt='skulk.gif'><!--endemo--> ) and then set the refresh rate.
The higher resolution, the lower refresh rate can you set. (like i can set for 640x480 - 160 Hz, 1152x864 - 100 Hz etc.).
Dont know if there are some programs to change it for you like in windows XP, its more easier and it sets maximum refresh rates for every resolution in one click.
Oooh, look at the sig! <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html/emoticons/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif'><!--endemo-->
</gloat-mode>
I leaped Roo out of the air with his jetpack last week,
all because of the guide <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo--> *evil laughter*
BUMP