; SPIR-V ; Version: 1.0 ; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 189 ; Schema: 0 OpCapability Shader OpCapability ImageQuery %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %c2D %c4D %c3D %ic3D %ic1D %c1D %ic4D %s2 %sc %sf OpExecutionMode %main OriginUpperLeft OpSource ESSL 310 OpName %main "main" OpName %v "v" OpName %s2D "s2D" OpName %c2D "c2D" OpName %s3D "s3D" OpName %c4D "c4D" OpName %s2DArray "s2DArray" OpName %c3D "c3D" OpName %ic3D "ic3D" OpName %ic1D "ic1D" OpName %f "f" OpName %s2DShadow "s2DShadow" OpName %c1D "c1D" OpName %sCube "sCube" OpName %s2DArrayShadow "s2DArrayShadow" OpName %iv "iv" OpName %is2D "is2D" OpName %is3D "is3D" OpName %isCube "isCube" OpName %is2DArray "is2DArray" OpName %sCubeShadow "sCubeShadow" OpName %us2D "us2D" OpName %us3D "us3D" OpName %usCube "usCube" OpName %us2DArray "us2DArray" OpName %ic4D "ic4D" OpName %S2 "S2" OpMemberName %S2 0 "c" OpMemberName %S2 1 "f" OpName %s2 "s2" OpName %sc "sc" OpName %sf "sf" OpName %arrayedSampler "arrayedSampler" OpDecorate %v RelaxedPrecision OpDecorate %s2D RelaxedPrecision OpDecorate %s2D DescriptorSet 0 OpDecorate %s2D Binding 1 OpDecorate %14 RelaxedPrecision OpDecorate %c2D RelaxedPrecision OpDecorate %c2D Location 5 OpDecorate %18 RelaxedPrecision OpDecorate %19 RelaxedPrecision OpDecorate %s3D RelaxedPrecision OpDecorate %s3D DescriptorSet 0 OpDecorate %s3D Binding 2 OpDecorate %24 RelaxedPrecision OpDecorate %c4D RelaxedPrecision OpDecorate %c4D Location 7 OpDecorate %27 RelaxedPrecision OpDecorate %28 RelaxedPrecision OpDecorate %s2DArray RelaxedPrecision OpDecorate %s2DArray DescriptorSet 0 OpDecorate %s2DArray Binding 6 OpDecorate %33 RelaxedPrecision OpDecorate %c3D RelaxedPrecision OpDecorate %c3D Location 6 OpDecorate %37 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %ic3D RelaxedPrecision OpDecorate %ic3D Flat OpDecorate %ic3D Location 2 OpDecorate %45 RelaxedPrecision OpDecorate %ic1D RelaxedPrecision OpDecorate %ic1D Flat OpDecorate %ic1D Location 1 OpDecorate %48 RelaxedPrecision OpDecorate %50 RelaxedPrecision OpDecorate %f RelaxedPrecision OpDecorate %s2DShadow RelaxedPrecision OpDecorate %s2DShadow DescriptorSet 0 OpDecorate %s2DShadow Binding 5 OpDecorate %57 RelaxedPrecision OpDecorate %58 RelaxedPrecision OpDecorate %c1D RelaxedPrecision OpDecorate %c1D Location 4 OpDecorate %61 RelaxedPrecision OpDecorate %67 RelaxedPrecision OpDecorate %68 RelaxedPrecision OpDecorate %69 RelaxedPrecision OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %sCube RelaxedPrecision OpDecorate %sCube DescriptorSet 0 OpDecorate %sCube Binding 3 OpDecorate %76 RelaxedPrecision OpDecorate %77 RelaxedPrecision OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %s2DArrayShadow RelaxedPrecision OpDecorate %s2DArrayShadow DescriptorSet 0 OpDecorate %s2DArrayShadow Binding 7 OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %90 RelaxedPrecision OpDecorate %91 RelaxedPrecision OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision OpDecorate %94 RelaxedPrecision OpDecorate %95 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %iv RelaxedPrecision OpDecorate %is2D RelaxedPrecision OpDecorate %is2D DescriptorSet 0 OpDecorate %is2D Binding 8 OpDecorate %108 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %110 RelaxedPrecision OpDecorate %111 RelaxedPrecision OpDecorate %112 RelaxedPrecision OpDecorate %115 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision OpDecorate %120 RelaxedPrecision OpDecorate %121 RelaxedPrecision OpDecorate %122 RelaxedPrecision OpDecorate %123 RelaxedPrecision OpDecorate %124 RelaxedPrecision OpDecorate %is3D RelaxedPrecision OpDecorate %is3D DescriptorSet 0 OpDecorate %is3D Binding 9 OpDecorate %129 RelaxedPrecision OpDecorate %130 RelaxedPrecision OpDecorate %132 RelaxedPrecision OpDecorate %isCube RelaxedPrecision OpDecorate %isCube DescriptorSet 0 OpDecorate %isCube Binding 10 OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision OpDecorate %139 RelaxedPrecision OpDecorate %140 RelaxedPrecision OpDecorate %is2DArray RelaxedPrecision OpDecorate %is2DArray DescriptorSet 0 OpDecorate %is2DArray Binding 11 OpDecorate %145 RelaxedPrecision OpDecorate %146 RelaxedPrecision OpDecorate %147 RelaxedPrecision OpDecorate %149 RelaxedPrecision OpDecorate %sCubeShadow RelaxedPrecision OpDecorate %sCubeShadow DescriptorSet 0 OpDecorate %sCubeShadow Binding 4 OpDecorate %154 RelaxedPrecision OpDecorate %us2D RelaxedPrecision OpDecorate %us2D DescriptorSet 0 OpDecorate %us2D Binding 12 OpDecorate %us3D RelaxedPrecision OpDecorate %us3D DescriptorSet 0 OpDecorate %us3D Binding 13 OpDecorate %usCube RelaxedPrecision OpDecorate %usCube DescriptorSet 0 OpDecorate %usCube Binding 14 OpDecorate %us2DArray RelaxedPrecision OpDecorate %us2DArray DescriptorSet 0 OpDecorate %us2DArray Binding 15 OpDecorate %ic4D RelaxedPrecision OpDecorate %ic4D Flat OpDecorate %ic4D Location 3 OpDecorate %65 RelaxedPrecision OpMemberDecorate %S2 0 RelaxedPrecision OpMemberDecorate %S2 1 RelaxedPrecision OpDecorate %s2 Location 8 OpDecorate %sc RelaxedPrecision OpDecorate %sc Location 0 OpDecorate %sf RelaxedPrecision OpDecorate %sf Location 1 OpDecorate %arrayedSampler RelaxedPrecision OpDecorate %arrayedSampler DescriptorSet 0 OpDecorate %arrayedSampler Binding 0 %void = OpTypeVoid %3 = OpTypeFunction %void %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Function_v4float = OpTypePointer Function %v4float %10 = OpTypeImage %float 2D 0 0 0 1 Unknown %11 = OpTypeSampledImage %10 %_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 %s2D = OpVariable %_ptr_UniformConstant_11 UniformConstant %v2float = OpTypeVector %float 2 %_ptr_Input_v2float = OpTypePointer Input %v2float %c2D = OpVariable %_ptr_Input_v2float Input %20 = OpTypeImage %float 3D 0 0 0 1 Unknown %21 = OpTypeSampledImage %20 %_ptr_UniformConstant_21 = OpTypePointer UniformConstant %21 %s3D = OpVariable %_ptr_UniformConstant_21 UniformConstant %_ptr_Input_v4float = OpTypePointer Input %v4float %c4D = OpVariable %_ptr_Input_v4float Input %29 = OpTypeImage %float 2D 0 1 0 1 Unknown %30 = OpTypeSampledImage %29 %_ptr_UniformConstant_30 = OpTypePointer UniformConstant %30 %s2DArray = OpVariable %_ptr_UniformConstant_30 UniformConstant %v3float = OpTypeVector %float 3 %_ptr_Input_v3float = OpTypePointer Input %v3float %c3D = OpVariable %_ptr_Input_v3float Input %float_1_20000005 = OpConstant %float 1.20000005 %int = OpTypeInt 32 1 %v3int = OpTypeVector %int 3 %_ptr_Input_v3int = OpTypePointer Input %v3int %ic3D = OpVariable %_ptr_Input_v3int Input %_ptr_Input_int = OpTypePointer Input %int %ic1D = OpVariable %_ptr_Input_int Input %_ptr_Function_float = OpTypePointer Function %float %53 = OpTypeImage %float 2D 1 0 0 1 Unknown %54 = OpTypeSampledImage %53 %_ptr_UniformConstant_54 = OpTypePointer UniformConstant %54 %s2DShadow = OpVariable %_ptr_UniformConstant_54 UniformConstant %_ptr_Input_float = OpTypePointer Input %float %c1D = OpVariable %_ptr_Input_float Input %v2int = OpTypeVector %int 2 %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %65 = OpConstantComposite %v2int %int_2 %int_3 %72 = OpTypeImage %float Cube 0 0 0 1 Unknown %73 = OpTypeSampledImage %72 %_ptr_UniformConstant_73 = OpTypePointer UniformConstant %73 %sCube = OpVariable %_ptr_UniformConstant_73 UniformConstant %81 = OpTypeImage %float 2D 1 1 0 1 Unknown %82 = OpTypeSampledImage %81 %_ptr_UniformConstant_82 = OpTypePointer UniformConstant %82 %s2DArrayShadow = OpVariable %_ptr_UniformConstant_82 UniformConstant %v4int = OpTypeVector %int 4 %_ptr_Function_v4int = OpTypePointer Function %v4int %104 = OpTypeImage %int 2D 0 0 0 1 Unknown %105 = OpTypeSampledImage %104 %_ptr_UniformConstant_105 = OpTypePointer UniformConstant %105 %is2D = OpVariable %_ptr_UniformConstant_105 UniformConstant %125 = OpTypeImage %int 3D 0 0 0 1 Unknown %126 = OpTypeSampledImage %125 %_ptr_UniformConstant_126 = OpTypePointer UniformConstant %126 %is3D = OpVariable %_ptr_UniformConstant_126 UniformConstant %float_4_19999981 = OpConstant %float 4.19999981 %133 = OpTypeImage %int Cube 0 0 0 1 Unknown %134 = OpTypeSampledImage %133 %_ptr_UniformConstant_134 = OpTypePointer UniformConstant %134 %isCube = OpVariable %_ptr_UniformConstant_134 UniformConstant %141 = OpTypeImage %int 2D 0 1 0 1 Unknown %142 = OpTypeSampledImage %141 %_ptr_UniformConstant_142 = OpTypePointer UniformConstant %142 %is2DArray = OpVariable %_ptr_UniformConstant_142 UniformConstant %150 = OpTypeImage %float Cube 1 0 0 1 Unknown %151 = OpTypeSampledImage %150 %_ptr_UniformConstant_151 = OpTypePointer UniformConstant %151 %sCubeShadow = OpVariable %_ptr_UniformConstant_151 UniformConstant %uint = OpTypeInt 32 0 %160 = OpTypeImage %uint 2D 0 0 0 1 Unknown %161 = OpTypeSampledImage %160 %_ptr_UniformConstant_161 = OpTypePointer UniformConstant %161 %us2D = OpVariable %_ptr_UniformConstant_161 UniformConstant %164 = OpTypeImage %uint 3D 0 0 0 1 Unknown %165 = OpTypeSampledImage %164 %_ptr_UniformConstant_165 = OpTypePointer UniformConstant %165 %us3D = OpVariable %_ptr_UniformConstant_165 UniformConstant %168 = OpTypeImage %uint Cube 0 0 0 1 Unknown %169 = OpTypeSampledImage %168 %_ptr_UniformConstant_169 = OpTypePointer UniformConstant %169 %usCube = OpVariable %_ptr_UniformConstant_169 UniformConstant %172 = OpTypeImage %uint 2D 0 1 0 1 Unknown %173 = OpTypeSampledImage %172 %_ptr_UniformConstant_173 = OpTypePointer UniformConstant %173 %us2DArray = OpVariable %_ptr_UniformConstant_173 UniformConstant %_ptr_Input_v4int = OpTypePointer Input %v4int %ic4D = OpVariable %_ptr_Input_v4int Input %S2 = OpTypeStruct %v3float %float %_ptr_Input_S2 = OpTypePointer Input %S2 %s2 = OpVariable %_ptr_Input_S2 Input %_ptr_Output_v3float = OpTypePointer Output %v3float %sc = OpVariable %_ptr_Output_v3float Output %_ptr_Output_float = OpTypePointer Output %float %sf = OpVariable %_ptr_Output_float Output %uint_5 = OpConstant %uint 5 %_arr_11_uint_5 = OpTypeArray %11 %uint_5 %_ptr_UniformConstant__arr_11_uint_5 = OpTypePointer UniformConstant %_arr_11_uint_5 %arrayedSampler = OpVariable %_ptr_UniformConstant__arr_11_uint_5 UniformConstant %main = OpFunction %void None %3 %5 = OpLabel %v = OpVariable %_ptr_Function_v4float Function %f = OpVariable %_ptr_Function_float Function %iv = OpVariable %_ptr_Function_v4int Function %14 = OpLoad %11 %s2D %18 = OpLoad %v2float %c2D %19 = OpImageSampleImplicitLod %v4float %14 %18 OpStore %v %19 %24 = OpLoad %21 %s3D %27 = OpLoad %v4float %c4D %28 = OpImageSampleProjImplicitLod %v4float %24 %27 OpStore %v %28 %33 = OpLoad %30 %s2DArray %37 = OpLoad %v3float %c3D %39 = OpImageSampleExplicitLod %v4float %33 %37 Lod %float_1_20000005 OpStore %v %39 %40 = OpLoad %21 %s3D %45 = OpLoad %v3int %ic3D %48 = OpLoad %int %ic1D %49 = OpImage %20 %40 %50 = OpImageFetch %v4float %49 %45 Lod %48 OpStore %v %50 %57 = OpLoad %54 %s2DShadow %58 = OpLoad %v3float %c3D %61 = OpLoad %float %c1D %66 = OpCompositeExtract %float %58 2 %67 = OpImageSampleDrefExplicitLod %float %57 %58 %66 Lod|ConstOffset %61 %65 OpStore %f %67 %68 = OpLoad %11 %s2D %69 = OpLoad %v3float %c3D %70 = OpLoad %float %c1D %71 = OpImageSampleProjExplicitLod %v4float %68 %69 Lod|ConstOffset %70 %65 OpStore %v %71 %76 = OpLoad %73 %sCube %77 = OpLoad %v3float %c3D %78 = OpLoad %v3float %c3D %79 = OpLoad %v3float %c3D %80 = OpImageSampleExplicitLod %v4float %76 %77 Grad %78 %79 OpStore %v %80 %85 = OpLoad %82 %s2DArrayShadow %86 = OpLoad %v4float %c4D %87 = OpLoad %v2float %c2D %88 = OpLoad %v2float %c2D %89 = OpCompositeExtract %float %86 3 %90 = OpImageSampleDrefExplicitLod %float %85 %86 %89 Grad|ConstOffset %87 %88 %65 OpStore %f %90 %91 = OpLoad %21 %s3D %92 = OpLoad %v4float %c4D %93 = OpLoad %v3float %c3D %94 = OpLoad %v3float %c3D %95 = OpImageSampleProjExplicitLod %v4float %91 %92 Grad %93 %94 OpStore %v %95 %96 = OpLoad %11 %s2D %97 = OpLoad %v3float %c3D %98 = OpLoad %v2float %c2D %99 = OpLoad %v2float %c2D %100 = OpImageSampleProjExplicitLod %v4float %96 %97 Grad|ConstOffset %98 %99 %65 OpStore %v %100 %108 = OpLoad %105 %is2D %109 = OpLoad %v2float %c2D %110 = OpImageSampleImplicitLod %v4int %108 %109 OpStore %iv %110 %111 = OpLoad %105 %is2D %112 = OpLoad %v4float %c4D %113 = OpCompositeExtract %float %112 3 %114 = OpCompositeInsert %v4float %113 %112 2 %115 = OpImageSampleProjImplicitLod %v4int %111 %114 ConstOffset %65 OpStore %iv %115 %116 = OpLoad %105 %is2D %117 = OpLoad %v3float %c3D %118 = OpLoad %float %c1D %119 = OpImageSampleProjExplicitLod %v4int %116 %117 Lod %118 OpStore %iv %119 %120 = OpLoad %105 %is2D %121 = OpLoad %v3float %c3D %122 = OpLoad %v2float %c2D %123 = OpLoad %v2float %c2D %124 = OpImageSampleProjExplicitLod %v4int %120 %121 Grad %122 %123 OpStore %iv %124 %129 = OpLoad %126 %is3D %130 = OpLoad %v3float %c3D %132 = OpImageSampleImplicitLod %v4int %129 %130 Bias %float_4_19999981 OpStore %iv %132 %137 = OpLoad %134 %isCube %138 = OpLoad %v3float %c3D %139 = OpLoad %float %c1D %140 = OpImageSampleExplicitLod %v4int %137 %138 Lod %139 OpStore %iv %140 %145 = OpLoad %142 %is2DArray %146 = OpLoad %v3int %ic3D %147 = OpLoad %int %ic1D %148 = OpImage %141 %145 %149 = OpImageFetch %v4int %148 %146 Lod %147 OpStore %iv %149 %154 = OpLoad %151 %sCubeShadow %155 = OpImage %150 %154 %156 = OpImageQuerySizeLod %v2int %155 %int_2 %157 = OpLoad %v4int %iv %158 = OpVectorShuffle %v4int %157 %156 4 5 2 3 OpStore %iv %158 OpReturn OpFunctionEnd