xref: /aosp_15_r20/external/skia/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1### Compilation failed:
2
3error: SPIR-V validation error: Block decoration on target <id> '12[%_arr_testBlock_int_2]' must be a structure type
4  OpDecorate %_arr_testBlock_int_2 Block
5
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint Fragment %main "main" %sk_FragColor
10               OpExecutionMode %main OriginUpperLeft
11               OpName %testBlock "testBlock"
12               OpMemberName %testBlock 0 "s"
13               OpMemberName %testBlock 1 "m"
14               OpMemberName %testBlock 2 "a"
15               OpMemberName %testBlock 3 "am"
16               OpName %sk_FragColor "sk_FragColor"
17               OpName %main "main"
18               OpDecorate %_arr_float_int_2 ArrayStride 16
19               OpDecorate %_arr_mat2v2float_int_2 ArrayStride 32
20               OpMemberDecorate %testBlock 0 Offset 0
21               OpMemberDecorate %testBlock 1 Offset 16
22               OpMemberDecorate %testBlock 1 ColMajor
23               OpMemberDecorate %testBlock 1 MatrixStride 16
24               OpMemberDecorate %testBlock 2 Offset 48
25               OpMemberDecorate %testBlock 3 Offset 80
26               OpDecorate %_arr_testBlock_int_2 ArrayStride 144
27               OpDecorate %_arr_testBlock_int_2 Block
28               OpDecorate %3 Binding 123
29               OpDecorate %3 DescriptorSet 0
30               OpDecorate %sk_FragColor RelaxedPrecision
31               OpDecorate %sk_FragColor Location 0
32               OpDecorate %sk_FragColor Index 0
33               OpDecorate %35 RelaxedPrecision
34      %float = OpTypeFloat 32
35    %v2float = OpTypeVector %float 2
36%mat2v2float = OpTypeMatrix %v2float 2
37        %int = OpTypeInt 32 1
38      %int_2 = OpConstant %int 2
39%_arr_float_int_2 = OpTypeArray %float %int_2
40%_arr_mat2v2float_int_2 = OpTypeArray %mat2v2float %int_2
41  %testBlock = OpTypeStruct %float %mat2v2float %_arr_float_int_2 %_arr_mat2v2float_int_2
42%_arr_testBlock_int_2 = OpTypeArray %testBlock %int_2
43%_ptr_Uniform__arr_testBlock_int_2 = OpTypePointer Uniform %_arr_testBlock_int_2
44          %3 = OpVariable %_ptr_Uniform__arr_testBlock_int_2 Uniform
45    %v4float = OpTypeVector %float 4
46%_ptr_Output_v4float = OpTypePointer Output %v4float
47%sk_FragColor = OpVariable %_ptr_Output_v4float Output
48       %void = OpTypeVoid
49         %18 = OpTypeFunction %void
50      %int_0 = OpConstant %int 0
51%_ptr_Uniform_float = OpTypePointer Uniform %float
52      %int_1 = OpConstant %int 1
53%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
54      %int_3 = OpConstant %int 3
55       %main = OpFunction %void None %18
56         %19 = OpLabel
57         %21 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_0
58         %23 = OpLoad %float %21
59         %25 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_1 %int_1
60         %27 = OpLoad %v2float %25
61         %28 = OpCompositeExtract %float %27 0
62         %29 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_2 %int_1
63         %30 = OpLoad %float %29
64         %32 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_3 %int_1 %int_0
65         %33 = OpLoad %v2float %32
66         %34 = OpCompositeExtract %float %33 1
67         %35 = OpCompositeConstruct %v4float %23 %28 %30 %34
68               OpStore %sk_FragColor %35
69               OpReturn
70               OpFunctionEnd
71
721 error
73