; SPIR-V ; Version: 1.0 ; Generator: rspirv ; Bound: 93 OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %36 "vs_main" %29 %32 %34 OpEntryPoint Fragment %85 "fs_main" %78 %81 %84 OpExecutionMode %85 OriginUpperLeft OpMemberDecorate %12 0 Offset 0 OpMemberDecorate %12 1 Offset 16 OpDecorate %14 Block OpMemberDecorate %14 0 Offset 0 OpMemberDecorate %14 0 ColMajor OpMemberDecorate %14 0 MatrixStride 16 OpMemberDecorate %14 1 Offset 64 OpMemberDecorate %14 1 ColMajor OpMemberDecorate %14 1 MatrixStride 16 OpDecorate %19 DescriptorSet 0 OpDecorate %19 Binding 0 OpDecorate %21 DescriptorSet 0 OpDecorate %21 Binding 1 OpDecorate %23 DescriptorSet 0 OpDecorate %23 Binding 2 OpDecorate %29 BuiltIn VertexIndex OpDecorate %32 BuiltIn Position OpDecorate %34 Location 0 OpDecorate %78 BuiltIn FragCoord OpDecorate %81 Location 0 OpDecorate %84 Location 0 %2 = OpTypeVoid %4 = OpTypeInt 32 1 %3 = OpConstant %4 2 %5 = OpConstant %4 1 %7 = OpTypeFloat 32 %6 = OpConstant %7 4.0 %8 = OpConstant %7 1.0 %9 = OpConstant %7 0.0 %10 = OpTypeVector %7 4 %11 = OpTypeVector %7 3 %12 = OpTypeStruct %10 %11 %13 = OpTypeMatrix %10 4 %14 = OpTypeStruct %13 %13 %15 = OpTypeInt 32 0 %16 = OpTypeMatrix %11 3 %17 = OpTypeImage %7 Cube 0 0 0 1 Unknown %18 = OpTypeSampler %20 = OpTypePointer Uniform %14 %19 = OpVariable %20 Uniform %22 = OpTypePointer UniformConstant %17 %21 = OpVariable %22 UniformConstant %24 = OpTypePointer UniformConstant %18 %23 = OpVariable %24 UniformConstant %26 = OpTypePointer Function %4 %30 = OpTypePointer Input %15 %29 = OpVariable %30 Input %33 = OpTypePointer Output %10 %32 = OpVariable %33 Output %35 = OpTypePointer Output %11 %34 = OpVariable %35 Output %37 = OpTypeFunction %2 %52 = OpTypePointer Uniform %13 %67 = OpConstant %4 0 %79 = OpTypePointer Input %10 %78 = OpVariable %79 Input %82 = OpTypePointer Input %11 %81 = OpVariable %82 Input %84 = OpVariable %33 Output %90 = OpTypeSampledImage %17 %36 = OpFunction %2 None %37 %28 = OpLabel %25 = OpVariable %26 Function %27 = OpVariable %26 Function %31 = OpLoad %15 %29 OpBranch %38 %38 = OpLabel %39 = OpBitcast %4 %31 %40 = OpSDiv %4 %39 %3 OpStore %25 %40 %41 = OpBitcast %4 %31 %42 = OpBitwiseAnd %4 %41 %5 OpStore %27 %42 %43 = OpLoad %4 %25 %44 = OpConvertSToF %7 %43 %45 = OpFMul %7 %44 %6 %46 = OpFSub %7 %45 %8 %47 = OpLoad %4 %27 %48 = OpConvertSToF %7 %47 %49 = OpFMul %7 %48 %6 %50 = OpFSub %7 %49 %8 %51 = OpCompositeConstruct %10 %46 %50 %9 %8 %53 = OpAccessChain %52 %19 %5 %54 = OpLoad %13 %53 %55 = OpCompositeExtract %10 %54 0 %56 = OpVectorShuffle %11 %55 %55 0 1 2 %57 = OpAccessChain %52 %19 %5 %58 = OpLoad %13 %57 %59 = OpCompositeExtract %10 %58 1 %60 = OpVectorShuffle %11 %59 %59 0 1 2 %61 = OpAccessChain %52 %19 %5 %62 = OpLoad %13 %61 %63 = OpCompositeExtract %10 %62 2 %64 = OpVectorShuffle %11 %63 %63 0 1 2 %65 = OpCompositeConstruct %16 %56 %60 %64 %66 = OpTranspose %16 %65 %68 = OpAccessChain %52 %19 %67 %69 = OpLoad %13 %68 %70 = OpMatrixTimesVector %10 %69 %51 %71 = OpVectorShuffle %11 %70 %70 0 1 2 %72 = OpMatrixTimesVector %11 %66 %71 %73 = OpCompositeConstruct %12 %51 %72 %74 = OpCompositeExtract %10 %73 0 OpStore %32 %74 %75 = OpCompositeExtract %11 %73 1 OpStore %34 %75 OpReturn OpFunctionEnd %85 = OpFunction %2 None %37 %76 = OpLabel %80 = OpLoad %10 %78 %83 = OpLoad %11 %81 %77 = OpCompositeConstruct %12 %80 %83 %86 = OpLoad %17 %21 %87 = OpLoad %18 %23 OpBranch %88 %88 = OpLabel %89 = OpCompositeExtract %11 %77 1 %91 = OpSampledImage %90 %86 %87 %92 = OpImageSampleImplicitLod %10 %91 %89 OpStore %84 %92 OpReturn OpFunctionEnd