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