1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 7 4; Bound: 62 5; Schema: 0 6 OpCapability Shader 7 %1 = OpExtInstImport "GLSL.std.450" 8 OpMemoryModel Logical GLSL450 9 OpEntryPoint Vertex %main "main" %_ %gl_VertexIndex %a_position 10 OpSource GLSL 450 11 OpName %main "main" 12 OpName %gl_PerVertex "gl_PerVertex" 13 OpMemberName %gl_PerVertex 0 "gl_Position" 14 OpMemberName %gl_PerVertex 1 "gl_PointSize" 15 OpMemberName %gl_PerVertex 2 "gl_ClipDistance" 16 OpMemberName %gl_PerVertex 3 "gl_CullDistance" 17 OpName %_ "" 18 OpName %Struct "Struct" 19 OpMemberName %Struct 0 "flags" 20 OpName %defaultUniformsVS "defaultUniformsVS" 21 OpMemberName %defaultUniformsVS 0 "flags" 22 OpMemberName %defaultUniformsVS 1 "uquad" 23 OpMemberName %defaultUniformsVS 2 "umatrix" 24 OpName %__0 "" 25 OpName %gl_VertexIndex "gl_VertexIndex" 26 OpName %a_position "a_position" 27 OpMemberDecorate %gl_PerVertex 0 BuiltIn Position 28 OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize 29 OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance 30 OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance 31 OpDecorate %gl_PerVertex Block 32 OpDecorate %_arr_uint_uint_1 ArrayStride 16 33 OpMemberDecorate %Struct 0 Offset 0 34 OpDecorate %_arr_v2float_uint_4 ArrayStride 16 35 OpMemberDecorate %defaultUniformsVS 0 Offset 0 36 OpMemberDecorate %defaultUniformsVS 1 Offset 16 37 OpMemberDecorate %defaultUniformsVS 2 ColMajor 38 OpMemberDecorate %defaultUniformsVS 2 Offset 80 39 OpMemberDecorate %defaultUniformsVS 2 MatrixStride 16 40 OpDecorate %defaultUniformsVS Block 41 OpDecorate %__0 DescriptorSet 0 42 OpDecorate %__0 Binding 0 43 OpDecorate %gl_VertexIndex BuiltIn VertexIndex 44 OpDecorate %a_position Location 0 45 %void = OpTypeVoid 46 %3 = OpTypeFunction %void 47 %float = OpTypeFloat 32 48 %v4float = OpTypeVector %float 4 49 %uint = OpTypeInt 32 0 50 %uint_1 = OpConstant %uint 1 51%_arr_float_uint_1 = OpTypeArray %float %uint_1 52%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 53%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex 54 %_ = OpVariable %_ptr_Output_gl_PerVertex Output 55 %int = OpTypeInt 32 1 56 %int_0 = OpConstant %int 0 57%_arr_uint_uint_1 = OpTypeArray %uint %uint_1 58 %Struct = OpTypeStruct %_arr_uint_uint_1 59 %v2float = OpTypeVector %float 2 60 %uint_4 = OpConstant %uint 4 61%_arr_v2float_uint_4 = OpTypeArray %v2float %uint_4 62%mat4v4float = OpTypeMatrix %v4float 4 63%defaultUniformsVS = OpTypeStruct %Struct %_arr_v2float_uint_4 %mat4v4float 64%_ptr_Uniform_defaultUniformsVS = OpTypePointer Uniform %defaultUniformsVS 65 %__0 = OpVariable %_ptr_Uniform_defaultUniformsVS Uniform 66 %int_2 = OpConstant %int 2 67%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float 68 %int_1 = OpConstant %int 1 69%_ptr_Input_int = OpTypePointer Input %int 70%gl_VertexIndex = OpVariable %_ptr_Input_int Input 71%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float 72%_ptr_Input_v4float = OpTypePointer Input %v4float 73 %a_position = OpVariable %_ptr_Input_v4float Input 74 %uint_2 = OpConstant %uint 2 75%_ptr_Input_float = OpTypePointer Input %float 76 %uint_3 = OpConstant %uint 3 77%_ptr_Output_v4float = OpTypePointer Output %v4float 78%_ptr_Uniform_uint = OpTypePointer Uniform %uint 79 %bool = OpTypeBool 80 %uint_0 = OpConstant %uint 0 81 %float_0 = OpConstant %float 0 82%_ptr_Output_float = OpTypePointer Output %float 83 %main = OpFunction %void None %3 84 %5 = OpLabel 85 %27 = OpAccessChain %_ptr_Uniform_mat4v4float %__0 %int_2 86 %28 = OpLoad %mat4v4float %27 87 %32 = OpLoad %int %gl_VertexIndex 88 %34 = OpAccessChain %_ptr_Uniform_v2float %__0 %int_1 %32 89 %35 = OpLoad %v2float %34 90 %40 = OpAccessChain %_ptr_Input_float %a_position %uint_2 91 %41 = OpLoad %float %40 92 %43 = OpAccessChain %_ptr_Input_float %a_position %uint_3 93 %44 = OpLoad %float %43 94 %45 = OpCompositeExtract %float %35 0 95 %46 = OpCompositeExtract %float %35 1 96 %47 = OpCompositeConstruct %v4float %45 %46 %41 %44 97 %48 = OpMatrixTimesVector %v4float %28 %47 98 %50 = OpAccessChain %_ptr_Output_v4float %_ %int_0 99 OpStore %50 %48 100 %52 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %int_0 %int_0 101 %53 = OpLoad %uint %52 102 %56 = OpINotEqual %bool %53 %uint_0 103 OpSelectionMerge %58 None 104 OpBranchConditional %56 %57 %58 105 %57 = OpLabel 106 %61 = OpAccessChain %_ptr_Output_float %_ %int_0 %uint_2 107 OpStore %61 %float_0 108 OpBranch %58 109 %58 = OpLabel 110 OpReturn 111 OpFunctionEnd 112