blob: 758a30bea63cf6ba33fbfa44b5b2ce83db2ceafb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
spv.bufferhandle6.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 165
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
Extension "SPV_KHR_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
EntryPoint Fragment 4 "main" 154
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_EXT_buffer_reference"
Name 4 "main"
Name 8 "accum"
Name 15 "T1"
MemberName 15(T1) 0 "a"
MemberName 15(T1) 1 "b"
MemberName 15(T1) 2 "c"
MemberName 15(T1) 3 "d"
Name 18 "T1"
MemberName 18(T1) 0 "a"
MemberName 18(T1) 1 "b"
MemberName 18(T1) 2 "c"
MemberName 18(T1) 3 "d"
Name 21 "x"
Name 30 "Block"
MemberName 30(Block) 0 "identity"
Name 32 "pc"
Name 136 "color"
Name 149 "image0_0"
Name 154 "gl_FragCoord"
Decorate 12 ArrayStride 4
Decorate 14 ArrayStride 8
MemberDecorate 15(T1) 0 Offset 0
MemberDecorate 15(T1) 1 Offset 32
MemberDecorate 15(T1) 2 Offset 48
MemberDecorate 15(T1) 3 Offset 80
Decorate 15(T1) Block
Decorate 16 ArrayStride 4
Decorate 17 ArrayStride 8
MemberDecorate 18(T1) 0 Offset 0
MemberDecorate 18(T1) 1 Offset 32
MemberDecorate 18(T1) 2 Offset 48
MemberDecorate 18(T1) 3 Offset 80
Decorate 18(T1) Block
Decorate 19 ArrayStride 8
Decorate 21(x) DescriptorSet 3
Decorate 21(x) Binding 1
Decorate 29 ArrayStride 4
MemberDecorate 30(Block) 0 Offset 0
Decorate 30(Block) Block
Decorate 149(image0_0) DescriptorSet 3
Decorate 149(image0_0) Binding 0
Decorate 154(gl_FragCoord) BuiltIn FragCoord
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
10: TypeInt 32 0
11: 10(int) Constant 2
12: TypeArray 6(int) 11
TypeForwardPointer 13 PhysicalStorageBufferEXT
14: TypeArray 13 11
15(T1): TypeStruct 12 6(int) 14 13
16: TypeArray 6(int) 11
17: TypeArray 13 11
18(T1): TypeStruct 16 6(int) 17 13
13: TypePointer PhysicalStorageBufferEXT 18(T1)
19: TypeArray 13(ptr) 11
20: TypePointer StorageBuffer 15(T1)
21(x): 20(ptr) Variable StorageBuffer
22: TypePointer StorageBuffer 6(int)
28: 10(int) Constant 32
29: TypeArray 6(int) 28
30(Block): TypeStruct 29
31: TypePointer PushConstant 30(Block)
32(pc): 31(ptr) Variable PushConstant
33: 6(int) Constant 1
34: TypePointer PushConstant 6(int)
44: 6(int) Constant 2
48: TypePointer StorageBuffer 13(ptr)
51: TypePointer PhysicalStorageBufferEXT 6(int)
54: 6(int) Constant 3
64: 6(int) Constant 4
72: 6(int) Constant 5
82: 6(int) Constant 6
94: 6(int) Constant 7
104: 6(int) Constant 8
112: 6(int) Constant 9
122: 6(int) Constant 10
130: 6(int) Constant 11
134: TypeVector 10(int) 4
135: TypePointer Function 134(ivec4)
138: TypeBool
140: 10(int) Constant 0
141: 134(ivec4) ConstantComposite 140 140 140 140
142: 10(int) Constant 1
143: 134(ivec4) ConstantComposite 142 140 140 142
144: TypeVector 138(bool) 4
147: TypeImage 10(int) 2D nonsampled format:R32ui
148: TypePointer UniformConstant 147
149(image0_0): 148(ptr) Variable UniformConstant
151: TypeFloat 32
152: TypeVector 151(float) 4
153: TypePointer Input 152(fvec4)
154(gl_FragCoord): 153(ptr) Variable Input
155: TypePointer Input 151(float)
162: TypeVector 6(int) 2
4(main): 2 Function None 3
5: Label
8(accum): 7(ptr) Variable Function
136(color): 135(ptr) Variable Function
Store 8(accum) 9
23: 22(ptr) AccessChain 21(x) 9 9
24: 6(int) Load 23
25: 6(int) ISub 24 9
26: 6(int) Load 8(accum)
27: 6(int) BitwiseOr 26 25
Store 8(accum) 27
35: 34(ptr) AccessChain 32(pc) 9 33
36: 6(int) Load 35
37: 22(ptr) AccessChain 21(x) 9 36
38: 6(int) Load 37
39: 6(int) ISub 38 33
40: 6(int) Load 8(accum)
41: 6(int) BitwiseOr 40 39
Store 8(accum) 41
42: 22(ptr) AccessChain 21(x) 33
43: 6(int) Load 42
45: 6(int) ISub 43 44
46: 6(int) Load 8(accum)
47: 6(int) BitwiseOr 46 45
Store 8(accum) 47
49: 48(ptr) AccessChain 21(x) 44 9
50: 13(ptr) Load 49
52: 51(ptr) AccessChain 50 9 9
53: 6(int) Load 52 Aligned 4
55: 6(int) ISub 53 54
56: 6(int) Load 8(accum)
57: 6(int) BitwiseOr 56 55
Store 8(accum) 57
58: 48(ptr) AccessChain 21(x) 44 9
59: 13(ptr) Load 58
60: 34(ptr) AccessChain 32(pc) 9 33
61: 6(int) Load 60
62: 51(ptr) AccessChain 59 9 61
63: 6(int) Load 62 Aligned 4
65: 6(int) ISub 63 64
66: 6(int) Load 8(accum)
67: 6(int) BitwiseOr 66 65
Store 8(accum) 67
68: 48(ptr) AccessChain 21(x) 44 9
69: 13(ptr) Load 68
70: 51(ptr) AccessChain 69 33
71: 6(int) Load 70 Aligned 16
73: 6(int) ISub 71 72
74: 6(int) Load 8(accum)
75: 6(int) BitwiseOr 74 73
Store 8(accum) 75
76: 34(ptr) AccessChain 32(pc) 9 33
77: 6(int) Load 76
78: 48(ptr) AccessChain 21(x) 44 77
79: 13(ptr) Load 78
80: 51(ptr) AccessChain 79 9 9
81: 6(int) Load 80 Aligned 4
83: 6(int) ISub 81 82
84: 6(int) Load 8(accum)
85: 6(int) BitwiseOr 84 83
Store 8(accum) 85
86: 34(ptr) AccessChain 32(pc) 9 33
87: 6(int) Load 86
88: 48(ptr) AccessChain 21(x) 44 87
89: 13(ptr) Load 88
90: 34(ptr) AccessChain 32(pc) 9 33
91: 6(int) Load 90
92: 51(ptr) AccessChain 89 9 91
93: 6(int) Load 92 Aligned 4
95: 6(int) ISub 93 94
96: 6(int) Load 8(accum)
97: 6(int) BitwiseOr 96 95
Store 8(accum) 97
98: 34(ptr) AccessChain 32(pc) 9 33
99: 6(int) Load 98
100: 48(ptr) AccessChain 21(x) 44 99
101: 13(ptr) Load 100
102: 51(ptr) AccessChain 101 33
103: 6(int) Load 102 Aligned 16
105: 6(int) ISub 103 104
106: 6(int) Load 8(accum)
107: 6(int) BitwiseOr 106 105
Store 8(accum) 107
108: 48(ptr) AccessChain 21(x) 54
109: 13(ptr) Load 108
110: 51(ptr) AccessChain 109 9 9
111: 6(int) Load 110 Aligned 4
113: 6(int) ISub 111 112
114: 6(int) Load 8(accum)
115: 6(int) BitwiseOr 114 113
Store 8(accum) 115
116: 48(ptr) AccessChain 21(x) 54
117: 13(ptr) Load 116
118: 34(ptr) AccessChain 32(pc) 9 33
119: 6(int) Load 118
120: 51(ptr) AccessChain 117 9 119
121: 6(int) Load 120 Aligned 4
123: 6(int) ISub 121 122
124: 6(int) Load 8(accum)
125: 6(int) BitwiseOr 124 123
Store 8(accum) 125
126: 48(ptr) AccessChain 21(x) 54
127: 13(ptr) Load 126
128: 51(ptr) AccessChain 127 33
129: 6(int) Load 128 Aligned 16
131: 6(int) ISub 129 130
132: 6(int) Load 8(accum)
133: 6(int) BitwiseOr 132 131
Store 8(accum) 133
137: 6(int) Load 8(accum)
139: 138(bool) INotEqual 137 9
145: 144(bvec4) CompositeConstruct 139 139 139 139
146: 134(ivec4) Select 145 141 143
Store 136(color) 146
150: 147 Load 149(image0_0)
156: 155(ptr) AccessChain 154(gl_FragCoord) 140
157: 151(float) Load 156
158: 6(int) ConvertFToS 157
159: 155(ptr) AccessChain 154(gl_FragCoord) 142
160: 151(float) Load 159
161: 6(int) ConvertFToS 160
163: 162(ivec2) CompositeConstruct 158 161
164: 134(ivec4) Load 136(color)
ImageWrite 150 163 164
Return
FunctionEnd
|