1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5 OpExecutionMode %_entrypoint_v OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "testMatrix4x4" 9 OpMemberName %_UniformBuffer 1 "testValues" 10 OpName %_entrypoint_v "_entrypoint_v" 11 OpName %main "main" 12 OpName %m44 "m44" 13 OpName %v4 "v4" 14 OpDecorate %sk_FragColor RelaxedPrecision 15 OpDecorate %sk_FragColor Location 0 16 OpDecorate %sk_FragColor Index 0 17 OpMemberDecorate %_UniformBuffer 0 Offset 0 18 OpMemberDecorate %_UniformBuffer 0 ColMajor 19 OpMemberDecorate %_UniformBuffer 0 MatrixStride 16 20 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 21 OpMemberDecorate %_UniformBuffer 1 Offset 64 22 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 23 OpDecorate %_UniformBuffer Block 24 OpDecorate %7 Binding 0 25 OpDecorate %7 DescriptorSet 0 26 OpDecorate %m44 RelaxedPrecision 27 OpDecorate %v4 RelaxedPrecision 28 OpDecorate %33 RelaxedPrecision 29 OpDecorate %34 RelaxedPrecision 30 OpDecorate %35 RelaxedPrecision 31 OpDecorate %36 RelaxedPrecision 32 OpDecorate %37 RelaxedPrecision 33 OpDecorate %38 RelaxedPrecision 34 OpDecorate %39 RelaxedPrecision 35 OpDecorate %44 RelaxedPrecision 36 OpDecorate %48 RelaxedPrecision 37 OpDecorate %49 RelaxedPrecision 38 OpDecorate %50 RelaxedPrecision 39 OpDecorate %51 RelaxedPrecision 40 OpDecorate %52 RelaxedPrecision 41 OpDecorate %53 RelaxedPrecision 42 OpDecorate %54 RelaxedPrecision 43 OpDecorate %55 RelaxedPrecision 44 OpDecorate %56 RelaxedPrecision 45 OpDecorate %57 RelaxedPrecision 46 OpDecorate %58 RelaxedPrecision 47 OpDecorate %59 RelaxedPrecision 48 OpDecorate %60 RelaxedPrecision 49 OpDecorate %61 RelaxedPrecision 50 OpDecorate %62 RelaxedPrecision 51 OpDecorate %63 RelaxedPrecision 52 OpDecorate %64 RelaxedPrecision 53 %float = OpTypeFloat 32 54 %v4float = OpTypeVector %float 4 55%_ptr_Output_v4float = OpTypePointer Output %v4float 56%sk_FragColor = OpVariable %_ptr_Output_v4float Output 57%mat4v4float = OpTypeMatrix %v4float 4 58%_UniformBuffer = OpTypeStruct %mat4v4float %v4float 59%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 60 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 61 %void = OpTypeVoid 62 %13 = OpTypeFunction %void 63 %16 = OpTypeFunction %v4float 64%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float 65 %float_123 = OpConstant %float 123 66 %float_0 = OpConstant %float 0 67 %22 = OpConstantComposite %v4float %float_123 %float_0 %float_0 %float_0 68 %23 = OpConstantComposite %v4float %float_0 %float_123 %float_0 %float_0 69 %24 = OpConstantComposite %v4float %float_0 %float_0 %float_123 %float_0 70 %25 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_123 71 %26 = OpConstantComposite %mat4v4float %22 %23 %24 %25 72%_ptr_Function_v4float = OpTypePointer Function %v4float 73 %float_1 = OpConstant %float 1 74 %float_2 = OpConstant %float 2 75 %float_3 = OpConstant %float 3 76 %32 = OpConstantComposite %v4float %float_0 %float_1 %float_2 %float_3 77%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float 78 %int = OpTypeInt 32 1 79 %int_0 = OpConstant %int 0 80%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 81 %int_1 = OpConstant %int 1 82%_entrypoint_v = OpFunction %void None %13 83 %14 = OpLabel 84 %15 = OpFunctionCall %v4float %main 85 OpStore %sk_FragColor %15 86 OpReturn 87 OpFunctionEnd 88 %main = OpFunction %v4float None %16 89 %17 = OpLabel 90 %m44 = OpVariable %_ptr_Function_mat4v4float Function 91 %v4 = OpVariable %_ptr_Function_v4float Function 92 OpStore %m44 %26 93 OpStore %v4 %32 94 %33 = OpVectorTimesScalar %v4float %22 %float_0 95 %34 = OpVectorTimesScalar %v4float %23 %float_1 96 %35 = OpFAdd %v4float %33 %34 97 %36 = OpVectorTimesScalar %v4float %24 %float_2 98 %37 = OpFAdd %v4float %35 %36 99 %38 = OpVectorTimesScalar %v4float %25 %float_3 100 %39 = OpFAdd %v4float %37 %38 101 %40 = OpAccessChain %_ptr_Uniform_mat4v4float %7 %int_0 102 %44 = OpLoad %mat4v4float %40 103 %45 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 104 %48 = OpLoad %v4float %45 105 %49 = OpCompositeExtract %v4float %44 0 106 %50 = OpCompositeExtract %float %48 0 107 %51 = OpVectorTimesScalar %v4float %49 %50 108 %52 = OpCompositeExtract %v4float %44 1 109 %53 = OpCompositeExtract %float %48 1 110 %54 = OpVectorTimesScalar %v4float %52 %53 111 %55 = OpFAdd %v4float %51 %54 112 %56 = OpCompositeExtract %v4float %44 2 113 %57 = OpCompositeExtract %float %48 2 114 %58 = OpVectorTimesScalar %v4float %56 %57 115 %59 = OpFAdd %v4float %55 %58 116 %60 = OpCompositeExtract %v4float %44 3 117 %61 = OpCompositeExtract %float %48 3 118 %62 = OpVectorTimesScalar %v4float %60 %61 119 %63 = OpFAdd %v4float %59 %62 120 %64 = OpFAdd %v4float %39 %63 121 OpReturnValue %64 122 OpFunctionEnd 123