Repository navigation
test(agc): disable barycentric built-ins in the mesh barycentric emulation test - #12062
Conversation
…ation test boykopovar#9193 added fragmentBarycentricBuiltins and cleared it in PixelBarycentricEmulation, but MeshBarycentricEmulation still takes the flag from the device. On a device with VK_KHR_fragment_shader_barycentric the host interpolation check then reads I/J from BaryCoordKHR, the pixel shader does not emulate barycentrics, and the test fails before its first draw. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed exact head 552d38908301cdbf6cb8a41ce7256de121f65a23. The one-line test setup change clears fragmentBarycentricBuiltins alongside fragmentShaderBarycentricEnabled, matching the existing pixel barycentric emulation setup and the described mesh-test failure. The PR includes repeated main-versus-change runs with validation enabled on an RTX 3080; this host has no compatible Vulkan device for independently reproducing those GPU results.\n\nValidation here: tools/check_conventions.py --base refs/remotes/upstream/main passed and git diff --check passed. No local GPU runtime result is claimed.
|
A Linux + NVIDIA data point for this head (
I came to the same one-line change from a validation-layer sweep of AI-assisted: yes (Claude Code) |
|
thanks for the review! |
|
Windows + NVIDIA result for head This PR's own tests: Host: Windows 11 26300, Intel i7-12700K, NVIDIA GeForce RTX 2070 SUPER (vendor 0x10de, device 0x1e84; Vulkan loader 1.4.357 from the NVIDIA driver 621.01), Khronos Validation Layers nightly 1.4.366 (b2b44c0d37) through Same focused run on
The tree also carried the open PRs #11948, #12132, #12070, #11680, #11679, #11678, #11677, #11675, #11674, #11605, #11604, #11600, all merged cleanly, so the run is a joint one. Not run on a PS5. AI-assisted: yes (Claude Code), the runs and the numbers above are from this machine. |
|
AMD result for this PR's head AMD Radeon RX 9070 GRE (RDNA 4,
The other five The iGPU in the same machine (Radeon(TM) Graphics, AI-assisted: yes |
|
Verified on current
This reproduces #12121 on a third device (RTX 4070; #12121 reports RTX 2070 SUPER and RTX 4090) and confirms this one-line change fixes it at the commit above. AI-assisted: yes |
What
agc_driver_mesh_barycentric_emulationfails on every run on a device withVK_KHR_fragment_shader_barycentricsince #9193:#9193 added
SpirvTarget::fragmentBarycentricBuiltinsand cleared it inPixelBarycentricEmulation'sDraw, butMeshBarycentricEmulation'sDrawstill copies it from the device target and only clearsfragmentShaderBarycentricEnabled. With the built-ins left on,HostInterpolationChecker::Lowerreads the I/J VGPRs fromBaryCoordKHR, sobarycentricEmulation.activestays false and the test stops at its firstRequire. This setstarget.fragmentBarycentricBuiltins = falsethere, as #9193 did for the pixel test. Test-only change.Tested
Windows 10 22H2 (19045), WinLibs GCC 15.2.0 r7, Release,
BUILD_TESTING=ON, all AGC execution tests built.ctest --test-dir build -R "^agc_driver_(mesh|pixel)_barycentric_emulation$" -VwithANYPS5_REQUIRE_VULKAN=1,ANYPS5_NO_SHADER_CACHE=1andVK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, 5 fresh-process runs each:agc_driver_mesh_barycentric_emulationagc_driver_pixel_barycentric_emulationmain228cd64b538the pixel shader did not emulate barycentrics)228cd64b538mesh barycentric emulation tests passed: 932 perspective and 932 linear I/J pixels, 932 raw vertex value pixels)main14332cd8d0VK_LOADER_DEBUG=layershowsVK_LAYER_KHRONOS_validationinserted (Khronos nightly Windows build); no log containsVUID-orwas not found but was requested by env var VK_INSTANCE_LAYERS.tools/check_conventions.py --base origin/mainpasses andtools/pr_overlap.pyreports no overlap.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)10de:2216, Ampere), driver 610.62, Windows 10 22H2 (19045)🤖 Generated with Claude Code