Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement an adaptive internal latency handle. #1961

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

HansKristian-Work
Copy link
Owner

Optimize for smoother frame pace rather than strict adherence to the
present wait internal. The scenario where this can greatly help
is on FRR display where GPU is rendering slower than refresh rate.
In this situation, we can observe that DXGI present blocks spuriously
for a full frame interval, which can cause starvation issues, since
CPU might become too late to submit more work to GPU in time,
which is especially devastating on Deck due to its power management
scheme.

Useful heuristic to determine if we're fully GPU bound or not.
Waits are counted as work, since it implies there is active GPU work in
another queue.

Signed-off-by: Hans-Kristian Arntzen <[email protected]>
@HansKristian-Work HansKristian-Work force-pushed the internal-latency-handle-adaptive branch from 01dc996 to 64cfee9 Compare April 8, 2024 15:01
Optimize for smoother frame pace rather than strict adherence to the
present wait internal. The scenario where this can greatly help
is on FRR display where GPU is rendering slower than refresh rate.
In this situation, we can observe that DXGI present blocks spuriously
for a full frame interval, which can cause starvation issues, since
CPU might become too late to submit more work to GPU in time,
which is especially devastating on Deck due to its power management
scheme.

Signed-off-by: Hans-Kristian Arntzen <[email protected]>
@HansKristian-Work HansKristian-Work force-pushed the internal-latency-handle-adaptive branch from 64cfee9 to 9a0edfc Compare April 8, 2024 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant