Fabulously Optimized

Fabulously Optimized

2M Downloads

Enable Adaptive Sync

RaptaG opened this issue ยท 37 comments

commented

What config to change

As said by the title, disable VSync and and enable Adaptive VSync (Extras tab)

Why should it be changed

People are constantly reporting that they are getting no FPS improvements while using FO and most of the times it's because of that. Some examples are:

(from the Discord server: https://discord.gg/yxaXtaQqdB)

Doing this will improve frame rates while having stability

Category

Vanilla option

Additional details

Enabling Adaptive VSync is a solution to potential drawbacks of disabling VSync itself. See:
https://www.intel.com/content/www/us/en/developer/articles/technical/enabling-intel-adaptive-sync-with-11th-generation-intel-processor-graphics-and-microsoft.html

commented

Note that the VESA Adaptive Sync standard for variable refresh rate displays (or proprietary technologies G-SYNC/FreeSync) is not the same as the "Adaptive VSync" (NVIDIA's term, AMD seems to call it Enhanced Sync) controlled by WGL_EXT_swap_control_tear that Sodium Extra enables. It appears to be fairly widely supported in terms of GPU vendors, and doesn't require explicit monitor support, but is not as effective as Adaptive Sync technologies. I believe that users with variable refresh rate displays just need to disable VSync for Adaptive Sync to work, though this may depend on GPU drivers.

Alright, so if my machine claims on a sticker that it has "Adaptive Sync", how would I make sure it also has NVIDIA's standard, considering it has a recent NVIDIA card?

From what i read on internet G-sync is supported on all NVIDIA GPU at starting from series 10.
And for the Adaptive Sync that we can enable in sodium extra just check in it if currently you can enable it.
After researching more it seems like Adaptive VSync is a quite old technology.
NVIDIA decided to remove some pages about it but webarchive helped me.
https://web.archive.org/web/20210917033925/https://www.nvidia.com/en-us/geforce/technologies/adaptive-vsync/supported-gpus/
From what i can see Adaptive VSync compatible card listed here are only Pre-series 10 so i think NVIDIA just replaced it with G-sync but all new cards are just compatible with Adaptive VSync too.

commented

Adaptive VSync (not Adaptive Sync / G-SYNC / FreeSync) is usually implemented in the driver, and has very wide support across vendors. That list was likely not kept up to date; all 10-series cards support it.

commented

Adaptive VSync (not Adaptive Sync / G-SYNC / FreeSync) is usually implemented in the driver, and has very wide support across vendors. That list was likely not kept up to date; all 10-series cards support it.

Not only the 10-series: the oldest card to support it there is the 710 (the 705 being left out), so it's pretty much all of the 7-series.

Oh also, it's the 6-series too. Wait, it actually does go down to the 2-series!

commented

If I'm correct, it's just VSYNC that disables itself when fps under monitor refresh rate?

commented

Adaptive Sync needs V-Sync on to work

Could add that smth like "Require Vsync enabled to work !" in Adaptive sync tooltip ?

Sorry, my bad. It overrides.

ok so it's confirmed either A-sync or Vsync need to be enabled, not both at same time.
My polls and logic is still valid then.
Could you make it so that A-sync override Vsync ? I actually don't know if this is in your power or if it's a thing just that you couldn't even control.

commented

Adaptive Sync needs V-Sync on to work

Could add that smth like "Require Vsync enabled to work !" in Adaptive sync tooltip ?

Sorry, my bad. It overrides.

ok so it's confirmed either A-sync or Vsync need to be enabled, not both at same time. Could you make it so that A-sync override Vsync ? I actually don't know if this is in your power or if it's a thing just that you couldn't even control.

I'm so sorry, my brain is on autopilot and just typing out random stuff. It needs Vsync to work if not it just fallbacks to whatever state vsync is in. Adaptive Sync should not be enabled by default. Not all machines support it. I need to add another layer of checks to prevent it from being enabled via config.

commented

Can't you turn on both? A-sync will override vsync? Internally it's the same glfw property

commented

Can't you turn on both? A-sync will override vsync? Internally it's the same glfw property

Are you sure it will Override ? Maybe we should ask @FlashyReese to be sure

commented

Adaptive Sync needs V-Sync on to work

Could add that smth like "Require Vsync enabled to work !" in Adaptive sync tooltip ?

commented

Adaptive Sync needs V-Sync on to work

Could add that smth like "Require Vsync enabled to work !" in Adaptive sync tooltip ?

Sorry, my bad. It overrides.

ok so it's confirmed either A-sync or Vsync need to be enabled, not both at same time. Could you make it so that A-sync override Vsync ? I actually don't know if this is in your power or if it's a thing just that you couldn't even control.

I'm so sorry, my brain is on autopilot and just typing out random stuff. It needs Vsync to work if not it just fallbacks to whatever state vsync is in. Adaptive Sync should not be enabled by default. Not all machines support it. I need to add another layer of checks to prevent it from being enabled via config.

Well if it's enabled via config but not available it'll simply disable itself right ?

commented

I get the idea, but what to do for people who don't have Adaptive Vsync?

commented

I get the idea, but what to do for people who don't have Adaptive Vsync?

Which people dont' have Adaptive VSync?

commented

I don't, for example.

commented

I don't, for example.

I mean, is it something with the hardware?

commented

Yes, it is available only when supported by the hardware.

commented

It is a hardware thing, more specifically if your monitor supports it

commented

What config to change

As said by the title, disable VSync and and enable Adaptive VSync (Extras tab)

Why should it be changed

People are constantly reporting that they are getting no FPS improvements while using FO and most of the times it's because of that. Some examples are:

(from the Discord server: https://discord.gg/yxaXtaQqdB)

Doing this will improve frame rates while having stability

Category

Vanilla option

Additional details

Enabling Adaptive VSync is a solution to potential drawbacks of disabling VSync itself. See:
https://www.intel.com/content/www/us/en/developer/articles/technical/enabling-intel-adaptive-sync-with-11th-generation-intel-processor-graphics-and-microsoft.html

I say no to this but inform people that if they can do it they should do it
Edit : First do polls to see whether majority have A-sync or don't have it and to see if people whitout it need Vsync or if they don't.
If majority have it then disable Vsync and FPS cap and enable A-sync. Tell people that if they have tearing they should enable Vsync. (with a quick explanation of what's tearing because some person will have the problem but won't know the word)
If majority don't have it well the other question
If most people have tearing leave Vsync enabled otherwise disable Vsync. If Vsync is enabled by default tell them to try disabling it and see if they need to enable it back. If Vsync is disabled by default tell people that if they have tearing they should enable Vsync.
Also tell people in both case that if they can have A-sync they should enable it and disable Vsync.

commented

We should do multiple really simple polls to get some ideas of numbers
1st : Do you have access to adaptive sync ?
If it's greyed out under the extra tab, the response is not.
2nd : If you don't have access to A-sync, do you have tearing with Vsync disabled ?
Try both option during a normal game session.
Tell us in thread if either you had so much tearing you had to enable it back, if you had some tearing but it was completly play able or if you had no tearing at all.
Give your hardware and OS info so we can see if some configs are particularly affected by it.

commented

Adaptive Sync needs V-Sync on to work

Could add that smth like "Require Vsync enabled to work !" in Adaptive sync tooltip ?

Sorry, my bad. It overrides.

ok so it's confirmed either A-sync or Vsync need to be enabled, not both at same time. Could you make it so that A-sync override Vsync ? I actually don't know if this is in your power or if it's a thing just that you couldn't even control.

I'm so sorry, my brain is on autopilot and just typing out random stuff. It needs Vsync to work if not it just fallbacks to whatever state vsync is in. Adaptive Sync should not be enabled by default. Not all machines support it. I need to add another layer of checks to prevent it from being enabled via config.

Well if it's enabled via config but not available it'll simply disable itself right ?

Nope, this check is only done via the GUI. The feature was directly picked from CaffeineMC/sodium#1194.

commented

OK i ran Quick Tests on my High-end PC which has a 240Hz panel which support A-sync
Type of sync : MAX / Avg / min
A-sync : 210 / 205 / 200
Vsync : 220 / 200 / 170
No sync : 240 / 237 / 233
I'm not sure about the fact A-sync is so much better than no sync.
But it's clear that it's far more stable than Vsync and so a note should be added to recommand it over just using Vsync if possible

commented

Adaptive Sync needs V-Sync on to work

Could add that smth like "Require Vsync enabled to work !" in Adaptive sync tooltip ?

Sorry, my bad. It overrides.

ok so it's confirmed either A-sync or Vsync need to be enabled, not both at same time. Could you make it so that A-sync override Vsync ? I actually don't know if this is in your power or if it's a thing just that you couldn't even control.

I'm so sorry, my brain is on autopilot and just typing out random stuff. It needs Vsync to work if not it just fallbacks to whatever state vsync is in. Adaptive Sync should not be enabled by default. Not all machines support it. I need to add another layer of checks to prevent it from being enabled via config.

Well if it's enabled via config but not available it'll simply disable itself right ?

Nope, this check is only done via the GUI. The feature was directly picked from CaffeineMC/sodium-fabric#1194.

Should i make an issue in sodium-extra to add the requirement to A-sync tooltip ?
Should i also make another issue to add this behavior of disabling A-sync tautomatically if it's unsupported ?
If this behavior is added it would mean that FO can just enable A-sync and Vsync and people who can't use A-sync fall back to Vsync.

commented

Should i make an issue in sodium-extra to add the requirement to A-sync tooltip ?
Should i also make another issue to add this behavior of disabling A-sync tautomatically if it's unsupported ?
If this behavior is added it would mean that FO can just enable A-sync and Vsync and people who can't use A-sync fall back to Vsync.

That won't be necessary, I've already pushed a fix for machines that don't support it and has it enabled via config. This will be available in the next release. I might replace that VSync control to cycle between None, VSync and Adaptive Sync.

commented

Should i make an issue in sodium-extra to add the requirement to A-sync tooltip ?
Should i also make another issue to add this behavior of disabling A-sync tautomatically if it's unsupported ?
If this behavior is added it would mean that FO can just enable A-sync and Vsync and people who can't use A-sync fall back to Vsync.

That won't be necessary, I've already pushed a fix for machines that don't support it and has it enabled via config. This will be available in the next release. I might replace that VSync control to cycle between None, VSync and Adaptive Sync.

That would fix both problems at the same time
If you don't have A-sync but is on it on the config could it go back to Vsync automatically ?

commented

Note that the VESA Adaptive Sync standard for variable refresh rate displays (or proprietary technologies G-SYNC/FreeSync) is not the same as the "Adaptive VSync" (NVIDIA's term, AMD seems to call it Enhanced Sync) controlled by WGL_EXT_swap_control_tear that Sodium Extra enables. It appears to be fairly widely supported in terms of GPU vendors, and doesn't require explicit monitor support, but is not as effective as Adaptive Sync technologies. I believe that users with variable refresh rate displays just need to disable VSync for Adaptive Sync to work, though this may depend on GPU drivers.

commented

Require to disable Vsync for which Adaptive Sync to work ? That one from sodium extra ? Or the other ? Because from what i tested the A-sync from SE do need Vsync enabled.

It doesn't need "vsync" to work. It can be written to work without vsync being enabled. It's just been picked and has never been modified from the original PR.

commented

Note that the VESA Adaptive Sync standard for variable refresh rate displays (or proprietary technologies G-SYNC/FreeSync) is not the same as the "Adaptive VSync" (NVIDIA's term, AMD seems to call it Enhanced Sync) controlled by WGL_EXT_swap_control_tear that Sodium Extra enables. It appears to be fairly widely supported in terms of GPU vendors, and doesn't require explicit monitor support, but is not as effective as Adaptive Sync technologies. I believe that users with variable refresh rate displays just need to disable VSync for Adaptive Sync to work, though this may depend on GPU drivers.

Require to disable Vsync for which Adaptive Sync to work ? That one from sodium extra ? Or the other ? Because from what i tested the A-sync from SE do need Vsync enabled.

commented

(For adaptive sync to be enabled, you need to have both V-Sync and Adaptive Sync options enabled)

commented

Require to disable Vsync for which Adaptive Sync to work ? That one from sodium extra ? Or the other ? Because from what i tested the A-sync from SE do need Vsync enabled.

It doesn't need "vsync" to work. It can be written to work without vsync being enabled. It's just been picked and has never been modified from the original PR.

Yeah i didn't meant like the technology need the other technology, i mean that here you need both options to be enabled. If you only have A-sync it doesn't do anything.

commented

@RaptaG should change name to simply "Enable Adaptive Sync"
Because Vsync needs to be enabled in options.
This might get a bit obsolete once next version of sodium extra is released due to that : unknown.png
And when that is released we can just enable A-sync and it'll fall back to Vsync for users that can't have A-sync.

commented

@RaptaG should change name to simply "Enable Adaptive Sync"

๐Ÿ‘

commented

So the idea is to wait for the next Sodium Extra, which will add additional checks for the feature, and still enable Adaptive Vsync by default in FO?

commented

So the idea is to wait for the next Sodium Extra, which will add additional checks for the feature, and still enable Adaptive Vsync by default in FO?

Yes

commented

Note that the VESA Adaptive Sync standard for variable refresh rate displays (or proprietary technologies G-SYNC/FreeSync) is not the same as the "Adaptive VSync" (NVIDIA's term, AMD seems to call it Enhanced Sync) controlled by WGL_EXT_swap_control_tear that Sodium Extra enables. It appears to be fairly widely supported in terms of GPU vendors, and doesn't require explicit monitor support, but is not as effective as Adaptive Sync technologies. I believe that users with variable refresh rate displays just need to disable VSync for Adaptive Sync to work, though this may depend on GPU drivers.

Alright, so if my machine claims on a sticker that it has "Adaptive Sync", how would I make sure it also has NVIDIA's standard, considering it has a recent NVIDIA card?

@RaptaG should change name to simply "Enable Adaptive Sync" Because Vsync needs to be enabled in options. This might get a bit obsolete once next version of sodium extra is released due to that : IMAGE And when that is released we can just enable A-sync and it'll fall back to Vsync for users that can't have A-sync.

Amazing! Gotta love those QoL revisions

commented

If I'm correct, it's just VSYNC that disables itself when fps under monitor refresh rate?

I think so, yes.

commented

The update with change of Adaptive Sync's placement on Sodium Extra has been released.

commented

The update with change of Adaptive Sync's placement on Sodium Extra has been released.

Amazing! As an extra, I didn't notice much difference (on the previous release so far) in frame responsiveness using the adaptive sync checkmark while running Linux. I am using X11, and will do further tests on Linux and Windows with the new release soon.

commented

Added in 3.13.0 and 4.2.0, but reverted in 3.13.1 and 4.2.1 because of issues with some graphics drivers. The option is still there so feel free to use it if it works for you.

Source (via)