PDA

View Full Version : Screen Tearing?


Pages : [1] 2

DAC350
03-20-03, 12:33 PM
I'm not a computer genius, but I can build my own. Why is it in Direct 3D I get horrible screen tearing, forcing me to run v sync? I have a 5800 ultra, 2.4 P4, Abit MB, with a gig of ram. Is it because I am running an old 17 inch KDS monitor? What causes this? Thanks.

azanon
03-20-03, 12:51 PM
I'm kinda wondering why you have such a high end system with an old/cheap monitor. That makes about as much sense as buying a high end component stereo with cheap speakers. IMHO, the most important piece in one's computer system, regardless of what you use it for, is your monitor. That's what you ultimately look at.

Badash
03-20-03, 01:27 PM
You should be able to get rid of most but not all of it by setting your monitor to its max refresh rate then install and run nvrefresh tool. the latest one. If your monitors max refresh is very low then you won't be able to fix it without replacing it or v-sync

DAC350
03-20-03, 02:28 PM
Max refresh is 75, and I already have it locked via rivatuner. So does my monitor just suck ass? Will I notice a difference after spending $400 on a new monitor? Thanks.

Chalnoth
03-20-03, 02:36 PM
The bigger question is, do you notice a performance hit when enabling vsync?

Vsync will naturally always decrease benchmark scores, but there's little reason that it must reduce the playability of games.

If you don't notice performance problems with vsync enabled, then run with it enabled (btw, if the games you play give you the option, which, unfortunately, not many do...run with triple buffering enabled when vsync is).

Nutty
03-20-03, 03:07 PM
Which drivers you using? I just installed the 43.03 at work, and with vsync off I get huge tearing / flickering in CS. I always play with vsync off at home and have never noticed this before.

Woodelf
03-20-03, 04:42 PM
Originally posted by Nutty
Which drivers you using? I just installed the 43.03 at work, and with vsync off I get huge tearing / flickering in CS. I always play with vsync off at home and have never noticed this before.
I'll bet You get stuttering too.
Turn on Vsync. Unless You are benching. Vsync should be on by default, and turned off if having trouble (not the other way around).

Nutty
03-20-03, 04:48 PM
No, I dont get stuttering.

Vsync shouldn't be on by default. It should be on if you want it on. Turning vsync off does not give stuttering.

IF you have vsync on at 80hz refresh rate, and the app fails to reach 80hz, you will drop to 40hz. You dont get this with vsync off, at the expense of a bit of screen tearing. Screen tearing is not the same as huge amounts of flicker that I was getting.

Like I said I've never had any flickering or stuttering _ever_. Except the 43.03 drives on my gf3 at work. I never have vsync on at home.

Woodelf
03-20-03, 04:50 PM
Originally posted by DAC350
Max refresh is 75, and I already have it locked via rivatuner. So does my monitor just suck ass? Will I notice a difference after spending $400 on a new monitor? Thanks.

A better (larger) monitor will not cure Your problem, but may save My sanity.

Woodelf
03-20-03, 04:55 PM
Originally posted by Nutty
No, I dont get stuttering.

Vsync shouldn't be on by default. It should be on if you want it on. Turning vsync off does not give stuttering.

IF you have vsync on at 80hz refresh rate, and the app fails to reach 80hz, you will drop to 40hz. You dont get this with vsync off, at the expense of a bit of screen tearing. Screen tearing is not the same as huge amounts of flicker that I was getting.

Like I said I've never had any flickering or stuttering _ever_. Except the 43.03 drives on my gf3 at work. I never have vsync on at home.

That hasn't been My experiance with any card, More like, If your monitor's refresh rate can't keep up with your card. You miss frames. Therfore you sync them.

Smokey
03-20-03, 05:38 PM
Originally posted by Nutty
No, I dont get stuttering.

Vsync shouldn't be on by default. It should be on if you want it on. Turning vsync off does not give stuttering.

IF you have vsync on at 80hz refresh rate, and the app fails to reach 80hz, you will drop to 40hz. You dont get this with vsync off, at the expense of a bit of screen tearing. Screen tearing is not the same as huge amounts of flicker that I was getting.

Like I said I've never had any flickering or stuttering _ever_. Except the 43.03 drives on my gf3 at work. I never have vsync on at home.

I posted this in the Driver Forum also, but in MOH I had very bad flickering with the 42.68 and 43.00 drivers all DirectX games were fine :confused:

