blob: 29675915c6a39f4a2fe701a928fe5f6e62b3dbad [file] [log] [blame]
spv.memoryScopeSemantics.comp
// Module Version 10300
// Generated by (magic number): 80008
// Id's are bound by 163
Capability Shader
Capability Int64
Capability Int64Atomics
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"
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
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
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
Return
FunctionEnd