steamcompmgr: throttle frame callbacks to output refresh rate with VRR#2115
Open
matte-schwartz wants to merge 1 commit into
Open
steamcompmgr: throttle frame callbacks to output refresh rate with VRR#2115matte-schwartz wants to merge 1 commit into
matte-schwartz wants to merge 1 commit into
Conversation
4307152 to
1d4c7fc
Compare
Author
|
after further testing, my old approach caused the mangohud performance graphs to update irregularly with VRR enabled when used in the Steam UI. I've reworked this to reuse the existing VRR FPS-limit schedule path instead so overlay updates are still paced properly. |
…r VRR Under VRR, the main loop forces vblank=true every iteration so games can get commit wake-ups at their uncapped rate. Overlays fall through the FPS-limit throttle, so mangoapp receives a frame callback every main loop iteration and renders flat-out, spiking power usage. Throttle overlays on the latch path only, leaving the commit-done path alone so overlay commits are still marked done immediately and the next game-commit scanout picks up the freshest frame.
1d4c7fc to
0799560
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With VRR active, vblank is forced true every main loop iteration. This causes overlay windows to receive frame callbacks at an uncapped rate, rendering continuously and skyrocketing power usage.
Instead, throttle overlay callbacks to the output refresh rate by tracking the last overlay latch time and skipping callbacks until a full refresh cycle has completed.