You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
288 lines
16 KiB
288 lines
16 KiB
4 months ago
|
spv.memoryScopeSemantics.comp
|
||
|
// Module Version 10300
|
||
|
// Generated by (magic number): 8000a
|
||
|
// 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
|