Fix interactions between 'volatile' and the Vulkan memory model
Last year we changed 'volatile' to also act as 'coherent', but when I resolved the memory model changes against that change I missed handling volatile in a couple places that we check for coherent. There was also a place in post-processing that acted as if the volatile memory access flag has a literal number associated with it, when it doesn't.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
spv.bufferhandle10.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 34
|
||||
// Id's are bound by 40
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityVulkanMemoryModelKHR
|
||||
@@ -24,6 +24,7 @@ spv.bufferhandle10.frag
|
||||
Name 12 "t"
|
||||
Name 19 "i"
|
||||
Name 28 "b"
|
||||
Name 34 "b2"
|
||||
MemberDecorate 7(t2) 0 Offset 0
|
||||
Decorate 7(t2) Block
|
||||
Decorate 9 ArrayStride 4
|
||||
@@ -34,6 +35,7 @@ spv.bufferhandle10.frag
|
||||
Decorate 19(i) Flat
|
||||
Decorate 19(i) Location 0
|
||||
Decorate 28(b) DecorationAliasedPointerEXT
|
||||
Decorate 34(b2) DecorationAliasedPointerEXT
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
TypeForwardPointer 6 PhysicalStorageBufferEXT
|
||||
@@ -55,9 +57,11 @@ spv.bufferhandle10.frag
|
||||
25: 8(int) Constant 0
|
||||
27: TypePointer Function 6(ptr)
|
||||
32: 8(int) Constant 2
|
||||
38: 8(int) Constant 3
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
28(b): 27(ptr) Variable Function
|
||||
34(b2): 27(ptr) Variable Function
|
||||
16: 15(ptr) AccessChain 12(t) 14
|
||||
17: 6(ptr) Load 16
|
||||
20: 8(int) Load 19(i)
|
||||
@@ -69,5 +73,11 @@ spv.bufferhandle10.frag
|
||||
31: 6(ptr) Load 28(b)
|
||||
33: 21(ptr) AccessChain 31 14 14
|
||||
Store 33 32 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 4 24
|
||||
35: 15(ptr) AccessChain 12(t) 14
|
||||
36: 6(ptr) Load 35
|
||||
Store 34(b2) 36 Volatile
|
||||
37: 6(ptr) Load 34(b2) Volatile
|
||||
39: 21(ptr) AccessChain 37 14 14
|
||||
Store 39 38 Volatile Aligned MakePointerAvailableKHR NonPrivatePointerKHR 4 24
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user