Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/shaderc
Path: blob/main/glslc/test/option_fauto_bind_uniforms.py
1560 views
1
# Copyright 2017 The Shaderc Authors. All rights reserved.
2
#
3
# Licensed under the Apache License, Version 2.0 (the "License");
4
# you may not use this file except in compliance with the License.
5
# You may obtain a copy of the License at
6
#
7
# http://www.apache.org/licenses/LICENSE-2.0
8
#
9
# Unless required by applicable law or agreed to in writing, software
10
# distributed under the License is distributed on an "AS IS" BASIS,
11
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
# See the License for the specific language governing permissions and
13
# limitations under the License.
14
15
import expect
16
from glslc_test_framework import inside_glslc_testsuite
17
from placeholder import FileShader
18
19
# A GLSL shader with uniforms without explicit bindings.
20
GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS = """#version 450
21
#extension GL_ARB_sparse_texture2 : enable
22
uniform texture2D my_tex;
23
uniform sampler my_sam;
24
layout(rgba32f) uniform image2D my_img;
25
layout(rgba32f) uniform imageBuffer my_imbuf;
26
uniform block { float x; float y; } my_ubo;
27
buffer B { float z; } my_ssbo;
28
void main() {
29
texture(sampler2D(my_tex,my_sam),vec2(1.0));
30
vec4 t;
31
sparseImageLoadARB(my_img,ivec2(0),t);
32
imageLoad(my_imbuf,42);
33
float x = my_ubo.x;
34
my_ssbo.z = 1.1;
35
}"""
36
37
38
# An HLSL shader with uniforms without explicit bindings.
39
# The counter buffer has an associated counter that needs a
40
# binding. Compile this shader with --auto-bind-uniforms to
41
# give it a binding, since Glslang does not support attribute
42
# [[vk::counter_binding(N))]].
43
# See https://github.com/KhronosGroup/glslang/issues/1616
44
HLSL_SHADER_WITHOUT_BINDINGS = """
45
SamplerState s1 : register(s1);
46
SamplerComparisonState s2 : register(s2);
47
48
Texture1D t1 : register(t11);
49
Texture2D <float4> t2 : register(t12);
50
Texture3D <float2> t3 : register(t13);
51
StructuredBuffer<float4> t4 : register(t14);
52
ByteAddressBuffer t5 : register(t15);
53
Buffer<float4> t6 : register(t16);
54
55
RWTexture1D <float4> u1 : register(u21);
56
RWTexture1D <float4> u2 : register(u22);
57
RWTexture1D <float4> u3 : register(u23);
58
RWBuffer <float4> u4 : register(u24);
59
RWByteAddressBuffer u5 : register(u25);
60
RWStructuredBuffer<float> u6 : register(u26);
61
AppendStructuredBuffer<float> u7 : register(u27);
62
ConsumeStructuredBuffer<float> u8 : register(u28);
63
64
float4 main() : SV_Target0 {
65
s1;
66
s2;
67
68
t1;
69
t2;
70
t3;
71
t4[2];
72
t5.Load(8);
73
t6;
74
75
u1;
76
u2;
77
u3;
78
u4[1];
79
u5.Load(15);
80
u6[2];
81
u7;
82
u8;
83
return float4(u8.Consume() + t2.SampleCmp(s2, 1.0, 2.0)) + t1.Sample(s1, 1.0)
84
+ t6.Load(1);
85
}
86
"""
87
88
@inside_glslc_testsuite('OptionFAutoBindUniforms')
89
class UniformBindingsNotCreatedByDefault(expect.ErrorMessageSubstr):
90
"""Tests that compilation fails when uniforms have no binding."""
91
92
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
93
glslc_args = ['-S', shader]
94
expected_error_substr = "sampler/texture/image requires layout(binding=X)"
95
96
97
@inside_glslc_testsuite('OptionFAutoBindUniforms')
98
class FAutoBindingUniformsGeneratesBindings(expect.ValidAssemblyFileWithSubstr):
99
"""Tests that the compiler generates bindings for uniforms upon request ."""
100
101
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
102
glslc_args = ['-S', shader, '-fauto-bind-uniforms']
103
# Sufficient to just check one of the uniforms.
104
expected_assembly_substr = "OpDecorate %my_sam Binding 1"
105
106
107
@inside_glslc_testsuite('OptionFAutoBindUniforms')
108
class FImageBindingBaseOptionRespectedOnImage(expect.ValidAssemblyFileWithSubstr):
109
"""Tests that -fimage-binding-base value is respected on images."""
110
111
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
112
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fimage-binding-base', '44']
113
expected_assembly_substr = "OpDecorate %my_img Binding 44"
114
115
116
@inside_glslc_testsuite('OptionFAutoBindUniforms')
117
class FImageBindingBaseOptionRespectedOnImageBuffer(expect.ValidAssemblyFileWithSubstr):
118
"""Tests that -fimage-binding-base value is respected on image buffers."""
119
120
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
121
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fimage-binding-base', '44']
122
expected_assembly_substr = "OpDecorate %my_imbuf Binding 45"
123
124
125
@inside_glslc_testsuite('OptionFAutoBindUniforms')
126
class FTextureBindingBaseOptionRespected(expect.ValidAssemblyFileWithSubstr):
127
"""Tests that -ftexture-binding-base value is respected."""
128
129
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
130
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-ftexture-binding-base', '44']
131
expected_assembly_substr = "OpDecorate %my_tex Binding 44"
132
133
134
@inside_glslc_testsuite('OptionFAutoBindUniforms')
135
class FSamplerBindingBaseOptionRespected(expect.ValidAssemblyFileWithSubstr):
136
"""Tests that -fsampler-binding-base value is respected."""
137
138
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
139
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fsampler-binding-base', '44']
140
expected_assembly_substr = "OpDecorate %my_sam Binding 44"
141
142
143
@inside_glslc_testsuite('OptionFAutoBindUniforms')
144
class FUboBindingBaseOptionRespectedOnBuffer(expect.ValidAssemblyFileWithSubstr):
145
"""Tests that -fubo-binding-base value is respected."""
146
147
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
148
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fubo-binding-base', '44']
149
expected_assembly_substr = "OpDecorate %my_ubo Binding 44"
150
151
152
@inside_glslc_testsuite('OptionFAutoBindUniforms')
153
class FCbufferBindingBaseOptionRespectedOnBuffer(expect.ValidAssemblyFileWithSubstr):
154
"""Tests that -fcbuffer-binding-base value is respected."""
155
156
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
157
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fcbuffer-binding-base', '44']
158
expected_assembly_substr = "OpDecorate %my_ubo Binding 44"
159
160
161
@inside_glslc_testsuite('OptionFAutoBindUniforms')
162
class FImageBindingBaseNeedsValue(expect.ErrorMessageSubstr):
163
"""Tests that -fimage-binding-base requires a value."""
164
165
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
166
glslc_args = ['-S', shader, '-fimage-binding-base']
167
expected_error_substr = "error: Option -fimage-binding-base requires at least one argument"
168
169
170
@inside_glslc_testsuite('OptionFAutoBindUniforms')
171
class FTextureBindingBaseNeedsValue(expect.ErrorMessageSubstr):
172
"""Tests that -ftexture-binding-base requires a value."""
173
174
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
175
glslc_args = ['-S', shader, '-ftexture-binding-base']
176
expected_error_substr = "error: Option -ftexture-binding-base requires at least one argument"
177
178
179
@inside_glslc_testsuite('OptionFAutoBindUniforms')
180
class FSamplerBindingBaseNeedsValue(expect.ErrorMessageSubstr):
181
"""Tests that -fsampler-binding-base requires a value."""
182
183
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
184
glslc_args = ['-S', shader, '-fsampler-binding-base']
185
expected_error_substr = "error: Option -fsampler-binding-base requires at least one argument"
186
187
188
@inside_glslc_testsuite('OptionFAutoBindUniforms')
189
class FUboBindingBaseNeedsValue(expect.ErrorMessageSubstr):
190
"""Tests that -fubo-binding-base requires a value."""
191
192
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
193
glslc_args = ['-S', shader, '-fubo-binding-base']
194
expected_error_substr = "error: Option -fubo-binding-base requires at least one argument"
195
196
197
@inside_glslc_testsuite('OptionFAutoBindUniforms')
198
class FImageBindingBaseNeedsNumberValueIfNotStage(expect.ErrorMessageSubstr):
199
"""Tests that -fimage-binding-base requires a number value."""
200
201
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
202
glslc_args = ['-S', shader, '-fimage-binding-base', '9x']
203
expected_error_substr = "error: invalid offset value 9x for -fimage-binding-base"
204
205
206
@inside_glslc_testsuite('OptionFAutoBindUniforms')
207
class FTextureBindingBaseNeedsNumberValue(expect.ErrorMessageSubstr):
208
"""Tests that -ftexture-binding-base requires a number value."""
209
210
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
211
glslc_args = ['-S', shader, '-ftexture-binding-base', '9x']
212
expected_error_substr = "error: invalid offset value 9x for -ftexture-binding-base"
213
214
215
@inside_glslc_testsuite('OptionFAutoBindUniforms')
216
class FSamplerBindingBaseNeedsNumberValue(expect.ErrorMessageSubstr):
217
"""Tests that -fsampler-binding-base requires a number value."""
218
219
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
220
glslc_args = ['-S', shader, '-fsampler-binding-base', '9x']
221
expected_error_substr = "error: invalid offset value 9x for -fsampler-binding-base"
222
223
224
@inside_glslc_testsuite('OptionFAutoBindUniforms')
225
class FUboBindingBaseNeedsNumberValue(expect.ErrorMessageSubstr):
226
"""Tests that -fubo-binding-base requires a number value."""
227
228
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
229
glslc_args = ['-S', shader, '-fubo-binding-base', '9x']
230
expected_error_substr = "error: invalid offset value 9x for -fubo-binding-base"
231
232
233
@inside_glslc_testsuite('OptionFAutoBindUniforms')
234
class FImageBindingBaseNeedsUnsignedNumberValue(expect.ErrorMessageSubstr):
235
"""Tests that -fimage-binding-base requires an unsigned number value."""
236
237
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
238
glslc_args = ['-S', shader, '-fimage-binding-base', '-6']
239
expected_error_substr = "error: invalid offset value -6 for -fimage-binding-base"
240
241
242
@inside_glslc_testsuite('OptionFAutoBindUniforms')
243
class FTextureBindingBaseNeedsUnsignedNumberValue(expect.ErrorMessageSubstr):
244
"""Tests that -ftexture-binding-base requires an unsigned number value."""
245
246
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
247
glslc_args = ['-S', shader, '-ftexture-binding-base', '-6']
248
expected_error_substr = "error: invalid offset value -6 for -ftexture-binding-base"
249
250
251
@inside_glslc_testsuite('OptionFAutoBindUniforms')
252
class FSamplerBindingBaseNeedsUnsignedNumberValue(expect.ErrorMessageSubstr):
253
"""Tests that -fsampler-binding-base requires an unsigned value."""
254
255
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
256
glslc_args = ['-S', shader, '-fsampler-binding-base', '-6']
257
expected_error_substr = "error: invalid offset value -6 for -fsampler-binding-base"
258
259
260
@inside_glslc_testsuite('OptionFAutoBindUniforms')
261
class FUboBindingBaseNeedsUnsignedNumberValue(expect.ErrorMessageSubstr):
262
"""Tests that -fubo-binding-base requires an unsigned value."""
263
264
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
265
glslc_args = ['-S', shader, '-fubo-binding-base', '-6']
266
expected_error_substr = "error: invalid offset value -6 for -fubo-binding-base"
267
268
269
@inside_glslc_testsuite('OptionFAutoBindUniforms')
270
class FImageBindingBaseForVertOptionRespectedOnImageCompileAsVert(expect.ValidAssemblyFileWithSubstr):
271
"""Tests that -fimage-binding-base with vert stage value is respected on images."""
272
273
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
274
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fimage-binding-base', 'vert', '44']
275
expected_assembly_substr = "OpDecorate %my_img Binding 44"
276
277
278
@inside_glslc_testsuite('OptionFAutoBindUniforms')
279
class FImageBindingBaseForVertOptionIgnoredOnImageCompileAsFrag(expect.ValidAssemblyFileWithSubstr):
280
"""Tests that -fimage-binding-base with vert stage value is ignored when cmopiled as
281
fragment."""
282
283
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.frag')
284
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fimage-binding-base', 'vert', '44']
285
expected_assembly_substr = "OpDecorate %my_img Binding 2"
286
287
288
@inside_glslc_testsuite('OptionFAutoBindUniforms')
289
class FImageBindingBaseForFragOptionRespectedOnImageCompileAsFrag(expect.ValidAssemblyFileWithSubstr):
290
"""Tests that -fimage-binding-base with frag stage value is respected on images."""
291
292
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.frag')
293
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fimage-binding-base', 'frag', '44']
294
expected_assembly_substr = "OpDecorate %my_img Binding 44"
295
296
297
@inside_glslc_testsuite('OptionFAutoBindUniforms')
298
class FSsboBindingBaseRespectedOnSsboCompileAsFrag(expect.ValidAssemblyFileWithSubstr):
299
"""Tests that -fssbo-binding-base with frag stage value is respected on SSBOs."""
300
301
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.frag')
302
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fssbo-binding-base', '100']
303
expected_assembly_substr = "OpDecorate %my_ssbo Binding 100"
304
305
306
@inside_glslc_testsuite('OptionFAutoBindUniforms')
307
class FSsboBindingBaseForFragOptionRespectedOnSsboCompileAsFrag(expect.ValidAssemblyFileWithSubstr):
308
"""Tests that -fssbo-binding-base with frag stage value is respected on SSBOs."""
309
310
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.frag')
311
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fssbo-binding-base', 'frag', '100']
312
expected_assembly_substr = "OpDecorate %my_ssbo Binding 100"
313
314
315
@inside_glslc_testsuite('OptionFAutoBindUniforms')
316
class FSsboBindingBaseForFragOptionIgnoredOnSsboCompileAsVert(expect.ValidAssemblyFileWithSubstr):
317
"""Tests that -fssbo-binding-base with frag stage value is ignored on SSBOs
318
when compiling as a vertex shader."""
319
320
shader = FileShader(GLSL_SHADER_WITH_UNIFORMS_WITHOUT_BINDINGS, '.vert')
321
glslc_args = ['-S', shader, '-fauto-bind-uniforms', '-fssbo-binding-base', 'frag', '100']
322
expected_assembly_substr = "OpDecorate %my_ssbo Binding 5"
323
324
325
@inside_glslc_testsuite('OptionFAutoBindUniforms')
326
class AutomaticHlslIoMapping(expect.ValidAssemblyFileWithSubstr):
327
"""Tests that HLSL IO Mapping uses the register values in the source code."""
328
329
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
330
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap',
331
'-fauto-bind-uniforms', shader]
332
expected_assembly_substr = "OpDecorate %u8 Binding 28"
333
334
335
@inside_glslc_testsuite('OptionFAutoBindUniforms')
336
class HlslFSamplerBindingBaseOptionRespected(expect.ValidAssemblyFileWithSubstr):
337
"""Tests that -fsampler-binding-base sets binding base for samplers in HLSL
338
compilation."""
339
340
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
341
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
342
'-fauto-bind-uniforms', '-fsampler-binding-base', '100']
343
expected_assembly_substr = "OpDecorate %s2 Binding 102"
344
345
346
@inside_glslc_testsuite('OptionFAutoBindUniforms')
347
class HlslFSamplerBindingBaseForFragOptionRespected(expect.ValidAssemblyFileWithSubstr):
348
"""Tests that -fsampler-binding-base for frag sets binding base for samplers
349
in HLSL compilation."""
350
351
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
352
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
353
'-fauto-bind-uniforms', '-fsampler-binding-base', 'frag', '100']
354
expected_assembly_substr = "OpDecorate %s2 Binding 102"
355
356
357
@inside_glslc_testsuite('OptionFAutoBindUniforms')
358
class HlslFSamplerBindingBaseForComputeOptionIgnoredWhenCompilingAsFrag(expect.ValidAssemblyFileWithSubstr):
359
"""Tests that -fsampler-binding-base for compute is ignored when compiling
360
as a fragment shader."""
361
362
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
363
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
364
'-fauto-bind-uniforms', '-fsampler-binding-base', 'compute', '100']
365
expected_assembly_substr = "OpDecorate %s2 Binding 2"
366
367
368
@inside_glslc_testsuite('OptionFAutoBindUniforms')
369
class HlslFTextureBindingBaseOptionRespected(expect.ValidAssemblyFileWithSubstr):
370
"""Tests that -ftexture-binding-base sets binding base for textures in HLSL
371
compilation."""
372
373
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
374
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
375
'-fauto-bind-uniforms', '-ftexture-binding-base', '100']
376
expected_assembly_substr = "OpDecorate %t6 Binding 116"
377
378
379
@inside_glslc_testsuite('OptionFAutoBindUniforms')
380
class HlslFTextureBindingBaseForFragOptionRespected(expect.ValidAssemblyFileWithSubstr):
381
"""Tests that -ftexture-binding-base for frag sets binding base for textures
382
in HLSL compilation."""
383
384
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
385
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
386
'-fauto-bind-uniforms', '-ftexture-binding-base', 'frag', '100']
387
expected_assembly_substr = "OpDecorate %t6 Binding 116"
388
389
390
@inside_glslc_testsuite('OptionFAutoBindUniforms')
391
class HlslFTextureBindingBaseForComputeOptionIgnoredWhenCompilingAsFrag(expect.ValidAssemblyFileWithSubstr):
392
"""Tests that -ftexture-binding-base for compute is ignored when compiling
393
as a fragment shader."""
394
395
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
396
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
397
'-fauto-bind-uniforms', '-ftexture-binding-base', 'compute', '100']
398
expected_assembly_substr = "OpDecorate %t6 Binding 16"
399
400
401
@inside_glslc_testsuite('OptionFAutoBindUniforms')
402
class HlslFUavBindingBaseOptionRespected(expect.ValidAssemblyFileWithSubstr):
403
"""Tests that -fuav-binding-base sets binding base for UAVs in HLSL
404
compilation."""
405
406
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
407
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
408
'-fauto-bind-uniforms', '-fuav-binding-base', '100']
409
expected_assembly_substr = "OpDecorate %u8 Binding 128"
410
411
412
@inside_glslc_testsuite('OptionFAutoBindUniforms')
413
class HlslFUavBindingBaseForFragOptionRespected(expect.ValidAssemblyFileWithSubstr):
414
"""Tests that -fuav-binding-base for frag sets binding base for UAVs in HLSL
415
compilation."""
416
417
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
418
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
419
'-fauto-bind-uniforms', '-fuav-binding-base', 'frag', '100']
420
expected_assembly_substr = "OpDecorate %u8 Binding 128"
421
422
423
@inside_glslc_testsuite('OptionFAutoBindUniforms')
424
class HlslFUavBindingBaseForComputeOptionIgnoredWhenCompilingAsFrag(expect.ValidAssemblyFileWithSubstr):
425
"""Tests that -fuav-binding-base for compute is ignored when compiling
426
as a fragment shader."""
427
428
shader = FileShader(HLSL_SHADER_WITHOUT_BINDINGS, '.frag')
429
glslc_args = ['-S', '-x', 'hlsl', '-fhlsl-iomap', shader,
430
'-fauto-bind-uniforms', '-fuav-binding-base', 'compute', '100']
431
expected_assembly_substr = "OpDecorate %u8 Binding 28"
432
433