Originally posted by cen1
View Post
Announcement
Collapse
No announcement yet.
AMDGPU & Radeon DDX Updated - Better 2D Performance, Tear Free, DRI3 Default
Collapse
X
-
Originally posted by bug77 View Post
Technical implementation doesn't matter. Tearing is caused by your video card rendering more frames than your monitor can show.
Tearing is when you monitor can display 60 frames each second and your card can render 90. If I fix tearing and make the card render only 60 fps, are you actually loosing performance?
Tearing happens when the monitor and the gpu are not synced so the gpu renders a new image while the old image is not completely displayed and that's independent from Hz or framerate.
So the only solution is to synchronize the gpu with the display and that will always cost performance. With single monitor setups vsync is enough to remove tearing, this option is for multi monitor setups where you simply can't sync the gpu with each monitor because they all read the image from the gpu at a different time.
- Likes 1
Comment
-
As droste said you can have tearing also if the program is rendering frames at the same frequency as the monitor, or slower. It’s just a question of synchronisation. And of course having to wait for the VBL (vertical blank line, aka vertical blank interval) causes a slowdown of sorts, but there is no way around it unless you prefer tearing or have a Freesync or g-sync monitor with the adequate GPU and drivers.
To mitigate the wait games can use triple buffering, where they start drawing a new frame immediately after the previous one is done. So if frame 1 is shown on screen and frame 2 is ready in backbuffer a, while waiting for the vblank to show frame 2 the game starts rendering frame 3 in backbuffer b. If frame 3 is ready before the next vblank then frame 2 can be dropped and never shown.
You can reach an equivalent of triple buffering in most games even if they only support double buffering by using your compositor to suppress tearing and setting the game to not do vsync. Coupled with libstrangle to limit games to 60 FPS I’m getting great results.
Comment
-
Originally posted by stqn View PostTo mitigate the wait games can use triple buffering
Code:[B]Option "TripleBuffer"[/B] "[U]boolean[/U]" This option enables the use of a third buffer for page-flipping. The third buffer allows applications to run at vrefresh rates even if they occa‐ sionally fail to swapbuffers on time. The effect of such missed swaps is the output jitters between 60fps and 30fps, and in the worst case appears frame-locked to 30fps. The disadvantage of triple buffering is that there is an extra frame of latency, due to the pre-rendered frame sitting in the swap queue, between input and any display update. Default: enabled.
bridgman agd5f why not?
Double buffered VSync suc**. Triple buffering is the way to go for VSync. Nobody wants his framerate to jump between 60, 30, 15, 10 and so on...
Comment
-
Originally posted by bug77 View PostTearing is caused by your video card rendering more frames than your monitor can show.Originally posted by bug77 View PostIf I fix tearing and make the card render only 60 fps, are you actually loosing performance?
Comment
-
With triple buffered VSync it doesn't matter what the framerate is, it will always be tear free, even at 43fps@60Hz, 55fps@60Hz, 115fps@120Hz and so on... (although in those cases there still will be some kind of judder due to the pulldown)
Comment
Comment