You are not registered yet. Please click here to register!
Effects of Vsync and modern 3d Engines - i4memory.com - different look at memory

Notices

Reply
 
Thread Tools
Old 05-01-2012, 08:12 PM   #1
Offler
Senior Member
Offler's PC Specs
 
Join Date: Nov 18 2009
Location: Bratislava
Posts: 279
Effects of Vsync and modern 3d Engines

In last few years the Hardware development finally got faster than the software and hi-end gaming stations are much more stronger as most of the current games actually require. Most games thus crosses the limits of hardware which are mostly unseen.

Which limit is it? Mostly refresh rate of monitor. Current LCD monitors have lets say 1920x1080 resolution and 60Hz refresh rate. This also means that any FPS higher than 60 cannot be correctly displayed which causing tearing of image.

Years ago developers of graphic hardware recognized this as a quality problem of displayed image and proposed solution called Vertical Synchronisation or Vsync. This setting is currently available in most 3d games and also in many graphic drivers.

The problem with Vsync is that users who use this setting are not satisfied how it works. Mostly it causes lowering of FPS even in situations when it was not expected. The problem is that users are mostly not aware that Vsync MUST be enable along with Triple Buffering.

By default each graphic card use Double Buffering. In Buffer A is image you can actually see on your monitor. In buffer B the graphic card is currently performing operations. Once the Buffer B is sucessfully finished it will be immediately displayed.

When you enable Vsync one thing will change. Buffer A is being displayed, and graphic will not change it until the monitor is ready for the refresh. Therefore the frame is "locked" in a buffer for some time period. If the graphic card finishes the Buffer B it cannot display it immediately and thus it has to flush it and start with creation of new frame. If the buffer A is unlocked during this time while Buffer B has been flushed a lot of graphic performance is lost as a result.

But with triple buffering there is also Buffer C. When graphics finished Buffer B, it starts to write into Buffer C. When Buffer A is unlocked, Buffer B will display so the graphic card has enough time to finish the work in current frame. Loss of performance in this scenario is lower, however you will surely need more video ram.


Optimal solution for the highest quality then has following parameters:
Screen resolution in system is 1920x1080 to follow native resolution of display
Vsync and Triple buffering enabled. FPS will be then 60 in ideal situation, while new frame is delivered on your screen each 1/60 of second exactly.


Now some real life experience lets say with game World of Tanks.

Game utilizes only first core of my quadcore system. However it can utilize 100% of graphic core and the first CPU core is also squeezed on 100% when Vsync is disabled. The FPS in game jumps from 40-150 depending on scenery, while utilization of cpu and gpu is static and does not change.

Now lets enable Vsync+Triple Buffering

FPS changes from 40-60, while most of time i see 60 fps. But there is one change. GPU utilization is lower, but for my own surprise even CPU utilization can drop down in the less complex sceneries, while still maintaining great fps.

As a result total computer power consuption dropped by 30 watts. Considering fact that i have spared CPU and GPU resources while monitor still displays its maximum I believe that this combination of settings with my actual hardware will help to improve overall system performance - to run more processes without being affected each other.

Hardware used:
Core 2 Quad 9550 at 3400Mhz
Ati Radeon HD 5850 1gb

For the Vsync+Triple buffering I suggest to use 2gb of GDDR5 videoram, but even with 1gb it works just fine. Upcoming XDR2 would improve usefullnes of this a bit more.

Vsync latency trouble:
Some gamers reported problems with Vsync when it came to latency especially in online games, mostly in Counter Strike. The real cause is not in Vsync itself. In my tests with online games and variious hardware seems that the issue is caused by lack of Vram or its speed. For example 512mb of GDDR5 video ram can cause this behaviour.

Also cheap or onboard LAN card might cause similar problem, but also Vsync is not the reason. Vsync just cause its elevation by adding some miliseconds to that time, so the player who used to "shoot ahead" will then miss due this.
Offler is offline   Reply With Quote
Old 05-01-2012, 09:08 PM   #2
donmarkoni
Senior Member
donmarkoni's PC Specs
 
Join Date: May 13 2009
Posts: 488
Very good explanation, short, in plain words.

Thanks for the effort.
donmarkoni is offline   Reply With Quote
Old 05-01-2012, 09:49 PM   #3
Offler
Senior Member
Offler's PC Specs
 
Join Date: Nov 18 2009
Location: Bratislava
Posts: 279
Just to note...

Usually each 3d engine supports various Antialiasing settings, Anisotropical filtering, and even Vsync. Most games (especially older ones) dont have Triple buffering in their options.

At least with my GPU enabling the setting of Triple Buffering in graphic driver (Catalyst control center) works for any application.

Forcing Vsync from CCC also worked in most cases.
Offler is offline   Reply With Quote
Reply

Bookmarks

Tags
effects, engines, modern, vsync


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools



All times are GMT +11. The time now is 08:07 AM.