Repository navigation
test(agc): keep rectangle corner shaders valid for SPIR-V 1.3 - #8978
Merged
adriadam10 merged 2 commits intoOct 24, 2026
Merged
Conversation
Contributor
|
Independent run on AMD. Windows 11 Pro 26200, AMD Radeon 680M (RDNA 2 iGPU), AMD driver 32.0.21030.2001, WinLibs GCC 15.2.0 r7, Release, Khronos validation layer from SDK 1.4.363 (
AI-assisted: yes |
12 tasks done
Collaborator
|
Checked: the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The handwritten vertex shader in
agc_driver_rect_list_cornerselectsvec4values with scalar boolean conditions. SPIR-V 1.3 requires matching vector conditions; Vulkan validation reportsVUID-VkShaderModuleCreateInfo-pCode-08737even though the pixel assertions and CTest pass. This is the fixture validation error reported during #8884 testing. The relevant rule is implemented in the bundled SPIRV-Tools validator.Replicate each condition into a
bvec4, exercise the existing corner and coverage assertions with SPIR-V 1.3 and also 1.4 when supported, and validate the handwritten vertex/fragment modules through the existing SPIRV-Tools API when enabled. This changes one test fixture.Tested
Release builds of the rectangle-corner, provoking-vertex and pixel-barycentric-emulation test targets succeeded on Windows (WinLibs GCC 15.2.0 r7) and Ubuntu 24.04 WSL (GCC 13.3), with
ANYPS5_ENABLE_SPIRV_TOOLS=ONand bundled dependencies.Paired baseline:
mainatf894ba69d30055259a56907563f438379d1275a3plus only the version-coverage commitb19567729a7b01a92ed2918587933e172fc6889b, retaining the original scalar conditions. Fixed:d68928050c630400811416c2d474eaf21f44903b.Each host ran the same three tests three times, without skips. Rectangle runs covered both SPIR-V 1.3 and 1.4, selected the expected four corners, and covered 4096/4096 pixels. The neighboring tests were validation-clean on both baseline and fixed versions. A negative control retaining the scalar conditions with the new SPIRV-Tools preflight failed CTest with
Expected vector sizes of Result Type and the condition to be equalon Windows.Both versions used
ANYPS5_REQUIRE_VULKAN=1,ANYPS5_NO_SHADER_CACHE=1,APS5_NO_PIPELINE_JOURNAL=1, andVK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, with the portable layer selected byVK_LAYER_PATH. Loader logs confirmed the requested layer was inserted on both hosts; neither contained the missing-layer diagnostic. Linux explicitly selected lavapipe. Test command:python3 tools/check_conventions.py --base origin/mainpassed.python3 tools/pr_overlap.py --branch codex/rect-list-corner-spirv13 --jobs 4reported no overlap. No full CTest suite or commercial title was run.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)