Repository navigation
Conversation
|
@Kikoarl, a heads-up: #4897 overlaps with point 4 here. It also adds
The lookup your point 4 adds is the first step of |
|
Please split this into four PRs, each with its own test and before/after (#218): unlocking |
39ae909 to
c4e5b75
Compare
|
Thanks @oneandonlydean. Fully agree with splitting into atomic PRs and keeping changes isolated:
|
|
Rebase handoff — rebased onto current Verified on Linux (CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release,
To pick it up: Head is |
c4e5b75 to
0e22e3c
Compare
|
Picked up the rebase onto latest main |
|
Thanks for the work on this. Closing for now: main already sends these records to the CPU path, since |
What
Narrows PR #4868 strictly to the indirect draw argument and count buffer coverage checks (per @oneandonlydean review):
ClassifyIndirectDraw(IndirectDraw.cpp), verifies that indirect argument buffer ranges (indirect.RangeBytes()) and indirect count buffer (indirect.countAddress) are backed by registered readable guest memory usingGraphics::RegisteredReadableCovers(...).Path::NotImportedto execute cleanly on the CPU path rather than failing or trapping in backend GPU indirect buffer setup.docs/dev/debt/libSceAgcDriver.md.tests/execution/DrawOffsetIndices.cppasserting that unmapped argument buffers and unmapped count buffers are classified toPath::NotImported.(Note: Per Dean's recommendation, the other three bundled mechanisms have been separated: compute pipeline lookup is ceded to @karanvora2599's #4897, while the GpuMutex record unlock and dispatch coverage checks are deferred to separate atomic PRs).
Performance & Telemetry (Astro Bot PPSA21567)
Measured across alternating 10-second runs on Astro Bot intro/gameplay transition scene against base
8299b2f7e:main(8299b2f7e)main + #4868Path::NotImportedearly exit)main(8299b2f7e)main + #4868main(8299b2f7e)main + #4868Tested
PPSA21567)agc_driver_draw_offset_indices_tests(verifies unmapped argument buffer and unmapped count buffer classification toPath::NotImported). All tests pass.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)