Repository navigation
test(agc): align the array window test's texels at run time - #8310
oneandonlydean merged 1 commit into
Conversation
WinLibs GCC 15.2.0 rejects the alignas(65536) static array that agc_driver_image_array_window_past_layer_limit added in boykopovar#6772 (requested alignment '65536' exceeds object file maximum 8192), which stops a Windows build with every AGC execution test. Take a 64 KiB aligned 4 MiB span of a larger static array instead, as boykopovar#6452 did for the indirect arguments block, and check its alignment at start.
|
Your exact allocation correction restores the supported WinLibs GCC 15.2.0 r7 build here. Our full Windows integration also builds successfully. The separate AMD expectation correction is now proposed as #8361, depending on this PR. It replaces the fixed three-layer sampling bound with the selected view's bound, The final paired check uses upstream production main
All twelve runs verified the actual adapter and inserted Khronos validation device layer, with required Vulkan, shader cache disabled, and zero Vulkan errors/warnings/VUIDs. Windows 11 Enterprise 26200; RTX 5080 driver 610.62 / 32.0.16.1062; AMD Radeon(TM) Graphics 32.0.21036.18. Exact fork composition pins and the Vulkan 1.4.363 reference are in #8361. These final results are independent of our broader Sonic runtime composition. AI-assisted: yes. |
|
Reproduced the break and the fix on Windows 11, WinLibs GCC 15.2.0 (MinGW), Release,
AI-assisted: yes (Claude Code); results above were run on this machine. |
|
Second independent run, this time with the test executed. Amoenus already confirmed the build on an RTX 5080. Host: Windows 11 Pro 26220, NVIDIA GeForce RTX 4070 driver 596.21, Ryzen 7 5700X, WinLibs MinGW-w64 GCC 15.2 r7, Release,
Not checked: Vulkan validation layers, the rest of the test suite, title runs, a full GPU pass, Linux. I did not force a misaligned array to see the new check fire. Written with Claude Code assistance (validation by a subagent, reviewed in this session). |
|
@oneandonlydean this was closed without a merge or a comment, but main (c61d20f) still has |
|
@oneandonlydean I think this may have been closed by mistake: there was no comment, and |
|
@harisibrar1 @dantdmdarealguy thanks both, and sorry: it was closed by mistake. It's reopened and back in review. I'm running the full workflow on this head now and will merge it if Linux |
The test declared its depth plane alignas(65536). WinLibs GCC 15.2
rejects static objects aligned above 8192 bytes ("requested alignment
'65536' exceeds object file maximum 8192"), so agc_driver_depth_copy_draw
did not build on Windows. The plane is now a 64 KiB aligned span inside
a larger array, as boykopovar#8310 does for the array window test, and the test
checks the alignment.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The test declared its depth plane alignas(65536). WinLibs GCC 15.2
rejects static objects aligned above 8192 bytes ("requested alignment
'65536' exceeds object file maximum 8192"), so agc_driver_depth_copy_draw
did not build on Windows. The plane is now a 64 KiB aligned span inside
a larger array, as boykopovar#8310 does for the array window test, and the test
checks the alignment.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What
Restores the Windows build of
agc_driver_image_array_window_past_layer_limit, which #6772 added. A Windows build with every AGC execution test (ANYPS5_AGC_EXECUTION_TESTSempty, the default) stops onmaine9a5a0c84(still present ond14a186f4), because the required WinLibs GCC 15.2.0 r7 rejects the test's 64 KiB aligned static array:Windows CI builds only three execution tests, so it does not catch this. The fix is the one #6452 made for #6716:
Texelsis now a 64 KiB aligned 4 MiB span inside a static array 64 KiB - 1 bytes larger, andmainchecks the alignment before opening the device. The texture descriptor, shader, layers and expected texels are unchanged, and no driver code changes.Tested
Windows 11 Pro, Intel Core i9-14900K, 128 GB RAM, NVIDIA GeForce RTX 5080 (driver 32.0.16.1742), WinLibs GCC 15.2.0 r7, Release,
BUILD_TESTING=ON, every execution test built.maine9a5a0c84: building the test's object fails with the error above. With this change it builds and links.ctest -R "^agc_driver_image_array_window_past_layer_limit$"withANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1: 5 of 5 pass on the RTX 5080 (0.39-0.51 s), and 3 of 3 pass on the Intel UHD Graphics 770 withANYPS5_GPU=Intel. Each run printsa window of a 1D array past maxImageArrayLayers was sampled and loaded from its viewed layers.VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation(Vulkan SDK 1.4.363.0 layer, loaded viaVK_ADD_LAYER_PATH;VK_LOADER_DEBUG=layershows it inserted),ANYPS5_NO_SHADER_CACHE=1,ANYPS5_REQUIRE_VULKAN=1andctest -V: passes with 0VUID-and nowas not found but was requested by env var VK_INSTANCE_LAYERS.mainhas no run to compare, because the test does not build there.ctest -R "^agc_|video_out|pad_"with--parallel 2: 853 of 854 pass. The one failure isagc_driver_pass_input_hazard, which also fails onmainand is fixed by fix(agc): require the pass-input barrier only for an in-place read #7954.patched_libraries: 352 patched libraries loaded, 0 failed. The full build and thelibstarget build with no warnings.tools/check_test_registration.py,tools/check_conventions.py --base origin/mainandtools/pr_overlap.py --branchpass.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)