Repository navigation
fix(agc): count transient copy buffers toward the recorder budget - #6320
adriadam10 merged 1 commit into
Conversation
72ecb87 to
fb4bf56
Compare
|
Rebased onto On the new head AI-assisted: yes |
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
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.
|
fb4bf56 to
bc07087
Compare
|
Rebased onto main at c842491: head is now bc07087; the one conflict was in the AI-assisted: yes |
Charge read-only GPU-copy input snapshots and depth-copy linear scratch for their requested bytes while the batch retains them. Exercise both production paths with CPU Vulkan mocks, including the budget boundary and fence-governed resource retention. Co-Authored-By: Codex <noreply@openai.com>
bc07087 to
ea02128
Compare
|
Rebased onto main Fresh checks on this exact head: five CPU/mock tests pass, and reverting only the two byte arguments makes both new copy tests fail at their budget assertions. After restoration/rebuild, the five tests pass again. The managed-slot adjacent batch passes 4/4 CTest cases: three real Vulkan suites ( Clean merge into main AI-assisted: yes |
What
Read-only GPU-copy input snapshots and the linear scratch buffer used by depth-copy refresh were retained with a zero byte charge. These allocations could accumulate without contributing to the recorder's existing 512 MiB batching budget.
Charge each temporary buffer's requested size while retaining its owner. The existing submission and fence-retirement boundaries stay in place. This accounts for the buffers' logical sizes; it is not a cap on all physical allocations.
Tested
Windows, GCC 15.2 Release/O3, rebased head
ea02128b5b2fbased on mainf3059421f:agc_copy_input_kept_bytes,agc_depth_copy_kept_bytes,agc_recorder_kept_bytes,agc_pipeline_library_clear_waits_for_buildandagc_pipeline_store_lazy_buffer_pool, 5/5 passed. Tests exercise the actual production copy paths, immutable input snapshots, mip offsets/aspects, exact budget boundaries, oldest-batch retirement and owner lifetime through fence completion.agc_driver_depth_compare_copy,agc_driver_depth_plane_guest_layers,agc_driver_recorded_kept_bytes(real Vulkan) andagc_driver_graphics(CPU/mock), 4/4 CTest cases passed in 11.48 seconds with no skipped CTest cases andANYPS5_REQUIRE_VULKAN=1. The recorded-kept-bytes suite explicitly reported that its draw-snapshot subcases were not tested on this configuration; its other cases ran. All four actual executables were freshly built for this head and pinned with their runtime libraries before and after the managed-slot run.The two new copy tests mock Vulkan and do not execute GPU copies. The three adjacent hardware suites exercise surrounding recorder/depth behavior. Clean merge into main
fc623324awas checked separately; the tests above ran on the stated head. No title memory reduction or FPS improvement has been measured for this change. Earlier test reports in comments apply to their explicitly named older heads.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)Co-Authored-By: Codex noreply@openai.com