Skip to content

Vulkan memory model spec details 馃馃憜#8805

Description

@inner-daemons

Checkout this cool thing: https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_vulkan_memory_model.html

Relevant:
#4444
#1545

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

Type

No type

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions