Repository navigation
feat(agc): accept 64-bit atomics in graphics shaders when the device enables them - #1074
Conversation
4f755c1 to
0560b1e
Compare
|
Conflicts with main in |
0560b1e to
573fc79
Compare
…enables them The recompiler emits OpCapability Int64Atomics for 64-bit buffer atomics in any stage, and the device enables shaderBufferInt64Atomics when it has it, but graphics shader validation only accepted its fixed list of capabilities, so every draw whose shaders use one was rejected with "SPIR-V requires unsupported device capability 12". Compute dispatches are not validated this way and already ran them. The device records the feature (bufferInt64Atomics in the device state and the graphics Context) and ValidateShaders accepts Int64Atomics when it is enabled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
573fc79 to
a2b049d
Compare
|
Native Windows run, since no Windows results were posted. Setup: Windows 10 (19045), RTX 3060 Laptop (NVIDIA 616.92), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release. Head
No title was run. 🤖 Addressed by Claude Code |
|
Checked on current main: build and full ctest green (546/546), |
What
Graphics shader validation accepts
OpCapability Int64Atomicswhen the device enabledshaderBufferInt64Atomics. The recompiler emits that capability for 64-bit buffer atomics in any stage, and the device setup enables the feature when it is available. ButValidateShadersonly accepted its fixed list, so every draw whose shaders use one was dropped withSPIR-V requires unsupported device capability 12. Compute dispatches are not validated this way and already ran them.The device records the feature (
bufferInt64Atomicsin the device state and in the graphicsContext) and passes it toValidateShaders.A note for #896, which adds 64-bit image atomics: its second commit does the same for
Int64ImageEXTwith animageInt64Atomicsflag. Both PRs change the sameValidateShaderssignature, so whichever lands second needs a rebase. The combined form is..., descriptorIndexing, bufferInt64Atomics, imageInt64Atomics, withInt64Atomicsaccepted when either flag is set.Tested
Linux 7.2.9 (Arch), Mesa 26.2.4 RADV, RX 9070 XT.
agc_driver_graphics: a module declaringInt64Atomicsis refused without the feature and accepted with it.ctest: 463 of 463 pass on currentmain.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code