Variable Refresh Rate (VRR) options should be invisible & their respecting config entries have no effect on non-VRR systems
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
vrr_runloop_enable = "true"
video_adaptive_vsync = "true"
both of these options seem to have effects on non VRR systems - ie, they bypass the default audio-skew behaviour which speeds up/slows down games to match the current refresh rate, within the tolerance (audio_max_timing_skew = 0.05), and introduce judder in its place.
IMO these options should be hidden when VRR is not enabled on the system, and likewise the .cfg entries should have no effect. this would also reduce clutter in the menus.
i'm not sure if there's a good way of detecting if vrr is enabled on a given system. does glxSwapIntervalEXT(glXSwapIntervalEXT(dpy, drawable,-1) return an error if attempted on a non vrr system? or maybe attempt it, and then detect if it's been accepted via reading the current vsync mode with glXSwapIntervalEXT() (no params)?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the handling of vrr_runloop_enable and video_adaptive_vsync, then inspect the glXSwapIntervalEXT path mentioned in the issue. Determine how non-VRR systems are identified and verify that these options are hidden and have no effect there. Done means the default audio-skew behavior remains active on non-VRR systems and the related menu entries are absent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- computer-graphics, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100