; SPIR-V ; Version: 1.0 ; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 91 ; Schema: 0 OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %main "main" %position %__0 %vUV %uv %normal OpSource GLSL 450 OpName %main "main" OpName %q "q" OpName %position "position" OpName %p "p" OpName %LeftOver "LeftOver" OpMemberName %LeftOver 0 "worldViewProjection" OpMemberName %LeftOver 1 "time" OpMemberName %LeftOver 2 "test2" OpMemberName %LeftOver 3 "test" OpName %_ "" OpName %gl_PerVertex "gl_PerVertex" OpMemberName %gl_PerVertex 0 "gl_Position" OpMemberName %gl_PerVertex 1 "gl_PointSize" OpMemberName %gl_PerVertex 2 "gl_ClipDistance" OpMemberName %gl_PerVertex 3 "gl_CullDistance" OpName %__0 "" OpName %vUV "vUV" OpName %uv "uv" OpName %normal "normal" OpDecorate %position Location 0 OpDecorate %_arr_mat4v4float_uint_2 ArrayStride 64 OpDecorate %_arr_float_uint_4 ArrayStride 16 OpMemberDecorate %LeftOver 0 ColMajor OpMemberDecorate %LeftOver 0 Offset 0 OpMemberDecorate %LeftOver 0 MatrixStride 16 OpMemberDecorate %LeftOver 1 Offset 64 OpMemberDecorate %LeftOver 2 ColMajor OpMemberDecorate %LeftOver 2 Offset 80 OpMemberDecorate %LeftOver 2 MatrixStride 16 OpMemberDecorate %LeftOver 3 Offset 208 OpDecorate %LeftOver Block OpDecorate %_ DescriptorSet 2 OpDecorate %_ Binding 2 OpMemberDecorate %gl_PerVertex 0 BuiltIn Position OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance OpDecorate %gl_PerVertex Block OpDecorate %vUV Location 0 OpDecorate %uv Location 2 OpDecorate %normal Location 1 %void = OpTypeVoid %3 = OpTypeFunction %void %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Function_v4float = OpTypePointer Function %v4float %v3float = OpTypeVector %float 3 %_ptr_Input_v3float = OpTypePointer Input %v3float %position = OpVariable %_ptr_Input_v3float Input %float_1 = OpConstant %float 1 %_ptr_Function_v3float = OpTypePointer Function %v3float %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 %_ptr_Function_float = OpTypePointer Function %float %mat4v4float = OpTypeMatrix %v4float 4 %uint_2 = OpConstant %uint 2 %_arr_mat4v4float_uint_2 = OpTypeArray %mat4v4float %uint_2 %uint_4 = OpConstant %uint 4 %_arr_float_uint_4 = OpTypeArray %float %uint_4 %LeftOver = OpTypeStruct %mat4v4float %float %_arr_mat4v4float_uint_2 %_arr_float_uint_4 %_ptr_Uniform_LeftOver = OpTypePointer Uniform %LeftOver %_ = OpVariable %_ptr_Uniform_LeftOver Uniform %int = OpTypeInt 32 1 %int_3 = OpConstant %int 3 %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %uint_1 = OpConstant %uint 1 %_ptr_Input_float = OpTypePointer Input %float %int_1 = OpConstant %int 1 %float_4 = OpConstant %float 4 %_arr_float_uint_1 = OpTypeArray %float %uint_1 %gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 %_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex %__0 = OpVariable %_ptr_Output_gl_PerVertex Output %_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float %_ptr_Output_v4float = OpTypePointer Output %v4float %v2float = OpTypeVector %float 2 %_ptr_Output_v2float = OpTypePointer Output %v2float %vUV = OpVariable %_ptr_Output_v2float Output %_ptr_Input_v2float = OpTypePointer Input %v2float %uv = OpVariable %_ptr_Input_v2float Input %float_n1 = OpConstant %float -1 %_ptr_Output_float = OpTypePointer Output %float %normal = OpVariable %_ptr_Input_v3float Input %main = OpFunction %void None %3 %5 = OpLabel %q = OpVariable %_ptr_Function_v4float Function %p = OpVariable %_ptr_Function_v3float Function %13 = OpLoad %v3float %position %15 = OpCompositeExtract %float %13 0 %16 = OpCompositeExtract %float %13 1 %17 = OpCompositeExtract %float %13 2 %18 = OpCompositeConstruct %v4float %15 %16 %17 %float_1 OpStore %q %18 %21 = OpLoad %v4float %q %22 = OpVectorShuffle %v3float %21 %21 0 1 2 OpStore %p %22 %26 = OpAccessChain %_ptr_Function_float %p %uint_0 %27 = OpLoad %float %26 %40 = OpAccessChain %_ptr_Uniform_float %_ %int_3 %int_0 %41 = OpLoad %float %40 %44 = OpAccessChain %_ptr_Input_float %position %uint_1 %45 = OpLoad %float %44 %46 = OpFMul %float %41 %45 %48 = OpAccessChain %_ptr_Uniform_float %_ %int_1 %49 = OpLoad %float %48 %50 = OpFAdd %float %46 %49 %51 = OpExtInst %float %1 Sin %50 %52 = OpFAdd %float %27 %51 %53 = OpAccessChain %_ptr_Function_float %p %uint_0 OpStore %53 %52 %54 = OpAccessChain %_ptr_Function_float %p %uint_1 %55 = OpLoad %float %54 %56 = OpAccessChain %_ptr_Uniform_float %_ %int_1 %57 = OpLoad %float %56 %59 = OpFAdd %float %57 %float_4 %60 = OpExtInst %float %1 Sin %59 %61 = OpFAdd %float %55 %60 %62 = OpAccessChain %_ptr_Function_float %p %uint_1 OpStore %62 %61 %68 = OpAccessChain %_ptr_Uniform_mat4v4float %_ %int_0 %69 = OpLoad %mat4v4float %68 %70 = OpLoad %v3float %p %71 = OpCompositeExtract %float %70 0 %72 = OpCompositeExtract %float %70 1 %73 = OpCompositeExtract %float %70 2 %74 = OpCompositeConstruct %v4float %71 %72 %73 %float_1 %75 = OpMatrixTimesVector %v4float %69 %74 %77 = OpAccessChain %_ptr_Output_v4float %__0 %int_0 OpStore %77 %75 %83 = OpLoad %v2float %uv OpStore %vUV %83 %86 = OpAccessChain %_ptr_Output_float %__0 %int_0 %uint_1 %87 = OpLoad %float %86 %88 = OpFMul %float %87 %float_n1 %89 = OpAccessChain %_ptr_Output_float %__0 %int_0 %uint_1 OpStore %89 %88 OpReturn OpFunctionEnd