A quirk of DXC that went unnoticed for years is that instead of decorating the top-level of a buffer as NonWritable, it decorates all members of the buffer. While this is legal, it wasn't noticed during bring up of VK_EXT_descriptor_heap, and a key part of how the mapping APIs in that extension works is making use of this decoration.
A DXC issue has been raised to modify DXC to adjust for this, but for existing shaders it could be useful to be able to do a quick fixup pass, without needing to regenerate all of the shaders.
This issue is a request to at least consider adding a pass to do this to spirv-opt.
A quirk of DXC that went unnoticed for years is that instead of decorating the top-level of a buffer as NonWritable, it decorates all members of the buffer. While this is legal, it wasn't noticed during bring up of VK_EXT_descriptor_heap, and a key part of how the mapping APIs in that extension works is making use of this decoration.
A DXC issue has been raised to modify DXC to adjust for this, but for existing shaders it could be useful to be able to do a quick fixup pass, without needing to regenerate all of the shaders.
This issue is a request to at least consider adding a pass to do this to spirv-opt.