241 lines
13 KiB
Plaintext
241 lines
13 KiB
Plaintext
spv.memoryScopeSemantics.comp
|
|
// Module Version 10300
|
|
// Generated by (magic number): 80007
|
|
// Id's are bound by 143
|
|
|
|
Capability Shader
|
|
Capability Int64
|
|
Capability Int64Atomics
|
|
Capability CapabilityVulkanMemoryModelKHR
|
|
Capability CapabilityVulkanMemoryModelDeviceScopeKHR
|
|
Extension "SPV_KHR_vulkan_memory_model"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical VulkanKHR
|
|
EntryPoint GLCompute 4 "main"
|
|
ExecutionMode 4 LocalSize 1 1 1
|
|
Source GLSL 450
|
|
SourceExtension "GL_ARB_gpu_shader_int64"
|
|
SourceExtension "GL_KHR_memory_scope_semantics"
|
|
Name 4 "main"
|
|
Name 8 "origi"
|
|
Name 10 "atomi"
|
|
Name 21 "origu"
|
|
Name 23 "atomu"
|
|
Name 24 "value"
|
|
Name 36 "imagei"
|
|
Name 45 "imageu"
|
|
Name 65 "BufferU"
|
|
MemberName 65(BufferU) 0 "x"
|
|
Name 67 "bufferu"
|
|
Name 72 "y"
|
|
Name 77 "BufferI"
|
|
MemberName 77(BufferI) 0 "x"
|
|
Name 79 "bufferi"
|
|
Name 83 "A"
|
|
MemberName 83(A) 0 "x"
|
|
Name 84 "BufferJ"
|
|
MemberName 84(BufferJ) 0 "a"
|
|
Name 87 "bufferj"
|
|
Name 98 "BufferK"
|
|
MemberName 98(BufferK) 0 "x"
|
|
Name 100 "bufferk"
|
|
Name 110 "imagej"
|
|
Name 122 "samp"
|
|
Name 133 "atomu64"
|
|
Name 138 "atomi64"
|
|
Decorate 36(imagei) DescriptorSet 0
|
|
Decorate 36(imagei) Binding 1
|
|
Decorate 45(imageu) DescriptorSet 0
|
|
Decorate 45(imageu) Binding 0
|
|
MemberDecorate 65(BufferU) 0 Offset 0
|
|
Decorate 65(BufferU) Block
|
|
Decorate 67(bufferu) DescriptorSet 0
|
|
Decorate 67(bufferu) Binding 2
|
|
MemberDecorate 77(BufferI) 0 Offset 0
|
|
Decorate 77(BufferI) Block
|
|
Decorate 79(bufferi) DescriptorSet 0
|
|
Decorate 79(bufferi) Binding 3
|
|
Decorate 82 ArrayStride 4
|
|
MemberDecorate 83(A) 0 Offset 0
|
|
MemberDecorate 84(BufferJ) 0 Offset 0
|
|
Decorate 84(BufferJ) Block
|
|
Decorate 87(bufferj) DescriptorSet 0
|
|
Decorate 87(bufferj) Binding 4
|
|
MemberDecorate 98(BufferK) 0 Offset 0
|
|
Decorate 98(BufferK) Block
|
|
Decorate 100(bufferk) DescriptorSet 0
|
|
Decorate 100(bufferk) Binding 7
|
|
Decorate 110(imagej) DescriptorSet 0
|
|
Decorate 110(imagej) Binding 5
|
|
Decorate 122(samp) DescriptorSet 0
|
|
Decorate 122(samp) Binding 6
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypePointer Function 6(int)
|
|
9: TypePointer Workgroup 6(int)
|
|
10(atomi): 9(ptr) Variable Workgroup
|
|
11: 6(int) Constant 3
|
|
12: 6(int) Constant 1
|
|
13: 6(int) Constant 320
|
|
14: 6(int) Constant 4
|
|
15: TypeInt 32 0
|
|
16: 15(int) Constant 5
|
|
17: 15(int) Constant 0
|
|
18: 15(int) Constant 324
|
|
20: TypePointer Function 15(int)
|
|
22: TypePointer Workgroup 15(int)
|
|
23(atomu): 22(ptr) Variable Workgroup
|
|
24(value): 22(ptr) Variable Workgroup
|
|
26: 15(int) Constant 2
|
|
28: 6(int) Constant 64
|
|
29: 6(int) Constant 2
|
|
30: 15(int) Constant 66
|
|
33: 15(int) Constant 68
|
|
34: TypeImage 6(int) 2D nonsampled format:R32i
|
|
35: TypePointer UniformConstant 34
|
|
36(imagei): 35(ptr) Variable UniformConstant
|
|
37: TypeVector 6(int) 2
|
|
38: 6(int) Constant 0
|
|
39: 37(ivec2) ConstantComposite 38 38
|
|
40: TypePointer Image 6(int)
|
|
43: TypeImage 15(int) 2D nonsampled format:R32ui
|
|
44: TypePointer UniformConstant 43
|
|
45(imageu): 44(ptr) Variable UniformConstant
|
|
46: 15(int) Constant 3
|
|
47: TypePointer Image 15(int)
|
|
50: 15(int) Constant 4
|
|
52: 15(int) Constant 7
|
|
57: 6(int) Constant 7
|
|
61: 15(int) Constant 10
|
|
63: 15(int) Constant 322
|
|
65(BufferU): TypeStruct 15(int)
|
|
66: TypePointer StorageBuffer 65(BufferU)
|
|
67(bufferu): 66(ptr) Variable StorageBuffer
|
|
68: TypePointer StorageBuffer 15(int)
|
|
70: 15(int) Constant 1
|
|
77(BufferI): TypeStruct 15(int)
|
|
78: TypePointer StorageBuffer 77(BufferI)
|
|
79(bufferi): 78(ptr) Variable StorageBuffer
|
|
82: TypeArray 15(int) 26
|
|
83(A): TypeStruct 82
|
|
84(BufferJ): TypeStruct 83(A)
|
|
85: TypeArray 84(BufferJ) 26
|
|
86: TypePointer StorageBuffer 85
|
|
87(bufferj): 86(ptr) Variable StorageBuffer
|
|
94: TypePointer StorageBuffer 83(A)
|
|
98(BufferK): TypeStruct 15(int)
|
|
99: TypePointer Uniform 98(BufferK)
|
|
100(bufferk): 99(ptr) Variable Uniform
|
|
101: TypePointer Uniform 15(int)
|
|
106: TypeVector 6(int) 4
|
|
108: TypeArray 34 26
|
|
109: TypePointer UniformConstant 108
|
|
110(imagej): 109(ptr) Variable UniformConstant
|
|
116: 106(ivec4) ConstantComposite 38 38 38 38
|
|
117: TypeFloat 32
|
|
118: TypeImage 117(float) 2D sampled format:Unknown
|
|
119: TypeSampledImage 118
|
|
120: TypeArray 119 26
|
|
121: TypePointer UniformConstant 120
|
|
122(samp): 121(ptr) Variable UniformConstant
|
|
123: TypePointer UniformConstant 119
|
|
126: TypeVector 117(float) 2
|
|
127: 117(float) Constant 0
|
|
128: 126(fvec2) ConstantComposite 127 127
|
|
129: TypeVector 117(float) 4
|
|
131: TypeInt 64 0
|
|
132: TypePointer Workgroup 131(int64_t)
|
|
133(atomu64): 132(ptr) Variable Workgroup
|
|
134:131(int64_t) Constant 7 0
|
|
136: TypeInt 64 1
|
|
137: TypePointer Workgroup 136(int64_t)
|
|
138(atomi64): 137(ptr) Variable Workgroup
|
|
139:136(int64_t) Constant 10 0
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
8(origi): 7(ptr) Variable Function
|
|
21(origu): 20(ptr) Variable Function
|
|
72(y): 20(ptr) Variable Function
|
|
19: 6(int) AtomicIAdd 10(atomi) 12 18 11
|
|
Store 8(origi) 19
|
|
25: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
27: 15(int) AtomicAnd 23(atomu) 16 17 25
|
|
Store 21(origu) 27
|
|
31: 6(int) AtomicLoad 10(atomi) 12 30
|
|
Store 8(origi) 31
|
|
32: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
AtomicStore 23(atomu) 12 33 32
|
|
41: 40(ptr) ImageTexelPointer 36(imagei) 39 17
|
|
42: 6(int) AtomicLoad 41 12 30
|
|
Store 8(origi) 42
|
|
48: 47(ptr) ImageTexelPointer 45(imageu) 39 17
|
|
49: 15(int) AtomicIAdd 48 12 30 46
|
|
Store 21(origu) 49
|
|
51: 47(ptr) ImageTexelPointer 45(imageu) 39 17
|
|
AtomicStore 51 12 33 50
|
|
53: 15(int) AtomicOr 23(atomu) 12 17 52
|
|
Store 21(origu) 53
|
|
54: 15(int) AtomicXor 23(atomu) 12 17 52
|
|
Store 21(origu) 54
|
|
55: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
56: 15(int) AtomicUMin 23(atomu) 12 17 55
|
|
Store 21(origu) 56
|
|
58: 6(int) AtomicSMax 10(atomi) 12 17 57
|
|
Store 8(origi) 58
|
|
59: 6(int) Load 8(origi)
|
|
60: 6(int) AtomicExchange 10(atomi) 12 17 59
|
|
Store 8(origi) 60
|
|
62: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
64: 15(int) AtomicCompareExchange 23(atomu) 12 63 63 62 61
|
|
Store 21(origu) 64
|
|
69: 68(ptr) AccessChain 67(bufferu) 38
|
|
71: 15(int) AtomicIAdd 69 12 18 70
|
|
MemoryBarrier 26 18
|
|
ControlBarrier 26 26 63
|
|
ControlBarrier 26 26 17
|
|
73: 68(ptr) AccessChain 67(bufferu) 38
|
|
74: 15(int) Load 73 MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
Store 72(y) 74
|
|
75: 15(int) Load 72(y)
|
|
76: 68(ptr) AccessChain 67(bufferu) 38
|
|
Store 76 75 MakePointerAvailableKHR NonPrivatePointerKHR 26
|
|
80: 68(ptr) AccessChain 79(bufferi) 38
|
|
81: 15(int) Load 80 MakePointerVisibleKHR NonPrivatePointerKHR 16
|
|
Store 72(y) 81
|
|
88: 68(ptr) AccessChain 87(bufferj) 38 38 38 12
|
|
89: 15(int) Load 88 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 46
|
|
Store 72(y) 89
|
|
90: 15(int) Load 72(y)
|
|
91: 68(ptr) AccessChain 79(bufferi) 38
|
|
Store 91 90 MakePointerAvailableKHR NonPrivatePointerKHR 16
|
|
92: 15(int) Load 72(y)
|
|
93: 68(ptr) AccessChain 87(bufferj) 38 38 38 12
|
|
Store 93 92 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 46
|
|
95: 94(ptr) AccessChain 87(bufferj) 12 38
|
|
96: 83(A) Load 95 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 46
|
|
97: 94(ptr) AccessChain 87(bufferj) 38 38
|
|
Store 97 96 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 46
|
|
102: 101(ptr) AccessChain 100(bufferk) 38
|
|
103: 15(int) Load 102 NonPrivatePointerKHR
|
|
104: 68(ptr) AccessChain 79(bufferi) 38
|
|
Store 104 103 MakePointerAvailableKHR NonPrivatePointerKHR 16
|
|
105: 34 Load 36(imagei)
|
|
107: 106(ivec4) ImageRead 105 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16
|
|
111: 35(ptr) AccessChain 110(imagej) 38
|
|
112: 34 Load 111
|
|
113: 106(ivec4) ImageRead 112 39 NonPrivateTexelKHR
|
|
114: 35(ptr) AccessChain 110(imagej) 12
|
|
115: 34 Load 114
|
|
ImageWrite 115 39 116 NonPrivateTexelKHR
|
|
124: 123(ptr) AccessChain 122(samp) 38
|
|
125: 119 Load 124
|
|
130: 129(fvec4) ImageSampleExplicitLod 125 128 Lod NonPrivateTexelKHR 127
|
|
135:131(int64_t) AtomicUMax 133(atomu64) 12 17 134
|
|
Store 133(atomu64) 135 MakePointerAvailableKHR NonPrivatePointerKHR 26
|
|
140:131(int64_t) Load 133(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
141:136(int64_t) Bitcast 140
|
|
142:136(int64_t) AtomicCompareExchange 138(atomi64) 12 63 63 141 139
|
|
Return
|
|
FunctionEnd
|