1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %main "main" %sk_FragColor 5 OpExecutionMode %main OriginUpperLeft 6 OpName %testStorageBuffer "testStorageBuffer" 7 OpMemberName %testStorageBuffer 0 "testArr" 8 OpName %S "S" 9 OpMemberName %S 0 "y" 10 OpName %testStorageBufferStruct "testStorageBufferStruct" 11 OpMemberName %testStorageBufferStruct 0 "testArrStruct" 12 OpName %sk_FragColor "sk_FragColor" 13 OpName %unsizedInParameterA_ff_testArr "unsizedInParameterA_ff_testArr" 14 OpName %unsizedInParameterB_fS_testArrStruct "unsizedInParameterB_fS_testArrStruct" 15 OpName %unsizedInParameterC_ff_testArr "unsizedInParameterC_ff_testArr" 16 OpName %unsizedInParameterD_fS_testArrStruct "unsizedInParameterD_fS_testArrStruct" 17 OpName %unsizedInParameterE_ff_testArr "unsizedInParameterE_ff_testArr" 18 OpName %unsizedInParameterF_fS_testArrStruct "unsizedInParameterF_fS_testArrStruct" 19 OpName %getColor_h4f_testArr "getColor_h4f_testArr" 20 OpName %getColor_helper_h4f_testArr "getColor_helper_h4f_testArr" 21 OpName %main "main" 22 OpDecorate %_runtimearr_float ArrayStride 4 23 OpMemberDecorate %testStorageBuffer 0 Offset 0 24 OpDecorate %testStorageBuffer BufferBlock 25 OpDecorate %11 Binding 0 26 OpDecorate %11 DescriptorSet 0 27 OpMemberDecorate %S 0 Offset 0 28 OpDecorate %_runtimearr_S ArrayStride 4 29 OpMemberDecorate %testStorageBufferStruct 0 Offset 0 30 OpMemberDecorate %testStorageBufferStruct 0 RelaxedPrecision 31 OpDecorate %testStorageBufferStruct BufferBlock 32 OpDecorate %16 Binding 1 33 OpDecorate %16 DescriptorSet 0 34 OpDecorate %sk_FragColor RelaxedPrecision 35 OpDecorate %sk_FragColor Location 0 36 OpDecorate %sk_FragColor Index 0 37 OpDecorate %56 RelaxedPrecision 38 %float = OpTypeFloat 32 39%_runtimearr_float = OpTypeRuntimeArray %float 40%testStorageBuffer = OpTypeStruct %_runtimearr_float 41%_ptr_Uniform_testStorageBuffer = OpTypePointer Uniform %testStorageBuffer 42 %11 = OpVariable %_ptr_Uniform_testStorageBuffer Uniform 43 %S = OpTypeStruct %float 44%_runtimearr_S = OpTypeRuntimeArray %S 45%testStorageBufferStruct = OpTypeStruct %_runtimearr_S 46%_ptr_Uniform_testStorageBufferStruct = OpTypePointer Uniform %testStorageBufferStruct 47 %16 = OpVariable %_ptr_Uniform_testStorageBufferStruct Uniform 48 %v4float = OpTypeVector %float 4 49%_ptr_Output_v4float = OpTypePointer Output %v4float 50%sk_FragColor = OpVariable %_ptr_Output_v4float Output 51 %24 = OpTypeFunction %float 52 %int = OpTypeInt 32 1 53 %int_0 = OpConstant %int 0 54%_ptr_Uniform_float = OpTypePointer Uniform %float 55 %float_0 = OpConstant %float 0 56 %43 = OpTypeFunction %v4float 57 %int_1 = OpConstant %int 1 58 %int_2 = OpConstant %int 2 59 %int_3 = OpConstant %int 3 60 %void = OpTypeVoid 61 %60 = OpTypeFunction %void 62%unsizedInParameterA_ff_testArr = OpFunction %float None %24 63 %25 = OpLabel 64 %28 = OpAccessChain %_ptr_Uniform_float %11 %int_0 %int_0 65 %30 = OpLoad %float %28 66 OpReturnValue %30 67 OpFunctionEnd 68%unsizedInParameterB_fS_testArrStruct = OpFunction %float None %24 69 %31 = OpLabel 70 %32 = OpAccessChain %_ptr_Uniform_float %16 %int_0 %int_0 %int_0 71 %33 = OpLoad %float %32 72 OpReturnValue %33 73 OpFunctionEnd 74%unsizedInParameterC_ff_testArr = OpFunction %float None %24 75 %34 = OpLabel 76 %35 = OpAccessChain %_ptr_Uniform_float %11 %int_0 %int_0 77 %36 = OpLoad %float %35 78 OpReturnValue %36 79 OpFunctionEnd 80%unsizedInParameterD_fS_testArrStruct = OpFunction %float None %24 81 %37 = OpLabel 82 %38 = OpAccessChain %_ptr_Uniform_float %16 %int_0 %int_0 %int_0 83 %39 = OpLoad %float %38 84 OpReturnValue %39 85 OpFunctionEnd 86%unsizedInParameterE_ff_testArr = OpFunction %float None %24 87 %40 = OpLabel 88 OpReturnValue %float_0 89 OpFunctionEnd 90%unsizedInParameterF_fS_testArrStruct = OpFunction %float None %24 91 %42 = OpLabel 92 OpReturnValue %float_0 93 OpFunctionEnd 94%getColor_h4f_testArr = OpFunction %v4float None %43 95 %44 = OpLabel 96 %45 = OpAccessChain %_ptr_Uniform_float %11 %int_0 %int_0 97 %46 = OpLoad %float %45 98 %48 = OpAccessChain %_ptr_Uniform_float %11 %int_0 %int_1 99 %49 = OpLoad %float %48 100 %51 = OpAccessChain %_ptr_Uniform_float %11 %int_0 %int_2 101 %52 = OpLoad %float %51 102 %54 = OpAccessChain %_ptr_Uniform_float %11 %int_0 %int_3 103 %55 = OpLoad %float %54 104 %56 = OpCompositeConstruct %v4float %46 %49 %52 %55 105 OpReturnValue %56 106 OpFunctionEnd 107%getColor_helper_h4f_testArr = OpFunction %v4float None %43 108 %57 = OpLabel 109 %58 = OpFunctionCall %v4float %getColor_h4f_testArr 110 OpReturnValue %58 111 OpFunctionEnd 112 %main = OpFunction %void None %60 113 %61 = OpLabel 114 %62 = OpFunctionCall %v4float %getColor_helper_h4f_testArr 115 OpStore %sk_FragColor %62 116 %63 = OpFunctionCall %float %unsizedInParameterA_ff_testArr 117 %64 = OpFunctionCall %float %unsizedInParameterB_fS_testArrStruct 118 %65 = OpFunctionCall %float %unsizedInParameterC_ff_testArr 119 %66 = OpFunctionCall %float %unsizedInParameterD_fS_testArrStruct 120 %67 = OpFunctionCall %float %unsizedInParameterE_ff_testArr 121 %68 = OpFunctionCall %float %unsizedInParameterF_fS_testArrStruct 122 OpReturn 123 OpFunctionEnd 124