PDA

View Full Version : vsync - tearing


mortaldivine
08-06-05, 05:53 PM
So I read that article this week about how vsync is bad because it makes your FPS go even lower. Since BF2 has a max FPS of 100 and my monitor is at 100hz, I turned vsync off. But I still get tearing. I thought you only get tearing when your FPS go over your refresh rate? Ideas?

subbo
08-06-05, 06:14 PM
With Vsync off you ALWAYS get tearing, depending on the human eye and the relation of the hz and frame rate fluctuation, the tearing can look worse or better. With basic vsync your fps is halved when it cannot match the refresh rate. So if you have a refresh of 100, it drops all the way to 50fps even if you could actually do 99fps. So its a pretty useless and outdated tech.

Nvidia doesnt support tripple buffering that is capable of syncing each frame to each refresh frame enabling you to get any amount of fps without tearing or slowdown.

With PC games basic vsync is a lost cause these days, as developers dont fine tune their games to work at a steady stress level through various scenes, and you'd need a setup several times faster to run the most stressful scene over the refresh rate than the least stressful.

And since the dawn of multiplayer fps, vsync has not been used due to added delay in response times, as the frame you see is a few milliseconds behind of whats actually going on.

SH64
08-06-05, 06:23 PM
Nvidia doesnt support tripple buffering that is capable of syncing each frame to each refresh frame enabling you to get any amount of fps without tearing or slowdown.


The recent 77.76 drivers supports triple buffering AFAIK.

subbo
08-06-05, 06:39 PM
Yes I tried it but as far as I could tell it doesnt work. I tried Richard Burns Rally and Flatout that both have a Triple Buffering setting and the fps still seems to fluctuate between full and half, and never giving anything in between.

Tripple buffering for 7800GTX only perhaps.

rewt
08-06-05, 07:52 PM
The triple buffering option is for OpenGL only. BF2 isn't OpenGL so it won't help in that game.

gram_vaz
08-06-05, 10:33 PM
tearing will happen regardless of fps. it's caused because sometimes the card is way too fast. a monitor will be drawing an image and the gpu will already be done with the next frame so now it's drawing the next frame on screen while a part of the old frame is still on screen. tearing seems to get worse as you reach the 20fps and up average.

Greg
08-07-05, 01:01 AM
The main problem is that game developers are lazy or busy and don't provide enough display controls to configure. Such things would be Anti Aliasing, Texture Filtering, Screen aspect ratio (for non standard monitor shapes), Tripple Buffering, VSync, Gamma, Refresh Rate. Simply a text config file, possibly ignored for competitive online play would be adequate. This would eliminate the need for driver overrides.

Acid Rain
08-07-05, 05:09 AM
Tripple buffering for 7800GTX only perhaps.Works absolute wonders on this 6800GT in anything OpenGL. As with AA and aniso, I won't go without v-sync if I don't have to. In OpenGL, we don't have to anymore.

Now if they'd just allow such forcing in Direct 3D.

subbo
08-07-05, 03:12 PM
I wonder why just opengl, when almost all the games I've seen that have triple buffering support built in are d3d.

rewt
08-07-05, 11:09 PM
So the in-game triple buffer option doesn't have any effect in D3D? Somewhere I read the nvidia drivers were supposed to support triple buffering in D3D if the game had an option for it.

The triple buffer option in the control panel is definitely meant for use with OpenGL, as the reg key name suggests (Ogl_TripleBuffer). However could it be possible that this setting can adversely affect D3D if it is forced on?

Acid Rain
08-08-05, 12:09 AM
So the in-game triple buffer option doesn't have any effect in D3D?Works flawlessly when forced in UT 2004. *Console/preferrences/rendering/direct3d...at the bottom with v-sync.*

It really helps on this setup, as I love v-sync, but need the performance.

As far as adverse effects if forced globally: No change whatsoever in any D3D apps I've tried. It just ignores the setting in D3D cases.

dcorban
08-12-05, 04:02 PM
The triple buffering option is for OpenGL only. BF2 isn't OpenGL so it won't help in that game.

If you look at the built-in profiles Nvidia has supplied (in 77.77), they have Triple Buffering enabled even on non-OpenGL games. However, I don't doubt that the setting only affects OpenGL.

TeaEtchSee
08-12-05, 11:01 PM
i dont really see any diff when triple buffer is on..

rewt
08-13-05, 02:25 AM
i dont really see any diff when triple buffer is on..

Stop smoking that wacky tobaccy and maybe you will. To benefit with Triple buffer you must be using an OpenGL game/application and have vsync turned on. Then if your framerate happens to drop below your refresh rate then your FPS will not get cut in half. If your framerate never drops below your refresh rate with vsync enabled then triple buffer probably won't make any noticable difference.

J-Mag
08-15-05, 12:41 PM
The triple buffering option is for OpenGL only. BF2 isn't OpenGL so it won't help in that game.

I was running some FRAPs tests with various settings in the 77.77 drivers and my 7800GTXs and I turned on tripple buffering, vsync , and LOD Clamp to see the effects they have on BF2 and I swear I cannot see the tearing anymore (it wasn't that bad in the first place, but now I can't see a tear for the life of me)

Myabe it is just psychological...

rewt
08-15-05, 04:34 PM
Maybe I was wrong. Perhaps it does work in D3D on 7800 cards. You'd know better than I would :-/ Do you know what is the registry key/value for Triple buffer on your card? On mine it is Ogl_TripleBuffer which is good indication that it is OpenGL only (Most other settings like AA and AF start with D3D_OGL which means they affect both Direct3D and OpenGL)

Soylent
08-19-05, 09:03 AM
tearing will happen regardless of fps. it's caused because sometimes the card is way too fast. a monitor will be drawing an image and the gpu will already be done with the next frame so now it's drawing the next frame on screen while a part of the old frame is still on screen. tearing seems to get worse as you reach the 20fps and up average.

Not quite. The graphics card isn't too fast for anything, it's just not syncing with monitor vertical retrace.

By definition vertical sync means that your graphics card waits until your monitor is done refreshing the screen with the old frame before swapping buffers.

Turning vertical syncing off means your graphics card will change what data your monitor is getting from the card to the new frame whenever it is done rendering. This happens at any framerate, even sub 1 FPS. The reason it happens less at low framerates is that it swaps the buffers less. The graphics card will be sitting there for several monitor refreshes working on the next frame while outputting the old frame repetedly.

(on crappy LCDs tearing is much less visible due to ghosting. At high refresh rates a frame lasts shorter, so the tear should be less visible. Comparing say 160Hz with 80FPS and 80Hz with 80FPS, a tear would happen each time the screen was drawn at 80Hz, while at 160Hz only every second screen, so it would last much shorter and should be much less visible).