-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Checkout this cool thing: https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_vulkan_memory_model.html
In #8251 we added cooperative matrix support which requires the vulkan memory model, so we enabled it. The vulkan memory model isn't supposed to change driver behavior but rather specify it more precisely. Unfortunately, we are not in compliance with it.
Every memory access now must specify "memory semantics," for example for workgroup memory/storage buffers would need NonPrivatePointerKHR to indicate that the memory access might depend on/affect other invocations. Also it will need to say if the reads/writes should be made visible.
We've known for a while in #4444 that storage buffers are not safely usable across invocations quite like workgroup memory. I believe this now also applies to workgroup memory however in shaders that make use of cooperative matrices. For that reason I think #8251 can be considered a regression.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status