Repository navigation
test(agc): give the storage image budget test a device-local heap as large as its reported budget - #11293
Conversation
MarcZX10
left a comment
There was a problem hiding this comment.
I reviewed the one-line fixture change. Raising only the copied test context's selected heap makes its synthetic 64 GiB budget internally consistent; I did not find a code defect in that adjustment.
I cannot approve this head yet because the hardware comparison in the report uses main at 47f9cee2cd, while current main is ef1ddae699cb. Since that tested base, main gained AGC changes, including dbda360df4 (depth-bounds emulation) and its focused tests. The PR's product/GPU jobs are skipped, so there is no hosted run against current main. CONTRIBUTING requires AGC changes to run the same focused tests on main and the change with the validation layer and to compare validation output.
Please update the branch to current main and rerun the same agc_driver_sampled_cache_budget* focused tests on both current main and the updated head on the Radeon 860M, with VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, ANYPS5_NO_SHADER_CACHE=1, and ANYPS5_REQUIRE_VULKAN=1. Include the paired results and confirm both logs loaded the requested layer and the change adds no VUID- lines. This review environment has no Vulkan device, so I could not independently repeat the hardware run.
|
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.
|
b499fc2 to
b6c323d
Compare
|
@MarcZX10 thanks. Rebased onto All 15 tests of
To confirm both runs loaded the layer, AI-assisted: yes (Claude Code) |
MarcZX10
left a comment
There was a problem hiding this comment.
Your 07:35 update satisfies the earlier AGC validation request on the Radeon 860M: the focused baseline/change matrix is 14/15 versus 15/15, both validation layers were confirmed loaded, and neither run added VUIDs. I checked current sync: head b6c323df8a93a040b6dd90c844efedad052bc77b is 1 ahead / 42 behind current main 204c6747d0a1cbaf932def3dea0778810cc3935e, with a clean merge preview. The libSceAgcDriver/Graphics tree and this test file have not changed since the tested base 3d2b7c06, so the reported test results still cover the relevant code. Please bring the branch up to current main before merge; a repeat GPU run is only needed if the rebase changes relevant code.
…large as its reported budget agc_driver_sampled_cache_budget_memory reports a 64 GiB budget on the largest device-local heap but kept the heap's real size. On an APU that heap is 512 MiB, so the storage image cache ceiling is the 512 MiB floor, and both checks failed: half of the heap or of the budget (256 MiB) and the budget under pressure (1024 MiB). The test now raises the heap it reports to at least the reported budget, so its expectations hold whatever heap the device has. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
b6c323d to
3fe0cd9
Compare
|
@MarcZX10 rebased onto current AI-assisted: yes (Claude Code) |
|
A discrete-GPU run, since the description notes the reported heap also changes there. Windows 11 Pro 26200, Intel Core i5-14600K, NVIDIA GeForce RTX 5070 Ti (16 GiB, driver 610.88), WinLibs GCC 15.2.0 r7, Release. Head
Full |
Dismissing a stale review: the requested changes were addressed after it (new head) and the merge queue blocks on it. Please request changes again if anything is still open.
|
Checked the one-line fixture change against |
What
agc_driver_sampled_cache_budget_memoryfails on a GPU whose largest device-local heap is small, such as an APU's 512 MiB carve-out.storageMemoryTestsreports a 64 GiBVK_EXT_memory_budgetbudget on the largest device-local heap, but keeps that heap's real size.StorageTextureCeilingcaps the storage image cache at half the heap, with a 512 MiB floor, so on a 512 MiB heap the cache budget is 512 MiB. Both checks then fail:== half, from #10551)min(heap / 2, budget / 2)= 256 MiBThe driver behaves as intended here:
storageTextureBudgetTestsintests/Graphics.cppkeeps the 512 MiB floor and the half-heap cap. The test's reported budget is what doesn't fit the heap. The test now raises the largest device-local heap in its copy of the device's memory properties to at least the reported budget. Both expectations then hold whatever heap the device has. On a discrete GPU the heap it reports also becomes 64 GiB, and the two checks still expect half the budget (32 GiB) idle and the 1 GiB headroom result under pressure. The case where half the heap is below half the budget remains covered by the unit tests intests/Graphics.cpp.Tested
Windows 11 10.0.26300, AMD Ryzen AI 7 350 with Radeon 860M (largest device-local heap 512 MiB), AMD 24.30.58.08 (LLPC), WinLibs GCC 15.2, Release. Head
3fe0cd9b8b, onmain204c6747d0(tested on3d2b7c0673;Graphics/andSampledCacheBudget.cppare unchanged since).The 15 tests of
agc_driver_sampled_cache_budget_tests(ctest -R 'sampled_cache|resource_cache_|recover_'), onmain3d2b7c0673and on this head, withVK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation(Vulkan SDK 1.4.363.0),ANYPS5_NO_SHADER_CACHE=1andANYPS5_REQUIRE_VULKAN=1viactest -V:main3d2b7c0673agc_driver_sampled_cache_budget_memoryVUID-lineswas not found but was requested by env var VK_INSTANCE_LAYERSInsert instance layer "VK_LAYER_KHRONOS_validation"withVK_LOADER_DEBUG=all(_memoryrun)^agc_set onmain47f9cee2cdwith the validation layer: 1047 of 1051 pass. The other three failures are tracked in agc_host_import_cut_lifetime fails on Windows since the merge of #9159 #10746, AGC: imported depth-plane partial-store test fails refresh-proof assertion on Windows (NVIDIA and AMD) #10664 and AGC: agc_driver_sample_order_grid_reference loses the device on AMD's Windows driver with graphics pipeline libraries, passes with APS5_NO_GPL=1 #9507.check_conventions.py --base origin/mainpasses.pr_overlap.pyfinds no conflicting PR. feat(aot): consolidate native ARM64 compiler, runtime and consumers #5021 shares the file but conflicts withmain, so it was not compared.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)