Description
Naga's SPIR-V frontend does not currently handle atomic operations. Using an atomic operation (in this case spirv_std::arch::atomic_i_increment
in a rust-gpu
shader) leads to a parse error:
UnsupportedInstruction(Function, AtomicIIncrement)
I'm treating this as the tracking issue for adding atomics to the spv frontend.
Milestone 1
Completion of milestone 1 will be a proof-of-strategy, after which that strategy can be re-applied to complete atomics support for all operations. First atomic operations support will be documented in the renderling devlog as a method / PoC to help in the completion of other operations.
Milestone 2
Rinse and repeat, adding support for more atomic operations, until all have been exhausted.
Milestone 3 & Follow up work
Cleaning up tests, bugfixes that might pop up, and generally making this feature more maintainable - tying up any loose ends.