Woodelf
03-20-03, 05:48 PM
Originally posted by Smokey
I posted this in the Driver Forum also, but in MOH I had very bad flickering with the 42.68 and 43.00 drivers all DirectX games were fine :confused:
Make sure your card's not overclocked when tesing for compatibility with new drivers.

Woodelf
03-20-03, 05:55 PM
Originally posted by Nutty
No, I dont get stuttering.

Vsync shouldn't be on by default. It should be on if you want it on. Turning vsync off does not give stuttering.

IF you have vsync on at 80hz refresh rate, and the app fails to reach 80hz, you will drop to 40hz. You dont get this with vsync off, at the expense of a bit of screen tearing. Screen tearing is not the same as huge amounts of flicker that I was getting.

Like I said I've never had any flickering or stuttering _ever_. Except the 43.03 drives on my gf3 at work. I never have vsync on at home.

Here You go:
http://www.techtv.com/screensavers/print/0,23102,3381041,00.html
and
http://www.d-silence.com/video/vsync2.shtml

Nutty
03-20-03, 06:28 PM
And?

That site didn't tell me anything I didn't already know. And in fact its wrong.

If your hardware's fps rate can exceed your monitor's scan rate, disable Vsync settings in DirectX, OpenGL, and your games.

They are saying if you cant reach your monitor refresh rate, turn vsync on. That basically means you're going to crucify your frame-rate, linking it to the refresh it cant keep up with.

So for ppl with 60hz monitors, it will force them down to 30, and if it drops below 30, then it will force them down to 15!

You should disable vsync if you cant reach the monitor rate, so the frame-rate doesn't get multiplied down.

On the other hand if your minimum frame-rate never dips below monitor refresh rate, then turn vsync on, for a rock solid display.


The only way you'd miss large amounts of frames is if you're rendering at like 200fps without vsync off. Which I dont, I average around 80 in CS, which matches the monitor pretty well. But it stops my frame rate suddenly halving, if the frame rate dips just below the monitor frequency.

The point is, with vsync off, the worst you should get with nominal frame-rates is a bit of screen tearing. Not huge amounts of flicker. It was if the bottom half of my screen was only being drawn every other frame.

The gun which hardly moves in CS, should render pretty much perfect regardless of vsync, due to the fact that it hardly moves.

This was not the case. Every other frame the bottom half of the screen was completely black.

Woodelf
03-20-03, 07:21 PM
Originally posted by Nutty
And?

That site didn't tell me anything I didn't already know. And in fact its wrong.



They are saying if you cant reach your monitor refresh rate, turn vsync on. That basically means you're going to crucify your frame-rate, linking it to the refresh it cant keep up with.

So for ppl with 60hz monitors, it will force them down to 30, and if it drops below 30, then it will force them down to 15!

You should disable vsync if you cant reach the monitor rate, so the frame-rate doesn't get multiplied down.

On the other hand if your minimum frame-rate never dips below monitor refresh rate, then turn vsync on, for a rock solid display.


The only way you'd miss large amounts of frames is if you're rendering at like 200fps without vsync off. Which I dont, I average around 80 in CS, which matches the monitor pretty well. But it stops my frame rate suddenly halving, if the frame rate dips just below the monitor frequency.

The point is, with vsync off, the worst you should get with nominal frame-rates is a bit of screen tearing. Not huge amounts of flicker. It was if the bottom half of my screen was only being drawn every other frame.

The gun which hardly moves in CS, should render pretty much perfect regardless of vsync, due to the fact that it hardly moves.

This was not the case. Every other frame the bottom half of the screen was completely black.

"So for ppl with 60hz monitors, it will force them down to 30, and if it drops below 30, then it will force them down to 15!"

No, Vsync simply limit's the card from exceeding refresh rate.
If you set your Mon. refresh to 60, your card (Vsync on) will not
pass your refresh. Your card (if stressed) will dip below refresh rate, reguardless of Vsync. for somebody who may be having trouble with games, and doesn't know much about setting's, should leave Vsync on, as default. Personally I don't ever artifact, stutter, flash, turn vsync off, because I know what works.

"The gun which hardly moves in CS, should render pretty much perfect regardless of vsync, due to the fact that it hardly moves."

My understanding is that the entire screen is drawn per 1 sync.
slow moving object's are just less noticeable, but the worst cases
will stop movement enough to effect gaming.

