Repository navigation
Conversation
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
Thanks for looking at flip latency. The Presentation.cpp change can't go in: the |
|
Ran the VideoOut flip tests with a real window, which CI skips (offscreen SDL has no Vulkan surface): with this PR, flips complete before the GPU work submitted ahead of them. Windows 11 10.0.26200.9711, RTX 5070 Ti (NVIDIA 617.42), WinLibs GCC 15.2.0 r7, Release. Head 700b4bc merged onto main f3263df (clean merge, no new build errors). All 20
So the flip is reported complete ~155 ms before the dispatch queued ahead of it finishes, which is what This looks like the removed AI-assisted: yes |
|
Thanks for the detailed verification and testing. I have reverted the Presentation.cpp changes to preserve the trailing FinishPresent() GPU completion guarantee and keep video_out_flip_tests (aftergpu and pacing) passing. This PR is now focused strictly on pinning the draw committer thread on hybrid CPU topologies. |
700b4bc to
8dbd8de
Compare
|
Rechecked 8dbd8de with a real window, same setup as my earlier comment (Windows 11 26200, RTX 5070 Ti, NVIDIA 617.42, WinLibs GCC 15.2.0 r7, Release), merged onto main 9f25d0b:
Not tested: the draw-committer pin itself. This machine is a Ryzen 7 9800X3D (no hybrid cores), and AI-assisted: yes |
|
Coordination note from new issue #7581: the |
|
Rechecked 8dbd8de with a real window, same setup as my earlier comment (Windows 11 26200, RTX 5070 Ti, NVIDIA 617.42, WinLibs GCC 15.2.0 r7, Release), merged onto main 9f25d0b:
Correction to my earlier comment: I listed Not tested: the draw-committer pin itself. This machine is a Ryzen 7 9800X3D (no hybrid cores), and AI-assisted: yes |
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for reverting the Presentation.cpp part. Two things left:
- This is a
perfPR but has no before/after numbers. Please post them from a hybrid CPU withAPS5_WORKER_AFFINITY=1vs unset (e.g.APS5_PROFILE_DRAWframe times or draw committer stall counters, several runs, title/PPSA named). Pinning is off by default, so without data it is unclear what it improves. - The PR now conflicts with
main:DrawPipeline::run()begins withPerformanceTrace::BindThread("draw committer");and there is a newPerformanceTrace.hppinclude. Rebase and keep both (PinWorkerThread("draw_committer")after theBindThreadline, theWorkerAffinity.hppinclude alongside).
8dbd8de to
35ed3b7
Compare
|
This pull request is labeled |
35ed3b7 to
c1e6a2d
Compare
c1e6a2d to
3bc428f
Compare
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for reverting the Presentation.cpp part; the rebase onto main is clean now. One point is left, and only you can provide it:
- This is a
perfPR but has no measurements. Please post theaps5-summary.jsonlline of a capture onmainand one with the change (APS5_WORKER_AFFINITY=1vs unset), from the same title (PPSA named), scene and hybrid-CPU machine, several runs, the two traces and thetools/trace_digest.pyoutput, as thepr-labels-perfbot asks. Pinning is off by default, so without numbers it is unclear what this improves.
We can't produce this ourselves (no hybrid CPU or title here). Without data we'll close this as stale later; feel free to reopen with it.
What
Pins the background draw committer thread to worker affinity via
PinWorkerThread("draw_committer")at worker start inDrawPipeline.cpp. This aligns the draw committer with hybrid CPU performance scheduling (whenAPS5_WORKER_AFFINITYis active) and avoids thread migration latency spikes during draw queue processing.The flip completion latency changes in
Presentation.cpphave been reverted to preserve GPU completion guarantees and keepvideo_out_flip_tests aftergpupassing.Tested
tools/check_conventions.py --base origin/mainpasses.agc_driver_pm4_tests.exeandagc_driver_graphics_tests.exepass on Windows.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)