mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
288 lines
16 KiB
Plaintext
288 lines
16 KiB
Plaintext
spv.memoryScopeSemantics.comp
|
|
// Module Version 10300
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 169
|
|
|
|
Capability Shader
|
|
Capability Int64
|
|
Capability Int64Atomics
|
|
Capability StorageImageMultisample
|
|
Capability VulkanMemoryModelKHR
|
|
Capability VulkanMemoryModelDeviceScopeKHR
|
|
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 46 "imageu"
|
|
Name 66 "BufferU"
|
|
MemberName 66(BufferU) 0 "x"
|
|
Name 68 "bufferu"
|
|
Name 73 "y"
|
|
Name 78 "BufferI"
|
|
MemberName 78(BufferI) 0 "x"
|
|
Name 80 "bufferi"
|
|
Name 84 "A"
|
|
MemberName 84(A) 0 "x"
|
|
Name 85 "BufferJ"
|
|
MemberName 85(BufferJ) 0 "a"
|
|
Name 88 "bufferj"
|
|
Name 99 "BufferK"
|
|
MemberName 99(BufferK) 0 "x"
|
|
Name 101 "bufferk"
|
|
Name 111 "imagej"
|
|
Name 123 "samp"
|
|
Name 134 "atomu64"
|
|
Name 139 "atomi64"
|
|
Name 144 "BufferL"
|
|
MemberName 144(BufferL) 0 "x"
|
|
Name 146 "bufferl"
|
|
Name 151 "BufferM"
|
|
MemberName 151(BufferM) 0 "x"
|
|
Name 153 "bufferm"
|
|
Name 165 "imageMS"
|
|
Decorate 36(imagei) DescriptorSet 0
|
|
Decorate 36(imagei) Binding 1
|
|
Decorate 46(imageu) DescriptorSet 0
|
|
Decorate 46(imageu) Binding 0
|
|
MemberDecorate 66(BufferU) 0 Offset 0
|
|
Decorate 66(BufferU) Block
|
|
Decorate 68(bufferu) DescriptorSet 0
|
|
Decorate 68(bufferu) Binding 2
|
|
MemberDecorate 78(BufferI) 0 Offset 0
|
|
Decorate 78(BufferI) Block
|
|
Decorate 80(bufferi) DescriptorSet 0
|
|
Decorate 80(bufferi) Binding 3
|
|
Decorate 83 ArrayStride 4
|
|
MemberDecorate 84(A) 0 Offset 0
|
|
MemberDecorate 85(BufferJ) 0 Offset 0
|
|
Decorate 85(BufferJ) Block
|
|
Decorate 88(bufferj) DescriptorSet 0
|
|
Decorate 88(bufferj) Binding 4
|
|
MemberDecorate 99(BufferK) 0 Offset 0
|
|
Decorate 99(BufferK) Block
|
|
Decorate 101(bufferk) DescriptorSet 0
|
|
Decorate 101(bufferk) Binding 7
|
|
Decorate 111(imagej) DescriptorSet 0
|
|
Decorate 111(imagej) Binding 5
|
|
Decorate 123(samp) DescriptorSet 0
|
|
Decorate 123(samp) Binding 6
|
|
MemberDecorate 144(BufferL) 0 Offset 0
|
|
Decorate 144(BufferL) Block
|
|
Decorate 146(bufferl) DescriptorSet 0
|
|
Decorate 146(bufferl) Binding 8
|
|
MemberDecorate 151(BufferM) 0 Offset 0
|
|
Decorate 151(BufferM) Block
|
|
Decorate 153(bufferm) DescriptorSet 0
|
|
Decorate 153(bufferm) Binding 9
|
|
Decorate 165(imageMS) DescriptorSet 0
|
|
Decorate 165(imageMS) Binding 10
|
|
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)
|
|
42: 15(int) Constant 32768
|
|
44: TypeImage 15(int) 2D nonsampled format:R32ui
|
|
45: TypePointer UniformConstant 44
|
|
46(imageu): 45(ptr) Variable UniformConstant
|
|
47: 15(int) Constant 3
|
|
48: TypePointer Image 15(int)
|
|
51: 15(int) Constant 4
|
|
53: 15(int) Constant 7
|
|
58: 6(int) Constant 7
|
|
62: 15(int) Constant 10
|
|
64: 15(int) Constant 322
|
|
66(BufferU): TypeStruct 15(int)
|
|
67: TypePointer StorageBuffer 66(BufferU)
|
|
68(bufferu): 67(ptr) Variable StorageBuffer
|
|
69: TypePointer StorageBuffer 15(int)
|
|
71: 15(int) Constant 1
|
|
78(BufferI): TypeStruct 15(int)
|
|
79: TypePointer StorageBuffer 78(BufferI)
|
|
80(bufferi): 79(ptr) Variable StorageBuffer
|
|
83: TypeArray 15(int) 26
|
|
84(A): TypeStruct 83
|
|
85(BufferJ): TypeStruct 84(A)
|
|
86: TypeArray 85(BufferJ) 26
|
|
87: TypePointer StorageBuffer 86
|
|
88(bufferj): 87(ptr) Variable StorageBuffer
|
|
95: TypePointer StorageBuffer 84(A)
|
|
99(BufferK): TypeStruct 15(int)
|
|
100: TypePointer Uniform 99(BufferK)
|
|
101(bufferk): 100(ptr) Variable Uniform
|
|
102: TypePointer Uniform 15(int)
|
|
107: TypeVector 6(int) 4
|
|
109: TypeArray 34 26
|
|
110: TypePointer UniformConstant 109
|
|
111(imagej): 110(ptr) Variable UniformConstant
|
|
117: 107(ivec4) ConstantComposite 38 38 38 38
|
|
118: TypeFloat 32
|
|
119: TypeImage 118(float) 2D sampled format:Unknown
|
|
120: TypeSampledImage 119
|
|
121: TypeArray 120 26
|
|
122: TypePointer UniformConstant 121
|
|
123(samp): 122(ptr) Variable UniformConstant
|
|
124: TypePointer UniformConstant 120
|
|
127: TypeVector 118(float) 2
|
|
128: 118(float) Constant 0
|
|
129: 127(fvec2) ConstantComposite 128 128
|
|
130: TypeVector 118(float) 4
|
|
132: TypeInt 64 0
|
|
133: TypePointer Workgroup 132(int64_t)
|
|
134(atomu64): 133(ptr) Variable Workgroup
|
|
135:132(int64_t) Constant 7 0
|
|
137: TypeInt 64 1
|
|
138: TypePointer Workgroup 137(int64_t)
|
|
139(atomi64): 138(ptr) Variable Workgroup
|
|
140:137(int64_t) Constant 10 0
|
|
144(BufferL): TypeStruct 15(int)
|
|
145: TypePointer StorageBuffer 144(BufferL)
|
|
146(bufferl): 145(ptr) Variable StorageBuffer
|
|
151(BufferM): TypeStruct 15(int)
|
|
152: TypePointer StorageBuffer 151(BufferM)
|
|
153(bufferm): 152(ptr) Variable StorageBuffer
|
|
161: 6(int) Constant 32768
|
|
163: TypeImage 6(int) 2D multi-sampled nonsampled format:R32i
|
|
164: TypePointer UniformConstant 163
|
|
165(imageMS): 164(ptr) Variable UniformConstant
|
|
167: 6(int) Constant 4294967289
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
8(origi): 7(ptr) Variable Function
|
|
21(origu): 20(ptr) Variable Function
|
|
73(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
|
|
43: 6(int) AtomicLoad 41 12 30
|
|
Store 8(origi) 43
|
|
49: 48(ptr) ImageTexelPointer 46(imageu) 39 17
|
|
50: 15(int) AtomicIAdd 49 12 30 47
|
|
Store 21(origu) 50
|
|
52: 48(ptr) ImageTexelPointer 46(imageu) 39 17
|
|
AtomicStore 52 12 33 51
|
|
54: 15(int) AtomicOr 23(atomu) 12 17 53
|
|
Store 21(origu) 54
|
|
55: 15(int) AtomicXor 23(atomu) 12 17 53
|
|
Store 21(origu) 55
|
|
56: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
57: 15(int) AtomicUMin 23(atomu) 12 17 56
|
|
Store 21(origu) 57
|
|
59: 6(int) AtomicSMax 10(atomi) 12 17 58
|
|
Store 8(origi) 59
|
|
60: 6(int) Load 8(origi)
|
|
61: 6(int) AtomicExchange 10(atomi) 12 17 60
|
|
Store 8(origi) 61
|
|
63: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
65: 15(int) AtomicCompareExchange 23(atomu) 12 64 64 63 62
|
|
Store 21(origu) 65
|
|
70: 69(ptr) AccessChain 68(bufferu) 38
|
|
72: 15(int) AtomicIAdd 70 12 18 71
|
|
MemoryBarrier 26 18
|
|
ControlBarrier 26 26 64
|
|
ControlBarrier 26 26 17
|
|
74: 69(ptr) AccessChain 68(bufferu) 38
|
|
75: 15(int) Load 74 MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
Store 73(y) 75
|
|
76: 15(int) Load 73(y)
|
|
77: 69(ptr) AccessChain 68(bufferu) 38
|
|
Store 77 76 MakePointerAvailableKHR NonPrivatePointerKHR 26
|
|
81: 69(ptr) AccessChain 80(bufferi) 38
|
|
82: 15(int) Load 81 MakePointerVisibleKHR NonPrivatePointerKHR 16
|
|
Store 73(y) 82
|
|
89: 69(ptr) AccessChain 88(bufferj) 38 38 38 12
|
|
90: 15(int) Load 89 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
|
Store 73(y) 90
|
|
91: 15(int) Load 73(y)
|
|
92: 69(ptr) AccessChain 80(bufferi) 38
|
|
Store 92 91 MakePointerAvailableKHR NonPrivatePointerKHR 16
|
|
93: 15(int) Load 73(y)
|
|
94: 69(ptr) AccessChain 88(bufferj) 38 38 38 12
|
|
Store 94 93 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
|
|
96: 95(ptr) AccessChain 88(bufferj) 12 38
|
|
97: 84(A) Load 96 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
|
98: 95(ptr) AccessChain 88(bufferj) 38 38
|
|
Store 98 97 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
|
|
103: 102(ptr) AccessChain 101(bufferk) 38
|
|
104: 15(int) Load 103 NonPrivatePointerKHR
|
|
105: 69(ptr) AccessChain 80(bufferi) 38
|
|
Store 105 104 MakePointerAvailableKHR NonPrivatePointerKHR 16
|
|
106: 34 Load 36(imagei)
|
|
108: 107(ivec4) ImageRead 106 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16
|
|
112: 35(ptr) AccessChain 111(imagej) 38
|
|
113: 34 Load 112
|
|
114: 107(ivec4) ImageRead 113 39 NonPrivateTexelKHR
|
|
115: 35(ptr) AccessChain 111(imagej) 12
|
|
116: 34 Load 115
|
|
ImageWrite 116 39 117 NonPrivateTexelKHR
|
|
125: 124(ptr) AccessChain 123(samp) 38
|
|
126: 120 Load 125
|
|
131: 130(fvec4) ImageSampleExplicitLod 126 129 Lod NonPrivateTexelKHR 128
|
|
136:132(int64_t) AtomicUMax 134(atomu64) 12 17 135
|
|
Store 134(atomu64) 136 MakePointerAvailableKHR NonPrivatePointerKHR 26
|
|
141:132(int64_t) Load 134(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
|
142:137(int64_t) Bitcast 141
|
|
143:137(int64_t) AtomicCompareExchange 139(atomi64) 12 64 64 142 140
|
|
147: 69(ptr) AccessChain 146(bufferl) 38
|
|
148: 15(int) Load 147 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
|
Store 73(y) 148
|
|
149: 69(ptr) AccessChain 146(bufferl) 38
|
|
150: 15(int) AtomicIAdd 149 16 42 71
|
|
154: 69(ptr) AccessChain 153(bufferm) 38
|
|
155: 15(int) AtomicOr 154 16 42 26
|
|
156: 40(ptr) ImageTexelPointer 36(imagei) 39 17
|
|
157: 6(int) AtomicIAdd 156 16 42 11
|
|
158: 69(ptr) AccessChain 68(bufferu) 38
|
|
159: 15(int) AtomicIAdd 158 12 17 51
|
|
160: 69(ptr) AccessChain 68(bufferu) 38
|
|
162: 15(int) AtomicIAdd 160 12 42 16
|
|
166: 40(ptr) ImageTexelPointer 165(imageMS) 39 12
|
|
AtomicStore 166 12 33 14
|
|
168: 40(ptr) ImageTexelPointer 36(imagei) 39 17
|
|
AtomicStore 168 12 33 167
|
|
Return
|
|
FunctionEnd
|