Just My opinion.

Woodelf
03-20-03, 07:42 PM
Originally posted by Nutty
And?


The only way you'd miss large amounts of frames is if you're rendering at like 200fps without vsync off. Which I dont, I average around 80 in CS, which matches the monitor pretty well. But it stops my frame rate suddenly halving, if the frame rate dips just below the monitor frequency.



Anyway, Why would You wan't to draww 200fps if you can't see it.
You can only see what your refresh allows.

One theory that I have (could sombody correct me on this) is that
running a card at 200fps with a refresh rate of 80HZ will bog down your video memory at higher resolutions.

Nutty
03-21-03, 05:08 AM
No, Vsync simply limit's the card from exceeding refresh rate.

No it doesn't!!

It waits for the vertical retrace before flipping the buffers _every_ frame update. That means if you cant render your frame in between screen retraces, it will wait for the next one, which is why your frame-rate will suddenly half.

My understanding is that the entire screen is drawn per 1 sync.
slow moving object's are just less noticeable, but the worst cases
will stop movement enough to effect gaming.

The movement part is correct. If something onscreen doesn't move, then updating the framebuffer, while the screen is halfway through drawing, wont make much difference.

However, if you're say strafing left, a building in the top half will be drawn in 1 position, then if the framebuffer is suddenly flipped, the bottom half of the screen will have the new position. Thus causing a tear.

The screen is not drawn 1 per sync. The screen is drawn, and then it either waits or it doesn't until vertical retrace occurs, and then flips/copies the buffers.

But anyway, the point is, with vsync off, you shouldn't get what I experienced. Looks like 43.03 with vsync off has some bad issues on gf3's.

Myrmecophagavir
03-21-03, 09:58 AM
Originally posted by Woodelf
No, Vsync simply limit's the card from exceeding refresh rate.You're wrong, it waits until the vertical retrace has completed before beginning the next frame. Hence if rendering a frame on the system takes slightly longer than one redraw cycle on the monitor, you'll take the first monitor draw cycle rendering the frame, then a bit longer, then wait for ages doing nothing till the next monitor cycle is over. Hence you need two monitor cycles for every rendered frame. At 60 Hz monitor refresh rate this will drop you to 30 effective FPS. Triple buffering is the solution to this problem.

Anyway, Why would You wan't to draww 200fps if you can't see it.
You can only see what your refresh allows.Because decreasing the time step between frames will always allow more accurate physics simulation and mouse movement.

cvearl
03-21-03, 01:59 PM
No technical descriptions here but here goes...

When I run a game or benchmark with Vsync, my frames max out at whatever my refresh is set to. For instance, in Freelancer, Vsync is on. My monitor is set to 85Hz. The FPS are always at 85. Occasionally they will dip below 85 a little but never over. If I disable vsync, my frames often go over 100 and I get some tearing but not too bad.

My best remedy in my case for tearing is that I understand that XP has a refresh problem where it goes to 60Hz in D3D no matter what the setting is for the desktop. Until I downloaded, installed and ran Reffix, my monitor said that I was at 85Hz in the desktop but 60Hz in D3D games. Once I ran the util, it set my refresh to the best possible in all resolutions. Now at 1024x768 I am at 85Hz all the time in games. Even when vsync is disabled, tearing is quite minimal.

Therefore, the starker the contrast between the speed of your card and the refresh of your monitor, the worst the tearing will appear. It has to do with different parts of the monitor refreshing before others. Typicall top and bottom fall "out of Vertical Sync" and you see tearing somewhere in the middle. For example, tearing would be really apparent if you get getting 120 fps in a game on a monitor that is only doing 60Hz. Where as in my case, if my games are around 100 fps and my refresh is 85Hz the tearing is not as noticable. In Freelancer Vsync is on and the game stays at 85fps all the time and looks glass smooth. The fact that my monitor does 1280x1024 is useless to me as the max refresh in that res is 60Hz :(.


I have a friend with a Sony 19" and he gets 100Hz at 1280x1024! Great monitor. For him in that resolution, he never see tearing as his card never exceeds 100fps on account of him owning a Geforce 4 MX.

You and him should trade monitors! :) although I don't think I could convince him to do that.

REMEDY: download Reffix and run it. It should make things better. The monitor you have should be able to at least do 85Hz in 1024x768.

Charles.

