Pre-rendered frames etc. (continued from G-Sync 101 article)

Talk about NVIDIA G-SYNC, a variable refresh rate (VRR) technology. G-SYNC eliminates stutters, tearing, and reduces input lag. List of G-SYNC Monitors.
MatrixQW
Posts: 278
Joined: 07 Jan 2019, 10:01

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by MatrixQW » 01 Feb 2019, 13:13

I thought g-sync was meant to do two things:
- Sync video card and monitor
- Lower hz to match fps when necessary

In the case i expose, if fps are stable, why does it still have tearing then?
Monitor and video card should be in sync.

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by RealNC » 01 Feb 2019, 13:15

MatrixQW wrote:In the case i expose, if fps are stable, why does it still have tearing then?
Because FPS is not always perfectly stable. If a frame is too fast, it will tear, because it's faster than the monitor's Hz.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by jorimt » 01 Feb 2019, 13:15

What RealNC said. Quickest, most simple explanation you're going to get on this.

If you want a slightly more in-depth answer on this, read the Closing FAQ in my G-SYNC 101 article:
https://www.blurbusters.com/gsync/gsync ... ttings/15/

If you want a very in-depth answer, read my complete article.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

MatrixQW
Posts: 278
Joined: 07 Jan 2019, 10:01

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by MatrixQW » 01 Feb 2019, 15:00

I read:
Wait, why should I enable V-SYNC with G-SYNC again? And why am I still seeing tearing with G-SYNC enabled and V-SYNC disabled? Isn’t G-SYNC suppose to fix that?
I must be missing something. It always mentions fps variances.
If i can get 1000fps in a game, set it to 141 and check it is extremely reliable that it never goes 140 or 142, even in this case it still has tearing?

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by RealNC » 01 Feb 2019, 15:12

MatrixQW wrote:and check it is extremely reliable that it never goes 140 or 142
How do you know? Have you pointed a camera at the screen, recorded it, and then measured the frame interval? Because if you didn't, you can't know how fast frames are being shown. An FPS indicator only shows frame presentation times. It doesn't know when these frames actually make it to the screen.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

MatrixQW
Posts: 278
Joined: 07 Jan 2019, 10:01

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by MatrixQW » 01 Feb 2019, 15:17

I'm relying on the fps counter.
I guess you are trying to tell me it doesn't update accurately?

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by jorimt » 01 Feb 2019, 15:26

MatrixQW wrote:I read:
Wait, why should I enable V-SYNC with G-SYNC again? And why am I still seeing tearing with G-SYNC enabled and V-SYNC disabled? Isn’t G-SYNC suppose to fix that?
I must be missing something. It always mentions fps variances.
If i can get 1000fps in a game, set it to 141 and check it is extremely reliable that it never goes 140 or 142, even in this case it still has tearing?
Read the one below that entry as well.

The term "frametime variances" just sums up what I'm about to explain in an even further breakdown below:

Even if you have a constant average framerate, that average is always made up of individual frames with slightly varying frametimes, and yes, even with an FPS limiter.

If just one of those frames have a frametime that is lower (quicker) than the refresh rate's, say one or more frames render in 6.8ms (146 FPS) at 144Hz (6.9ms) with G-SYNC + V-SYNC "Off," you're going to get tearing in that area without frametime compensation (V-SYNC "On").

Since those affected frames are ready earlier, they are going to start scanning in before the last frame is finished (within the last frame's scanout cycle), which is going to cause tearing near the bottom of the screen with G-SYNC + V-SYNC "Off."

G-SYNC + V-SYNC "On" will hold those frames for that extra 0.1ms (or however faster affected frames are rendered) and then deliver at the start of the next scanout, letting the previous frame finish, and thus prevent the tear.

I've said this way too many times, but tearing is your literal, visible input lag reduction with G-SYNC + V-SYNC "Off" over G-SYNC + V-SYNC "On." Your trying to remove what you think you want: tearing = reduced input lag.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by RealNC » 01 Feb 2019, 15:30

MatrixQW wrote:I'm relying on the fps counter.
I guess you are trying to tell me it doesn't update accurately?
Who knows. Unless someone measures it with a camera, we just don't know.

(This assumes you're talking about per-frame, real-time "FPS counters" in VRR displays. If you're talking about in-game OSD frame counters, these of course only measure frame presentation times. That is, the interval between each frame sent by the game to the driver. They do not, and can not, measure the times at which these frames are actually being sent to the display.)
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

MatrixQW
Posts: 278
Joined: 07 Jan 2019, 10:01

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by MatrixQW » 01 Feb 2019, 16:22

I see. That was very informative, jorimt.
I was getting off with fps and frametimes.

This "hold the frame" reminds me of gl_finish() even if it does a different thing, wich was present in older games like Quake. QuakeWorld still has it.
Gl_finish would block execution until the frame was completely drawn if i'm not mistaken and what i remember from using it was smoother screen at the cost of fps.
Don't remember if it had tearing but it was indeed smoother.
Without it, it seemed like if fps were skipping.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Pre-rendered frames etc. (continued from G-Sync 101 arti

Post by jorimt » 01 Feb 2019, 16:54

Yup, "framerate" is a per second average of overall "frametime" (time it takes for each frame to render).

And yes, V-SYNC with G-SYNC simply causes the module to time delivery of (slightly) faster and/or (much) slower-than-refresh-rate frames at the VBLANK, whereas V-SYNC "Off" won't in these instances.

It would be great if Nvidia re-bundled this V-SYNC on/off option with G-SYNC, and then include two separate options via a drop-down in the NVCP (something) like:

- "G-SYNC (default)"
NVCP Description: "Reverts to V-SYNC behavior when framerate exceeds refresh rate. Prevents all tearing within refresh rate."
- "G-SYNC (adaptive)"
NVCP Description: "Reverts to tearing when framerate exceeds refresh rate. Partial tearing may still occur during rapid framerate fluctuations within refresh rate."

They could then hide the V-SYNC drop-down entry in the NVCP when G-SYNC is active. This would prevent most of the current confusion (but not all; I don't think that will ever be possible with how complicated this subject is), because those that don't understand the difference would disable V-SYNC in-game anyway (which I already recommend).

But then they'd have to publicly acknowledge an FPS limiter is required to stay inside the G-SYNC range at all times, and that the V-SYNC option works differently within the G-SYNC range.

Likely not gonna happen, so my "optimal settings" are gonna have to do.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

Post Reply