1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 7 4; Bound: 79 5; Schema: 0 6 OpCapability Shader 7 %1 = OpExtInstImport "GLSL.std.450" 8 OpMemoryModel Logical GLSL450 9 OpEntryPoint Vertex %VS "main" %PosL_1 %instanceID_1 %_entryPointOutput_Position %_entryPointOutput_Color 10 OpSource HLSL 500 11 OpName %VS "VS" 12 OpName %V2F "V2F" 13 OpMemberName %V2F 0 "Position" 14 OpMemberName %V2F 1 "Color" 15 OpName %_VS_vf3_u1_ "@VS(vf3;u1;" 16 OpName %PosL "PosL" 17 OpName %instanceID "instanceID" 18 OpName %InstanceData "InstanceData" 19 OpMemberName %InstanceData 0 "MATRIX_MVP" 20 OpMemberName %InstanceData 1 "Color" 21 OpName %instData "instData" 22 OpName %InstanceData_0 "InstanceData" 23 OpMemberName %InstanceData_0 0 "MATRIX_MVP" 24 OpMemberName %InstanceData_0 1 "Color" 25 OpName %gInstanceData "gInstanceData" 26 OpMemberName %gInstanceData 0 "@data" 27 OpName %gInstanceData_0 "gInstanceData" 28 OpName %v2f "v2f" 29 OpName %PosL_0 "PosL" 30 OpName %PosL_1 "PosL" 31 OpName %instanceID_0 "instanceID" 32 OpName %instanceID_1 "instanceID" 33 OpName %flattenTemp "flattenTemp" 34 OpName %param "param" 35 OpName %param_0 "param" 36 OpName %_entryPointOutput_Position "@entryPointOutput.Position" 37 OpName %_entryPointOutput_Color "@entryPointOutput.Color" 38 OpMemberDecorate %InstanceData_0 0 RowMajor 39 OpMemberDecorate %InstanceData_0 0 Offset 0 40 OpMemberDecorate %InstanceData_0 0 MatrixStride 16 41 OpMemberDecorate %InstanceData_0 1 Offset 64 42 OpDecorate %_runtimearr_InstanceData_0 ArrayStride 80 43 OpMemberDecorate %gInstanceData 0 NonWritable 44 OpMemberDecorate %gInstanceData 0 Offset 0 45 OpDecorate %gInstanceData BufferBlock 46 OpDecorate %gInstanceData_0 DescriptorSet 1 47 OpDecorate %gInstanceData_0 Binding 0 48 OpDecorate %PosL_1 Location 0 49 OpDecorate %instanceID_1 BuiltIn InstanceIndex 50 OpDecorate %_entryPointOutput_Position BuiltIn Position 51 OpDecorate %_entryPointOutput_Color Location 0 52 %void = OpTypeVoid 53 %3 = OpTypeFunction %void 54 %float = OpTypeFloat 32 55 %v3float = OpTypeVector %float 3 56%_ptr_Function_v3float = OpTypePointer Function %v3float 57 %uint = OpTypeInt 32 0 58%_ptr_Function_uint = OpTypePointer Function %uint 59 %v4float = OpTypeVector %float 4 60 %V2F = OpTypeStruct %v4float %v4float 61 %13 = OpTypeFunction %V2F %_ptr_Function_v3float %_ptr_Function_uint 62%mat4v4float = OpTypeMatrix %v4float 4 63%InstanceData = OpTypeStruct %mat4v4float %v4float 64%_ptr_Function_InstanceData = OpTypePointer Function %InstanceData 65%InstanceData_0 = OpTypeStruct %mat4v4float %v4float 66%_runtimearr_InstanceData_0 = OpTypeRuntimeArray %InstanceData_0 67%gInstanceData = OpTypeStruct %_runtimearr_InstanceData_0 68%_ptr_Uniform_gInstanceData = OpTypePointer Uniform %gInstanceData 69%gInstanceData_0 = OpVariable %_ptr_Uniform_gInstanceData Uniform 70 %int = OpTypeInt 32 1 71 %int_0 = OpConstant %int 0 72%_ptr_Uniform_InstanceData_0 = OpTypePointer Uniform %InstanceData_0 73%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float 74 %int_1 = OpConstant %int 1 75%_ptr_Function_v4float = OpTypePointer Function %v4float 76%_ptr_Function_V2F = OpTypePointer Function %V2F 77 %float_1 = OpConstant %float 1 78%_ptr_Input_v3float = OpTypePointer Input %v3float 79 %PosL_1 = OpVariable %_ptr_Input_v3float Input 80%_ptr_Input_uint = OpTypePointer Input %uint 81%instanceID_1 = OpVariable %_ptr_Input_uint Input 82%_ptr_Output_v4float = OpTypePointer Output %v4float 83%_entryPointOutput_Position = OpVariable %_ptr_Output_v4float Output 84%_entryPointOutput_Color = OpVariable %_ptr_Output_v4float Output 85 %VS = OpFunction %void None %3 86 %5 = OpLabel 87 %PosL_0 = OpVariable %_ptr_Function_v3float Function 88%instanceID_0 = OpVariable %_ptr_Function_uint Function 89%flattenTemp = OpVariable %_ptr_Function_V2F Function 90 %param = OpVariable %_ptr_Function_v3float Function 91 %param_0 = OpVariable %_ptr_Function_uint Function 92 %61 = OpLoad %v3float %PosL_1 93 OpStore %PosL_0 %61 94 %65 = OpLoad %uint %instanceID_1 95 OpStore %instanceID_0 %65 96 %68 = OpLoad %v3float %PosL_0 97 OpStore %param %68 98 %70 = OpLoad %uint %instanceID_0 99 OpStore %param_0 %70 100 %71 = OpFunctionCall %V2F %_VS_vf3_u1_ %param %param_0 101 OpStore %flattenTemp %71 102 %74 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 103 %75 = OpLoad %v4float %74 104 OpStore %_entryPointOutput_Position %75 105 %77 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_1 106 %78 = OpLoad %v4float %77 107 OpStore %_entryPointOutput_Color %78 108 OpReturn 109 OpFunctionEnd 110%_VS_vf3_u1_ = OpFunction %V2F None %13 111 %PosL = OpFunctionParameter %_ptr_Function_v3float 112 %instanceID = OpFunctionParameter %_ptr_Function_uint 113 %17 = OpLabel 114 %instData = OpVariable %_ptr_Function_InstanceData Function 115 %v2f = OpVariable %_ptr_Function_V2F Function 116 %29 = OpLoad %uint %instanceID 117 %31 = OpAccessChain %_ptr_Uniform_InstanceData_0 %gInstanceData_0 %int_0 %29 118 %32 = OpLoad %InstanceData_0 %31 119 %33 = OpCompositeExtract %mat4v4float %32 0 120 %35 = OpAccessChain %_ptr_Function_mat4v4float %instData %int_0 121 OpStore %35 %33 122 %36 = OpCompositeExtract %v4float %32 1 123 %39 = OpAccessChain %_ptr_Function_v4float %instData %int_1 124 OpStore %39 %36 125 %42 = OpAccessChain %_ptr_Function_mat4v4float %instData %int_0 126 %43 = OpLoad %mat4v4float %42 127 %44 = OpLoad %v3float %PosL 128 %46 = OpCompositeExtract %float %44 0 129 %47 = OpCompositeExtract %float %44 1 130 %48 = OpCompositeExtract %float %44 2 131 %49 = OpCompositeConstruct %v4float %46 %47 %48 %float_1 132 %50 = OpMatrixTimesVector %v4float %43 %49 133 %51 = OpAccessChain %_ptr_Function_v4float %v2f %int_0 134 OpStore %51 %50 135 %52 = OpAccessChain %_ptr_Function_v4float %instData %int_1 136 %53 = OpLoad %v4float %52 137 %54 = OpAccessChain %_ptr_Function_v4float %v2f %int_1 138 OpStore %54 %53 139 %55 = OpLoad %V2F %v2f 140 OpReturnValue %55 141 OpFunctionEnd 142