Chalnoth
03-21-03, 03:40 PM
Some video card drivers automatically enable triple buffering when vsync is enabled, under some game settings. It appears my GeForce4 automatically enables triple buffering under Direct3D or OpenGL unless FSAA is enabled.

I didn't rigorously test at what resolution/FSAA setting triple buffering is disabled (only enabled FSAA at 1240x960), so it may be enabled for resolutions lower than that when FSAA is enabled (it's been a while since I ran the tests).

Woodelf
03-21-03, 04:45 PM
Originally posted by Nutty
No it doesn't!!

It waits for the vertical retrace before flipping the buffers _every_ frame update. That means if you cant render your frame in between screen retraces, it will wait for the next one, which is why your frame-rate will suddenly half.



The movement part is correct. If something onscreen doesn't move, then updating the framebuffer, while the screen is halfway through drawing, wont make much difference.

However, if you're say strafing left, a building in the top half will be drawn in 1 position, then if the framebuffer is suddenly flipped, the bottom half of the screen will have the new position. Thus causing a tear.

The screen is not drawn 1 per sync. The screen is drawn, and then it either waits or it doesn't until vertical retrace occurs, and then flips/copies the buffers.

But anyway, the point is, with vsync off, you shouldn't get what I experienced. Looks like 43.03 with vsync off has some bad issues on gf3's.

OK, I'm learning here.
Could You tell me (if what Your saying is true), why it is that when I run 3D mark 2001se with Vsync on, with a refresh of 85HZ, why the fps never exceeds 85?. edit: And the fps are hitting 85.:confused:

Nutty
03-21-03, 06:20 PM
Because if theres 85 vertical retraces per second, and you have vertical sync on, then every new graphics frame you render has to wait until the start of vertical retrace to flip the buffers. It is impossible to get more than 1 frame displayed for every vertical sync, there your frame rate will not go above the vertical refresh rate of your monitor.

If you dont have triple buffering enabled however, and you dip below, you'll be forced to wait until the next vertical retrace to flip the buffer. In essence only getting 1 frame for every 2 retraces. Giving 85/2 = 42.5 frames per second.

Woodelf
03-21-03, 07:19 PM
Originally posted by Nutty
Because if theres 85 vertical retraces per second, and you have vertical sync on, then every new graphics frame you render has to wait until the start of vertical retrace to flip the buffers. It is impossible to get more than 1 frame displayed for every vertical sync, there your frame rate will not go above the vertical refresh rate of your monitor.

If you dont have triple buffering enabled however, and you dip below, you'll be forced to wait until the next vertical retrace to flip the buffer. In essence only getting 1 frame for every 2 retraces. Giving 85/2 = 42.5 frames per second.

All I know is that 3dmark 2001se (vsync on) seems to hit the refresh limit fine with both double and triple buffering.
Granted there is a perf. increase w/triple buffering.
I guess I cannot explain why it is that when I turn off vsync, I get stuttering, expecially with 3D mark 2001se demo mode.:confused:

Woodelf
03-21-03, 08:29 PM
Originally posted by Nutty
And?

That site didn't tell me anything I didn't already know. And in fact its wrong.





You missed this one, probably because I added it while You were working on this post.
It shows that some programers feel vsync should be on.
Your a programmer, what do you think?.
http://www.d-silence.com/video/vsync2.shtml
I found this interesting too
http://www.themeter.com/faq.shtml#why
http://www.pny.com/support/faqs/readfaq.cfm?mainid=182&row=25&urlRef=%2Fsupport%2Ffaqs%2Freadtopic%2Ecfm%3Fmodel ID%3D16

Cotita
03-21-03, 11:32 PM
Forcing v-sync as most other IQ settings is more a matter of personal preference.

If you have a monitor with a 85hz refresh rate, you won't notice tearing unless the game has more than 100fps.

On the other hand with vsync on if the MINIMUM frame rate is less than the monitors refresh rate eg 85hz, the frame rate won't be halved (a very common mistake), the card will wait until the next refresh to display the frame. By that time the next frame will be ready and will be displayed next. Only in a worst case scenario there will be a noticeable performance drop.

Depending on the game performance, you may or may not notice any slowdowns.

As a rule of thumb, 1st and 3rd person shooters have noticeable performance drop when using v-sync on. Racing games, flight sims, sports and 3d RTS games look better with vsync on.

So if you don't notice any tearing then leave v-sync off, or if you don't notice any slowdowns, then use v-sync on.

just my 2 cents.