ICE while running fuzzer: 'tint::spirv::writer::IRFuzzer' ../../third_party/dawn/src/tint/lang/spirv/writer/writer_ir_fuzz.cc:47 internal compiler error: output of SPIR-V writer failed to validate with SPIR-V Tools spirv error: SPIR-V failed validation. Disassembly: ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 1 ; Bound: 624 ; Schema: 0 OpCapability Shader OpCapability Image1D OpCapability Sampled1D OpCapability SampledCubeArray OpCapability ImageQuery OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %main_local_invocation_id_Input OpEntryPoint GLCompute %depth_load "depth_load" %depth_load_local_invocation_id_Input OpEntryPoint Vertex %queries "queries" %queries_position_Output %queries___point_size_Output OpEntryPoint Vertex %levels_queries "levels_queries" %levels_queries_position_Output %levels_queries___point_size_Output OpEntryPoint Fragment %texture_sample "texture_sample" %texture_sample_loc0_Output OpEntryPoint Fragment %texture_sample_comparison "texture_sample_comparison" %texture_sample_comparison_loc0_Output OpEntryPoint Fragment %gather "gather" %gather_loc0_Output OpEntryPoint Fragment %depth_no_comparison "depth_no_comparison" %depth_no_comparison_loc0_Output OpExecutionMode %main LocalSize 16 1 1 OpExecutionMode %depth_load LocalSize 16 1 1 OpExecutionMode %texture_sample OriginUpperLeft OpExecutionMode %texture_sample_comparison OriginUpperLeft OpExecutionMode %gather OriginUpperLeft OpExecutionMode %depth_no_comparison OriginUpperLeft OpName %image_mipmapped_src "image_mipmapped_src" OpName %image_multisampled_src "image_multisampled_src" OpName %image_depth_multisampled_src "image_depth_multisampled_src" OpName %image_storage_src "image_storage_src" OpName %image_array_src "image_array_src" OpName %image_dup_src "image_dup_src" OpName %image_1d_src "image_1d_src" OpName %image_dst "image_dst" OpName %image_1d "image_1d" OpName %image_2d "image_2d" OpName %image_2d_u32 "image_2d_u32" OpName %image_2d_i32 "image_2d_i32" OpName %image_2d_array "image_2d_array" OpName %image_cube "image_cube" OpName %image_cube_array "image_cube_array" OpName %image_3d "image_3d" OpName %image_aa "image_aa" OpName %sampler_reg "sampler_reg" OpName %sampler_cmp "sampler_cmp" OpName %image_2d_depth "image_2d_depth" OpName %image_2d_array_depth "image_2d_array_depth" OpName %image_cube_depth "image_cube_depth" OpName %main_local_invocation_id_Input "main_local_invocation_id_Input" OpName %depth_load_local_invocation_id_Input "depth_load_local_invocation_id_Input" OpName %queries_position_Output "queries_position_Output" OpName %queries___point_size_Output "queries___point_size_Output" OpName %levels_queries_position_Output "levels_queries_position_Output" OpName %levels_queries___point_size_Output "levels_queries___point_size_Output" OpName %texture_sample_loc0_Output "texture_sample_loc0_Output" OpName %texture_sample_comparison_loc0_Output "texture_sample_comparison_loc0_Output" OpName %gather_loc0_Output "gather_loc0_Output" OpName %depth_no_comparison_loc0_Output "depth_no_comparison_loc0_Output" OpName %main_inner "main_inner" OpName %local_id "local_id" OpName %dim "dim" OpName %itc "itc" OpName %value1 "value1" OpName %value2 "value2" OpName %value4 "value4" OpName %value5 "value5" OpName %value6 "value6" OpName %value7 "value7" OpName %value1u "value1u" OpName %value2u "value2u" OpName %value4u "value4u" OpName %value5u "value5u" OpName %value6u "value6u" OpName %value7u "value7u" OpName %depth_load_inner "depth_load_inner" OpName %local_id_0 "local_id" OpName %dim_0 "dim" OpName %itc_0 "itc" OpName %val "val" OpName %queries_inner "queries_inner" OpName %dim_1d "dim_1d" OpName %dim_1d_lod "dim_1d_lod" OpName %dim_2d "dim_2d" OpName %dim_2d_lod "dim_2d_lod" OpName %dim_2d_array "dim_2d_array" OpName %dim_2d_array_lod "dim_2d_array_lod" OpName %dim_cube "dim_cube" OpName %dim_cube_lod "dim_cube_lod" OpName %dim_cube_array "dim_cube_array" OpName %dim_cube_array_lod "dim_cube_array_lod" OpName %dim_3d "dim_3d" OpName %dim_3d_lod "dim_3d_lod" OpName %dim_2s_ms "dim_2s_ms" OpName %sum "sum" OpName %levels_queries_inner "levels_queries_inner" OpName %num_levels_2d "num_levels_2d" OpName %num_levels_2d_array "num_levels_2d_array" OpName %num_layers_2d "num_layers_2d" OpName %num_levels_cube "num_levels_cube" OpName %num_levels_cube_array "num_levels_cube_array" OpName %num_layers_cube "num_layers_cube" OpName %num_levels_3d "num_levels_3d" OpName %num_samples_aa "num_samples_aa" OpName %sum_0 "sum" OpName %texture_sample_inner "texture_sample_inner" OpName %tc "tc" OpName %tc3 "tc3" OpName %level "level" OpName %a "a" OpName %texture_sample_comparison_inner "texture_sample_comparison_inner" OpName %tc "tc" OpName %tc3 "tc3" OpName %dref "dref" OpName %a_0 "a" OpName %gather_inner "gather_inner" OpName %tc "tc" OpName %dref "dref" OpName %s2d "s2d" OpName %s2d_offset "s2d_offset" OpName %s2d_depth "s2d_depth" OpName %s2d_depth_offset "s2d_depth_offset" OpName %u "u" OpName %i "i" OpName %f "f" OpName %depth_no_comparison_inner "depth_no_comparison_inner" OpName %tc "tc" OpName %s2d_0 "s2d" OpName %s2d_gather "s2d_gather" OpName %tint_f32_to_u32 "tint_f32_to_u32" OpName %value "value" OpName %main "main" OpName %depth_load "depth_load" OpName %queries "queries" OpName %levels_queries "levels_queries" OpName %texture_sample "texture_sample" OpName %texture_sample_comparison "texture_sample_comparison" OpName %gather "gather" OpName %depth_no_comparison "depth_no_comparison" OpDecorate %image_mipmapped_src DescriptorSet 0 OpDecorate %image_mipmapped_src Binding 0 OpDecorate %image_multisampled_src DescriptorSet 0 OpDecorate %image_multisampled_src Binding 3 OpDecorate %image_depth_multisampled_src DescriptorSet 0 OpDecorate %image_depth_multisampled_src Binding 4 OpDecorate %image_storage_src DescriptorSet 0 OpDecorate %image_storage_src Binding 1 OpDecorate %image_storage_src NonWritable OpDecorate %image_array_src DescriptorSet 0 OpDecorate %image_array_src Binding 5 OpDecorate %image_dup_src DescriptorSet 0 OpDecorate %image_dup_src Binding 6 OpDecorate %image_dup_src NonWritable OpDecorate %image_1d_src DescriptorSet 0 OpDecorate %image_1d_src Binding 7 OpDecorate %image_dst DescriptorSet 0 OpDecorate %image_dst Binding 2 OpDecorate %image_dst NonReadable OpDecorate %image_1d DescriptorSet 0 OpDecorate %image_1d Binding 0 OpDecorate %image_2d DescriptorSet 0 OpDecorate %image_2d Binding 1 OpDecorate %image_2d_u32 DescriptorSet 0 OpDecorate %image_2d_u32 Binding 2 OpDecorate %image_2d_i32 DescriptorSet 0 OpDecorate %image_2d_i32 Binding 3 OpDecorate %image_2d_array DescriptorSet 0 OpDecorate %image_2d_array Binding 4 OpDecorate %image_cube DescriptorSet 0 OpDecorate %image_cube Binding 5 OpDecorate %image_cube_array DescriptorSet 0 OpDecorate %image_cube_array Binding 6 OpDecorate %image_3d DescriptorSet 0 OpDecorate %image_3d Binding 7 OpDecorate %image_aa DescriptorSet 0 OpDecorate %image_aa Binding 8 OpDecorate %sampler_reg DescriptorSet 1 OpDecorate %sampler_reg Binding 0 OpDecorate %sampler_cmp DescriptorSet 1 OpDecorate %sampler_cmp Binding 1 OpDecorate %image_2d_depth DescriptorSet 1 OpDecorate %image_2d_depth Binding 2 OpDecorate %image_2d_array_depth DescriptorSet 1 OpDecorate %image_2d_array_depth Binding 3 OpDecorate %image_cube_depth DescriptorSet 1 OpDecorate %image_cube_depth Binding 4 OpDecorate %main_local_invocation_id_Input BuiltIn LocalInvocationId OpDecorate %depth_load_local_invocation_id_Input BuiltIn LocalInvocationId OpDecorate %queries_position_Output BuiltIn Position OpDecorate %queries___point_size_Output BuiltIn PointSize OpDecorate %levels_queries_position_Output BuiltIn Position OpDecorate %levels_queries___point_size_Output BuiltIn PointSize OpDecorate %texture_sample_loc0_Output Location 0 OpDecorate %texture_sample_comparison_loc0_Output Location 0 OpDecorate %gather_loc0_Output Location 0 OpDecorate %depth_no_comparison_loc0_Output Location 0 %uint = OpTypeInt 32 0 %3 = OpTypeImage %uint 2D 0 0 0 1 Unknown %_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3 %image_mipmapped_src = OpVariable %_ptr_UniformConstant_3 UniformConstant %7 = OpTypeImage %uint 2D 0 0 1 1 Unknown %_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7 %image_multisampled_src = OpVariable %_ptr_UniformConstant_7 UniformConstant %float = OpTypeFloat 32 %10 = OpTypeImage %float 2D 0 0 1 1 Unknown %_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10 %image_depth_multisampled_src = OpVariable %_ptr_UniformConstant_10 UniformConstant %14 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui %_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14 %image_storage_src = OpVariable %_ptr_UniformConstant_14 UniformConstant %17 = OpTypeImage %uint 2D 0 1 0 1 Unknown %_ptr_UniformConstant_17 = OpTypePointer UniformConstant %17 %image_array_src = OpVariable %_ptr_UniformConstant_17 UniformConstant %20 = OpTypeImage %uint 1D 0 0 0 2 R32ui %_ptr_UniformConstant_20 = OpTypePointer UniformConstant %20 %image_dup_src = OpVariable %_ptr_UniformConstant_20 UniformConstant %23 = OpTypeImage %uint 1D 0 0 0 1 Unknown %_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23 %image_1d_src = OpVariable %_ptr_UniformConstant_23 UniformConstant %26 = OpTypeImage %uint 1D 0 0 0 2 R32ui %_ptr_UniformConstant_26 = OpTypePointer UniformConstant %26 %image_dst = OpVariable %_ptr_UniformConstant_26 UniformConstant %29 = OpTypeImage %float 1D 0 0 0 1 Unknown %_ptr_UniformConstant_29 = OpTypePointer UniformConstant %29 %image_1d = OpVariable %_ptr_UniformConstant_29 UniformConstant %32 = OpTypeImage %float 2D 0 0 0 1 Unknown %_ptr_UniformConstant_32 = OpTypePointer UniformConstant %32 %image_2d = OpVariable %_ptr_UniformConstant_32 UniformConstant %image_2d_u32 = OpVariable %_ptr_UniformConstant_3 UniformConstant %int = OpTypeInt 32 1 %36 = OpTypeImage %int 2D 0 0 0 1 Unknown %_ptr_UniformConstant_36 = OpTypePointer UniformConstant %36 %image_2d_i32 = OpVariable %_ptr_UniformConstant_36 UniformConstant %40 = OpTypeImage %float 2D 0 1 0 1 Unknown %_ptr_UniformConstant_40 = OpTypePointer UniformConstant %40 %image_2d_array = OpVariable %_ptr_UniformConstant_40 UniformConstant %43 = OpTypeImage %float Cube 0 0 0 1 Unknown %_ptr_UniformConstant_43 = OpTypePointer UniformConstant %43 %image_cube = OpVariable %_ptr_UniformConstant_43 UniformConstant %46 = OpTypeImage %float Cube 0 1 0 1 Unknown %_ptr_UniformConstant_46 = OpTypePointer UniformConstant %46 %image_cube_array = OpVariable %_ptr_UniformConstant_46 UniformConstant %49 = OpTypeImage %float 3D 0 0 0 1 Unknown %_ptr_UniformConstant_49 = OpTypePointer UniformConstant %49 %image_3d = OpVariable %_ptr_UniformConstant_49 UniformConstant %_ptr_UniformConstant_10_0 = OpTypePointer UniformConstant %10 %image_aa = OpVariable %_ptr_UniformConstant_10_0 UniformConstant %54 = OpTypeSampler %_ptr_UniformConstant_54 = OpTypePointer UniformConstant %54 %sampler_reg = OpVariable %_ptr_UniformConstant_54 UniformConstant %_ptr_UniformConstant_54_0 = OpTypePointer UniformConstant %54 %sampler_cmp = OpVariable %_ptr_UniformConstant_54_0 UniformConstant %_ptr_UniformConstant_32_0 = OpTypePointer UniformConstant %32 %image_2d_depth = OpVariable %_ptr_UniformConstant_32_0 UniformConstant %_ptr_UniformConstant_40_0 = OpTypePointer UniformConstant %40 %image_2d_array_depth = OpVariable %_ptr_UniformConstant_40_0 UniformConstant %_ptr_UniformConstant_43_0 = OpTypePointer UniformConstant %43 %image_cube_depth = OpVariable %_ptr_UniformConstant_43_0 UniformConstant %v3uint = OpTypeVector %uint 3 %_ptr_Input_v3uint = OpTypePointer Input %v3uint %main_local_invocation_id_Input = OpVariable %_ptr_Input_v3uint Input %depth_load_local_invocation_id_Input = OpVariable %_ptr_Input_v3uint Input %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %queries_position_Output = OpVariable %_ptr_Output_v4float Output %_ptr_Output_float = OpTypePointer Output %float %queries___point_size_Output = OpVariable %_ptr_Output_float Output %levels_queries_position_Output = OpVariable %_ptr_Output_v4float Output %levels_queries___point_size_Output = OpVariable %_ptr_Output_float Output %texture_sample_loc0_Output = OpVariable %_ptr_Output_v4float Output %texture_sample_comparison_loc0_Output = OpVariable %_ptr_Output_float Output %gather_loc0_Output = OpVariable %_ptr_Output_v4float Output %depth_no_comparison_loc0_Output = OpVariable %_ptr_Output_v4float Output %void = OpTypeVoid %81 = OpTypeFunction %void %v3uint %v2uint = OpTypeVector %uint 2 %v2int = OpTypeVector %int 2 %int_10 = OpConstant %int 10 %int_20 = OpConstant %int 20 %91 = OpConstantComposite %v2int %int_10 %int_20 %v4uint = OpTypeVector %uint 4 %int_1 = OpConstant %int 1 %v3int = OpTypeVector %int 3 %201 = OpTypeFunction %v4float %uint_0 = OpConstant %uint 0 %v2float = OpTypeVector %float 2 %dref = OpConstant %float 0.5 %tc = OpConstantComposite %v2float %dref %dref %v3float = OpTypeVector %float 3 %tc3 = OpConstantComposite %v3float %dref %dref %dref %level = OpConstant %float 2.29999995 %_ptr_Function_v4float = OpTypePointer Function %v4float %296 = OpConstantNull %v4float %301 = OpTypeSampledImage %29 %308 = OpTypeSampledImage %32 %int_3 = OpConstant %int 3 %316 = OpConstantComposite %v2int %int_3 %int_1 %float_2 = OpConstant %float 2 %342 = OpTypeSampledImage %40 %int_0 = OpConstant %int 0 %424 = OpTypeSampledImage %46 %472 = OpTypeFunction %float %_ptr_Function_float = OpTypePointer Function %float %476 = OpConstantNull %float %502 = OpTypeSampledImage %43 %float_0 = OpConstant %float 0 %557 = OpTypeSampledImage %3 %562 = OpTypeSampledImage %36 %v4int = OpTypeVector %int 4 %586 = OpTypeFunction %uint %float %bool = OpTypeBool %float_4_29496704e_09 = OpConstant %float 4.29496704e+09 %uint_4294967295 = OpConstant %uint 4294967295 %597 = OpTypeFunction %void %float_1 = OpConstant %float 1 %main_inner = OpFunction %void None %81 %local_id = OpFunctionParameter %v3uint %82 = OpLabel %83 = OpLoad %14 %image_storage_src %dim = OpImageQuerySize %v2uint %83 %86 = OpVectorShuffle %v2uint %local_id %local_id 0 1 %87 = OpIMul %v2uint %dim %86 %89 = OpBitcast %v2int %87 %itc = OpSRem %v2int %89 %91 %94 = OpLoad %3 %image_mipmapped_src %95 = OpCompositeExtract %uint %local_id 2 %96 = OpBitcast %int %95 %value1 = OpImageFetch %v4uint %94 %itc Lod %96 %99 = OpLoad %7 %image_multisampled_src %100 = OpCompositeExtract %uint %local_id 2 %101 = OpBitcast %int %100 %value2 = OpImageFetch %v4uint %99 %itc Sample %101 %103 = OpLoad %14 %image_storage_src %value4 = OpImageRead %v4uint %103 %itc None %105 = OpLoad %17 %image_array_src %106 = OpCompositeExtract %uint %local_id 2 %107 = OpCompositeExtract %uint %local_id 2 %108 = OpBitcast %int %107 %109 = OpIAdd %int %108 %int_1 %111 = OpBitcast %int %106 %113 = OpCompositeConstruct %v3int %itc %111 %value5 = OpImageFetch %v4uint %105 %113 Lod %109 %115 = OpLoad %17 %image_array_src %116 = OpCompositeExtract %uint %local_id 2 %117 = OpBitcast %int %116 %118 = OpCompositeExtract %uint %local_id 2 %119 = OpBitcast %int %118 %120 = OpIAdd %int %119 %int_1 %121 = OpCompositeConstruct %v3int %itc %117 %value6 = OpImageFetch %v4uint %115 %121 Lod %120 %123 = OpLoad %23 %image_1d_src %124 = OpCompositeExtract %uint %local_id 0 %125 = OpBitcast %int %124 %126 = OpCompositeExtract %uint %local_id 2 %127 = OpBitcast %int %126 %value7 = OpImageFetch %v4uint %123 %125 Lod %127 %129 = OpLoad %3 %image_mipmapped_src %130 = OpBitcast %v2uint %itc %131 = OpCompositeExtract %uint %local_id 2 %132 = OpBitcast %int %131 %value1u = OpImageFetch %v4uint %129 %130 Lod %132 %134 = OpLoad %7 %image_multisampled_src %135 = OpBitcast %v2uint %itc %136 = OpCompositeExtract %uint %local_id 2 %137 = OpBitcast %int %136 %value2u = OpImageFetch %v4uint %134 %135 Sample %137 %139 = OpLoad %14 %image_storage_src %140 = OpBitcast %v2uint %itc %value4u = OpImageRead %v4uint %139 %140 None %142 = OpLoad %17 %image_array_src %143 = OpBitcast %v2uint %itc %144 = OpCompositeExtract %uint %local_id 2 %145 = OpCompositeExtract %uint %local_id 2 %146 = OpBitcast %int %145 %147 = OpIAdd %int %146 %int_1 %148 = OpCompositeConstruct %v3uint %143 %144 %value5u = OpImageFetch %v4uint %142 %148 Lod %147 %150 = OpLoad %17 %image_array_src %151 = OpBitcast %v2uint %itc %152 = OpCompositeExtract %uint %local_id 2 %153 = OpBitcast %int %152 %154 = OpCompositeExtract %uint %local_id 2 %155 = OpBitcast %int %154 %156 = OpIAdd %int %155 %int_1 %157 = OpBitcast %uint %153 %158 = OpCompositeConstruct %v3uint %151 %157 %value6u = OpImageFetch %v4uint %150 %158 Lod %156 %160 = OpLoad %23 %image_1d_src %161 = OpCompositeExtract %uint %local_id 0 %162 = OpCompositeExtract %uint %local_id 2 %163 = OpBitcast %int %162 %value7u = OpImageFetch %v4uint %160 %161 Lod %163 %165 = OpLoad %26 %image_dst %166 = OpCompositeExtract %int %itc 0 %167 = OpIAdd %v4uint %value1 %value2 %168 = OpIAdd %v4uint %167 %value4 %169 = OpIAdd %v4uint %168 %value5 %170 = OpIAdd %v4uint %169 %value6 OpImageWrite %165 %166 %170 None %172 = OpLoad %26 %image_dst %173 = OpCompositeExtract %int %itc 0 %174 = OpBitcast %uint %173 %175 = OpIAdd %v4uint %value1u %value2u %176 = OpIAdd %v4uint %175 %value4u %177 = OpIAdd %v4uint %176 %value5u %178 = OpIAdd %v4uint %177 %value6u OpImageWrite %172 %174 %178 None OpReturn OpFunctionEnd %depth_load_inner = OpFunction %void None %81 %local_id_0 = OpFunctionParameter %v3uint %182 = OpLabel %183 = OpLoad %14 %image_storage_src %dim_0 = OpImageQuerySize %v2uint %183 %185 = OpVectorShuffle %v2uint %local_id_0 %local_id_0 0 1 %186 = OpIMul %v2uint %dim_0 %185 %187 = OpBitcast %v2int %186 %itc_0 = OpSRem %v2int %187 %91 %189 = OpLoad %10 %image_depth_multisampled_src %190 = OpCompositeExtract %uint %local_id_0 2 %191 = OpBitcast %int %190 %192 = OpImageFetch %v4float %189 %itc_0 Sample %191 %val = OpCompositeExtract %float %192 0 %194 = OpLoad %26 %image_dst %195 = OpCompositeExtract %int %itc_0 0 %196 = OpFunctionCall %uint %tint_f32_to_u32 %val %198 = OpCompositeConstruct %v4uint %196 %196 %196 %196 OpImageWrite %194 %195 %198 None OpReturn OpFunctionEnd %queries_inner = OpFunction %v4float None %201 %202 = OpLabel %203 = OpLoad %29 %image_1d %dim_1d = OpImageQuerySizeLod %uint %203 %uint_0 %206 = OpLoad %29 %image_1d %207 = OpBitcast %int %dim_1d %dim_1d_lod = OpImageQuerySizeLod %uint %206 %207 %209 = OpLoad %32 %image_2d %dim_2d = OpImageQuerySizeLod %v2uint %209 %uint_0 %211 = OpLoad %32 %image_2d %dim_2d_lod = OpImageQuerySizeLod %v2uint %211 %int_1 %213 = OpLoad %40 %image_2d_array %214 = OpImageQuerySizeLod %v3uint %213 %uint_0 %dim_2d_array = OpVectorShuffle %v2uint %214 %214 0 1 %216 = OpLoad %40 %image_2d_array %217 = OpImageQuerySizeLod %v3uint %216 %int_1 %dim_2d_array_lod = OpVectorShuffle %v2uint %217 %217 0 1 %219 = OpLoad %43 %image_cube %dim_cube = OpImageQuerySizeLod %v2uint %219 %uint_0 %221 = OpLoad %43 %image_cube %dim_cube_lod = OpImageQuerySizeLod %v2uint %221 %int_1 %223 = OpLoad %46 %image_cube_array %224 = OpImageQuerySizeLod %v3uint %223 %uint_0 %dim_cube_array = OpVectorShuffle %v2uint %224 %224 0 1 %226 = OpLoad %46 %image_cube_array %227 = OpImageQuerySizeLod %v3uint %226 %int_1 %dim_cube_array_lod = OpVectorShuffle %v2uint %227 %227 0 1 %229 = OpLoad %49 %image_3d %dim_3d = OpImageQuerySizeLod %v3uint %229 %uint_0 %231 = OpLoad %49 %image_3d %dim_3d_lod = OpImageQuerySizeLod %v3uint %231 %int_1 %233 = OpLoad %10 %image_aa %dim_2s_ms = OpImageQuerySize %v2uint %233 %235 = OpCompositeExtract %uint %dim_2d 1 %236 = OpIAdd %uint %dim_1d %235 %237 = OpCompositeExtract %uint %dim_2d_lod 1 %238 = OpIAdd %uint %236 %237 %239 = OpCompositeExtract %uint %dim_2d_array 1 %240 = OpIAdd %uint %238 %239 %241 = OpCompositeExtract %uint %dim_2d_array_lod 1 %242 = OpIAdd %uint %240 %241 %243 = OpCompositeExtract %uint %dim_cube 1 %244 = OpIAdd %uint %242 %243 %245 = OpCompositeExtract %uint %dim_cube_lod 1 %246 = OpIAdd %uint %244 %245 %247 = OpCompositeExtract %uint %dim_cube_array 1 %248 = OpIAdd %uint %246 %247 %249 = OpCompositeExtract %uint %dim_cube_array_lod 1 %250 = OpIAdd %uint %248 %249 %251 = OpCompositeExtract %uint %dim_3d 2 %252 = OpIAdd %uint %250 %251 %253 = OpCompositeExtract %uint %dim_3d_lod 2 %sum = OpIAdd %uint %252 %253 %255 = OpConvertUToF %float %sum %256 = OpCompositeConstruct %v4float %255 %255 %255 %255 OpReturnValue %256 OpFunctionEnd %levels_queries_inner = OpFunction %v4float None %201 %258 = OpLabel %259 = OpLoad %32 %image_2d %num_levels_2d = OpImageQueryLevels %uint %259 %261 = OpLoad %40 %image_2d_array %num_levels_2d_array = OpImageQueryLevels %uint %261 %263 = OpLoad %40 %image_2d_array %264 = OpImageQuerySizeLod %v3uint %263 %uint_0 %num_layers_2d = OpCompositeExtract %uint %264 2 %266 = OpLoad %43 %image_cube %num_levels_cube = OpImageQueryLevels %uint %266 %268 = OpLoad %46 %image_cube_array %num_levels_cube_array = OpImageQueryLevels %uint %268 %270 = OpLoad %46 %image_cube_array %271 = OpImageQuerySizeLod %v3uint %270 %uint_0 %num_layers_cube = OpCompositeExtract %uint %271 2 %273 = OpLoad %49 %image_3d %num_levels_3d = OpImageQueryLevels %uint %273 %275 = OpLoad %10 %image_aa %num_samples_aa = OpImageQuerySamples %uint %275 %277 = OpIAdd %uint %num_layers_2d %num_layers_cube %278 = OpIAdd %uint %277 %num_samples_aa %279 = OpIAdd %uint %278 %num_levels_2d %280 = OpIAdd %uint %279 %num_levels_2d_array %281 = OpIAdd %uint %280 %num_levels_3d %282 = OpIAdd %uint %281 %num_levels_cube %sum_0 = OpIAdd %uint %282 %num_levels_cube_array %284 = OpConvertUToF %float %sum_0 %285 = OpCompositeConstruct %v4float %284 %284 %284 %284 OpReturnValue %285 OpFunctionEnd %texture_sample_inner = OpFunction %v4float None %201 %287 = OpLabel %a = OpVariable %_ptr_Function_v4float Function %296 %297 = OpLoad %29 %image_1d %298 = OpLoad %54 %sampler_reg %299 = OpCompositeExtract %float %tc 0 %300 = OpSampledImage %301 %297 %298 %302 = OpImageSampleImplicitLod %v4float %300 %299 None %303 = OpLoad %v4float %a %304 = OpFAdd %v4float %303 %302 OpStore %a %304 %305 = OpLoad %32 %image_2d %306 = OpLoad %54 %sampler_reg %307 = OpSampledImage %308 %305 %306 %309 = OpImageSampleImplicitLod %v4float %307 %tc None %310 = OpLoad %v4float %a %311 = OpFAdd %v4float %310 %309 OpStore %a %311 %312 = OpLoad %32 %image_2d %313 = OpLoad %54 %sampler_reg %314 = OpSampledImage %308 %312 %313 %315 = OpImageSampleImplicitLod %v4float %314 %tc ConstOffset %316 %318 = OpLoad %v4float %a %319 = OpFAdd %v4float %318 %315 OpStore %a %319 %320 = OpLoad %32 %image_2d %321 = OpLoad %54 %sampler_reg %322 = OpSampledImage %308 %320 %321 %323 = OpImageSampleExplicitLod %v4float %322 %tc Lod %level %324 = OpLoad %v4float %a %325 = OpFAdd %v4float %324 %323 OpStore %a %325 %326 = OpLoad %32 %image_2d %327 = OpLoad %54 %sampler_reg %328 = OpSampledImage %308 %326 %327 %329 = OpImageSampleExplicitLod %v4float %328 %tc Lod|ConstOffset %level %316 %330 = OpLoad %v4float %a %331 = OpFAdd %v4float %330 %329 OpStore %a %331 %332 = OpLoad %32 %image_2d %333 = OpLoad %54 %sampler_reg %334 = OpSampledImage %308 %332 %333 %335 = OpImageSampleImplicitLod %v4float %334 %tc Bias|ConstOffset %float_2 %316 %337 = OpLoad %v4float %a %338 = OpFAdd %v4float %337 %335 OpStore %a %338 %339 = OpLoad %40 %image_2d_array %340 = OpLoad %54 %sampler_reg %341 = OpSampledImage %342 %339 %340 %343 = OpConvertUToF %float %uint_0 %344 = OpCompositeConstruct %v3float %tc %343 %345 = OpImageSampleImplicitLod %v4float %341 %344 None %346 = OpLoad %v4float %a %347 = OpFAdd %v4float %346 %345 OpStore %a %347 %348 = OpLoad %40 %image_2d_array %349 = OpLoad %54 %sampler_reg %350 = OpSampledImage %342 %348 %349 %351 = OpConvertUToF %float %uint_0 %352 = OpCompositeConstruct %v3float %tc %351 %353 = OpImageSampleImplicitLod %v4float %350 %352 ConstOffset %316 %354 = OpLoad %v4float %a %355 = OpFAdd %v4float %354 %353 OpStore %a %355 %356 = OpLoad %40 %image_2d_array %357 = OpLoad %54 %sampler_reg %358 = OpSampledImage %342 %356 %357 %359 = OpConvertUToF %float %uint_0 %360 = OpCompositeConstruct %v3float %tc %359 %361 = OpImageSampleExplicitLod %v4float %358 %360 Lod %level %362 = OpLoad %v4float %a %363 = OpFAdd %v4float %362 %361 OpStore %a %363 %364 = OpLoad %40 %image_2d_array %365 = OpLoad %54 %sampler_reg %366 = OpSampledImage %342 %364 %365 %367 = OpConvertUToF %float %uint_0 %368 = OpCompositeConstruct %v3float %tc %367 %369 = OpImageSampleExplicitLod %v4float %366 %368 Lod|ConstOffset %level %316 %370 = OpLoad %v4float %a %371 = OpFAdd %v4float %370 %369 OpStore %a %371 %372 = OpLoad %40 %image_2d_array %373 = OpLoad %54 %sampler_reg %374 = OpSampledImage %342 %372 %373 %375 = OpConvertUToF %float %uint_0 %376 = OpCompositeConstruct %v3float %tc %375 %377 = OpImageSampleImplicitLod %v4float %374 %376 Bias|ConstOffset %float_2 %316 %378 = OpLoad %v4float %a %379 = OpFAdd %v4float %378 %377 OpStore %a %379 %380 = OpLoad %40 %image_2d_array %381 = OpLoad %54 %sampler_reg %382 = OpSampledImage %342 %380 %381 %383 = OpConvertSToF %float %int_0 %385 = OpCompositeConstruct %v3float %tc %383 %386 = OpImageSampleImplicitLod %v4float %382 %385 None %387 = OpLoad %v4float %a %388 = OpFAdd %v4float %387 %386 OpStore %a %388 %389 = OpLoad %40 %image_2d_array %390 = OpLoad %54 %sampler_reg %391 = OpSampledImage %342 %389 %390 %392 = OpConvertSToF %float %int_0 %393 = OpCompositeConstruct %v3float %tc %392 %394 = OpImageSampleImplicitLod %v4float %391 %393 ConstOffset %316 %395 = OpLoad %v4float %a %396 = OpFAdd %v4float %395 %394 OpStore %a %396 %397 = OpLoad %40 %image_2d_array %398 = OpLoad %54 %sampler_reg %399 = OpSampledImage %342 %397 %398 %400 = OpConvertSToF %float %int_0 %401 = OpCompositeConstruct %v3float %tc %400 %402 = OpImageSampleExplicitLod %v4float %399 %401 Lod %level %403 = OpLoad %v4float %a %404 = OpFAdd %v4float %403 %402 OpStore %a %404 %405 = OpLoad %40 %image_2d_array %406 = OpLoad %54 %sampler_reg %407 = OpSampledImage %342 %405 %406 %408 = OpConvertSToF %float %int_0 %409 = OpCompositeConstruct %v3float %tc %408 %410 = OpImageSampleExplicitLod %v4float %407 %409 Lod|ConstOffset %level %316 %411 = OpLoad %v4float %a %412 = OpFAdd %v4float %411 %410 OpStore %a %412 %413 = OpLoad %40 %image_2d_array %414 = OpLoad %54 %sampler_reg %415 = OpSampledImage %342 %413 %414 %416 = OpConvertSToF %float %int_0 %417 = OpCompositeConstruct %v3float %tc %416 %418 = OpImageSampleImplicitLod %v4float %415 %417 Bias|ConstOffset %float_2 %316 %419 = OpLoad %v4float %a %420 = OpFAdd %v4float %419 %418 OpStore %a %420 %421 = OpLoad %46 %image_cube_array %422 = OpLoad %54 %sampler_reg %423 = OpSampledImage %424 %421 %422 %425 = OpConvertUToF %float %uint_0 %426 = OpCompositeConstruct %v4float %tc3 %425 %427 = OpImageSampleImplicitLod %v4float %423 %426 None %428 = OpLoad %v4float %a %429 = OpFAdd %v4float %428 %427 OpStore %a %429 %430 = OpLoad %46 %image_cube_array %431 = OpLoad %54 %sampler_reg %432 = OpSampledImage %424 %430 %431 %433 = OpConvertUToF %float %uint_0 %434 = OpCompositeConstruct %v4float %tc3 %433 %435 = OpImageSampleExplicitLod %v4float %432 %434 Lod %level %436 = OpLoad %v4float %a %437 = OpFAdd %v4float %436 %435 OpStore %a %437 %438 = OpLoad %46 %image_cube_array %439 = OpLoad %54 %sampler_reg %440 = OpSampledImage %424 %438 %439 %441 = OpConvertUToF %float %uint_0 %442 = OpCompositeConstruct %v4float %tc3 %441 %443 = OpImageSampleImplicitLod %v4float %440 %442 Bias %float_2 %444 = OpLoad %v4float %a %445 = OpFAdd %v4float %444 %443 OpStore %a %445 %446 = OpLoad %46 %image_cube_array %447 = OpLoad %54 %sampler_reg %448 = OpSampledImage %424 %446 %447 %449 = OpConvertSToF %float %int_0 %450 = OpCompositeConstruct %v4float %tc3 %449 %451 = OpImageSampleImplicitLod %v4float %448 %450 None %452 = OpLoad %v4float %a %453 = OpFAdd %v4float %452 %451 OpStore %a %453 %454 = OpLoad %46 %image_cube_array %455 = OpLoad %54 %sampler_reg %456 = OpSampledImage %424 %454 %455 %457 = OpConvertSToF %float %int_0 %458 = OpCompositeConstruct %v4float %tc3 %457 %459 = OpImageSampleExplicitLod %v4float %456 %458 Lod %level %460 = OpLoad %v4float %a %461 = OpFAdd %v4float %460 %459 OpStore %a %461 %462 = OpLoad %46 %image_cube_array %463 = OpLoad %54 %sampler_reg %464 = OpSampledImage %424 %462 %463 %465 = OpConvertSToF %float %int_0 %466 = OpCompositeConstruct %v4float %tc3 %465 %467 = OpImageSampleImplicitLod %v4float %464 %466 Bias %float_2 %468 = OpLoad %v4float %a %469 = OpFAdd %v4float %468 %467 OpStore %a %469 %470 = OpLoad %v4float %a OpReturnValue %470 OpFunctionEnd %texture_sample_comparison_inner = OpFunction %float None %472 %473 = OpLabel %a_0 = OpVariable %_ptr_Function_float Function %476 %477 = OpLoad %32 %image_2d_depth %478 = OpLoad %54 %sampler_cmp %479 = OpSampledImage %308 %477 %478 %480 = OpImageSampleDrefImplicitLod %float %479 %tc %dref None %481 = OpLoad %float %a_0 %482 = OpFAdd %float %481 %480 OpStore %a_0 %482 %483 = OpLoad %40 %image_2d_array_depth %484 = OpLoad %54 %sampler_cmp %485 = OpSampledImage %342 %483 %484 %486 = OpConvertUToF %float %uint_0 %487 = OpCompositeConstruct %v3float %tc %486 %488 = OpImageSampleDrefImplicitLod %float %485 %487 %dref None %489 = OpLoad %float %a_0 %490 = OpFAdd %float %489 %488 OpStore %a_0 %490 %491 = OpLoad %40 %image_2d_array_depth %492 = OpLoad %54 %sampler_cmp %493 = OpSampledImage %342 %491 %492 %494 = OpConvertSToF %float %int_0 %495 = OpCompositeConstruct %v3float %tc %494 %496 = OpImageSampleDrefImplicitLod %float %493 %495 %dref None %497 = OpLoad %float %a_0 %498 = OpFAdd %float %497 %496 OpStore %a_0 %498 %499 = OpLoad %43 %image_cube_depth %500 = OpLoad %54 %sampler_cmp %501 = OpSampledImage %502 %499 %500 %503 = OpImageSampleDrefImplicitLod %float %501 %tc3 %dref None %504 = OpLoad %float %a_0 %505 = OpFAdd %float %504 %503 OpStore %a_0 %505 %506 = OpLoad %32 %image_2d_depth %507 = OpLoad %54 %sampler_cmp %508 = OpSampledImage %308 %506 %507 %509 = OpImageSampleDrefExplicitLod %float %508 %tc %dref Lod %float_0 %511 = OpLoad %float %a_0 %512 = OpFAdd %float %511 %509 OpStore %a_0 %512 %513 = OpLoad %40 %image_2d_array_depth %514 = OpLoad %54 %sampler_cmp %515 = OpSampledImage %342 %513 %514 %516 = OpConvertUToF %float %uint_0 %517 = OpCompositeConstruct %v3float %tc %516 %518 = OpImageSampleDrefExplicitLod %float %515 %517 %dref Lod %float_0 %519 = OpLoad %float %a_0 %520 = OpFAdd %float %519 %518 OpStore %a_0 %520 %521 = OpLoad %40 %image_2d_array_depth %522 = OpLoad %54 %sampler_cmp %523 = OpSampledImage %342 %521 %522 %524 = OpConvertSToF %float %int_0 %525 = OpCompositeConstruct %v3float %tc %524 %526 = OpImageSampleDrefExplicitLod %float %523 %525 %dref Lod %float_0 %527 = OpLoad %float %a_0 %528 = OpFAdd %float %527 %526 OpStore %a_0 %528 %529 = OpLoad %43 %image_cube_depth %530 = OpLoad %54 %sampler_cmp %531 = OpSampledImage %502 %529 %530 %532 = OpImageSampleDrefExplicitLod %float %531 %tc3 %dref Lod %float_0 %533 = OpLoad %float %a_0 %534 = OpFAdd %float %533 %532 OpStore %a_0 %534 %535 = OpLoad %float %a_0 OpReturnValue %535 OpFunctionEnd %gather_inner = OpFunction %v4float None %201 %537 = OpLabel %538 = OpLoad %32 %image_2d %539 = OpLoad %54 %sampler_reg %540 = OpSampledImage %308 %538 %539 %s2d = OpImageGather %v4float %540 %tc %int_1 None %542 = OpLoad %32 %image_2d %543 = OpLoad %54 %sampler_reg %544 = OpSampledImage %308 %542 %543 %s2d_offset = OpImageGather %v4float %544 %tc %int_3 ConstOffset %316 %546 = OpLoad %32 %image_2d_depth %547 = OpLoad %54 %sampler_cmp %548 = OpSampledImage %308 %546 %547 %s2d_depth = OpImageDrefGather %v4float %548 %tc %dref None %550 = OpLoad %32 %image_2d_depth %551 = OpLoad %54 %sampler_cmp %552 = OpSampledImage %308 %550 %551 %s2d_depth_offset = OpImageDrefGather %v4float %552 %tc %dref ConstOffset %316 %554 = OpLoad %3 %image_2d_u32 %555 = OpLoad %54 %sampler_reg %556 = OpSampledImage %557 %554 %555 %u = OpImageGather %v4uint %556 %tc %int_0 None %559 = OpLoad %36 %image_2d_i32 %560 = OpLoad %54 %sampler_reg %561 = OpSampledImage %562 %559 %560 %i = OpImageGather %v4int %561 %tc %int_0 None %565 = OpConvertUToF %v4float %u %566 = OpConvertSToF %v4float %i %f = OpFAdd %v4float %565 %566 %568 = OpFAdd %v4float %s2d %s2d_offset %569 = OpFAdd %v4float %568 %s2d_depth %570 = OpFAdd %v4float %569 %s2d_depth_offset %571 = OpFAdd %v4float %570 %f OpReturnValue %571 OpFunctionEnd %depth_no_comparison_inner = OpFunction %v4float None %201 %573 = OpLabel %574 = OpLoad %32 %image_2d_depth %575 = OpLoad %54 %sampler_reg %576 = OpSampledImage %308 %574 %575 %577 = OpImageSampleImplicitLod %v4float %576 %tc None %s2d_0 = OpCompositeExtract %float %577 0 %579 = OpLoad %32 %image_2d_depth %580 = OpLoad %54 %sampler_reg %581 = OpSampledImage %308 %579 %580 %s2d_gather = OpImageGather %v4float %581 %tc %uint_0 None %583 = OpCompositeConstruct %v4float %s2d_0 %s2d_0 %s2d_0 %s2d_0 %584 = OpFAdd %v4float %583 %s2d_gather OpReturnValue %584 OpFunctionEnd %tint_f32_to_u32 = OpFunction %uint None %586 %value = OpFunctionParameter %float %587 = OpLabel %588 = OpConvertFToU %uint %value %589 = OpFOrdGreaterThanEqual %bool %value %float_0 %591 = OpSelect %uint %589 %588 %uint_0 %592 = OpFOrdLessThanEqual %bool %value %float_4_29496704e_09 %594 = OpSelect %uint %592 %591 %uint_4294967295 OpReturnValue %594 OpFunctionEnd %main = OpFunction %void None %597 %598 = OpLabel %599 = OpLoad %v3uint %main_local_invocation_id_Input %600 = OpFunctionCall %void %main_inner %599 OpReturn OpFunctionEnd %depth_load = OpFunction %void None %597 %602 = OpLabel %603 = OpLoad %v3uint %depth_load_local_invocation_id_Input %604 = OpFunctionCall %void %depth_load_inner %603 OpReturn OpFunctionEnd %queries = OpFunction %void None %597 %606 = OpLabel %607 = OpFunctionCall %v4float %queries_inner OpStore %queries_position_Output %607 OpStore %queries___point_size_Output %float_1 OpReturn OpFunctionEnd %levels_queries = OpFunction %void None %597 %610 = OpLabel %611 = OpFunctionCall %v4float %levels_queries_inner OpStore %levels_queries_position_Output %611 OpStore %levels_queries___point_size_Output %float_1 OpReturn OpFunctionEnd %texture_sample = OpFunction %void None %597 %613 = OpLabel %614 = OpFunctionCall %v4float %texture_sample_inner OpStore %texture_sample_loc0_Output %614 OpReturn OpFunctionEnd %texture_sample_comparison = OpFunction %void None %597 %616 = OpLabel %617 = OpFunctionCall %float %texture_sample_comparison_inner OpStore %texture_sample_comparison_loc0_Output %617 OpReturn OpFunctionEnd %gather = OpFunction %void None %597 %619 = OpLabel %620 = OpFunctionCall %v4float %gather_inner OpStore %gather_loc0_Output %620 OpReturn OpFunctionEnd %depth_no_comparison = OpFunction %void None %597 %622 = OpLabel %623 = OpFunctionCall %v4float %depth_no_comparison_inner OpStore %depth_no_comparison_loc0_Output %623 OpReturn OpFunctionEnd spirv:1:1 error: Duplicate non-aggregate type declarations are not allowed. Opcode: TypeImage id: 26 %26 = OpTypeImage %uint 1D 0 0 0 2 R32ui IR: $B1: { # root %image_mipmapped_src:ptr, read> = var @binding_point(0, 0) %image_multisampled_src:ptr, read> = var @binding_point(0, 3) %image_depth_multisampled_src:ptr = var @binding_point(0, 4) %image_storage_src:ptr, read> = var @binding_point(0, 1) %image_array_src:ptr, read> = var @binding_point(0, 5) %image_dup_src:ptr, read> = var @binding_point(0, 6) %image_1d_src:ptr, read> = var @binding_point(0, 7) %image_dst:ptr, read> = var @binding_point(0, 2) %image_1d:ptr, read> = var @binding_point(0, 0) %image_2d:ptr, read> = var @binding_point(0, 1) %image_2d_u32:ptr, read> = var @binding_point(0, 2) %image_2d_i32:ptr, read> = var @binding_point(0, 3) %image_2d_array:ptr, read> = var @binding_point(0, 4) %image_cube:ptr, read> = var @binding_point(0, 5) %image_cube_array:ptr, read> = var @binding_point(0, 6) %image_3d:ptr, read> = var @binding_point(0, 7) %image_aa:ptr, read> = var @binding_point(0, 8) %sampler_reg:ptr = var @binding_point(1, 0) %sampler_cmp:ptr = var @binding_point(1, 1) %image_2d_depth:ptr = var @binding_point(1, 2) %image_2d_array_depth:ptr = var @binding_point(1, 3) %image_cube_depth:ptr = var @binding_point(1, 4) %main_local_invocation_id_Input:ptr<__in, vec3, read> = var @builtin(local_invocation_id) %depth_load_local_invocation_id_Input:ptr<__in, vec3, read> = var @builtin(local_invocation_id) %queries_position_Output:ptr<__out, vec4, write> = var @builtin(position) %queries___point_size_Output:ptr<__out, f32, write> = var @builtin(__point_size) %levels_queries_position_Output:ptr<__out, vec4, write> = var @builtin(position) %levels_queries___point_size_Output:ptr<__out, f32, write> = var @builtin(__point_size) %texture_sample_loc0_Output:ptr<__out, vec4, write> = var @location(0) %texture_sample_comparison_loc0_Output:ptr<__out, f32, write> = var @location(0) %gather_loc0_Output:ptr<__out, vec4, write> = var @location(0) %depth_no_comparison_loc0_Output:ptr<__out, vec4, write> = var @location(0) } %main_inner = func(%local_id:vec3):void { $B2: { %35:texture_storage_2d = load %image_storage_src %36:vec2 = spirv.image_query_size %35 %dim:vec2 = let %36 %38:vec2 = swizzle %local_id, xy %39:vec2 = mul %dim, %38 %40:vec2 = convert %39 %41:vec2 = mod %40, vec2(10i, 20i) %itc:vec2 = let %41 %43:texture_2d = load %image_mipmapped_src %44:u32 = access %local_id, 2u %45:i32 = convert %44 %46:vec4 = spirv.image_fetch %43, %itc, 2u, %45 %value1:vec4 = let %46 %48:texture_multisampled_2d = load %image_multisampled_src %49:u32 = access %local_id, 2u %50:i32 = convert %49 %51:vec4 = spirv.image_fetch %48, %itc, 64u, %50 %value2:vec4 = let %51 %53:texture_storage_2d = load %image_storage_src %54:vec4 = spirv.image_read %53, %itc, 0u %value4:vec4 = let %54 %56:texture_2d_array = load %image_array_src %57:u32 = access %local_id, 2u %58:u32 = access %local_id, 2u %59:i32 = convert %58 %60:i32 = add %59, 1i %61:i32 = convert %57 %62:vec3 = construct %itc, %61 %63:vec4 = spirv.image_fetch %56, %62, 2u, %60 %value5:vec4 = let %63 %65:texture_2d_array = load %image_array_src %66:u32 = access %local_id, 2u %67:i32 = convert %66 %68:u32 = access %local_id, 2u %69:i32 = convert %68 %70:i32 = add %69, 1i %71:vec3 = construct %itc, %67 %72:vec4 = spirv.image_fetch %65, %71, 2u, %70 %value6:vec4 = let %72 %74:texture_1d = load %image_1d_src %75:u32 = access %local_id, 0u %76:i32 = convert %75 %77:u32 = access %local_id, 2u %78:i32 = convert %77 %79:vec4 = spirv.image_fetch %74, %76, 2u, %78 %value7:vec4 = let %79 %81:texture_2d = load %image_mipmapped_src %82:vec2 = convert %itc %83:u32 = access %local_id, 2u %84:i32 = convert %83 %85:vec4 = spirv.image_fetch %81, %82, 2u, %84 %value1u:vec4 = let %85 %87:texture_multisampled_2d = load %image_multisampled_src %88:vec2 = convert %itc %89:u32 = access %local_id, 2u %90:i32 = convert %89 %91:vec4 = spirv.image_fetch %87, %88, 64u, %90 %value2u:vec4 = let %91 %93:texture_storage_2d = load %image_storage_src %94:vec2 = convert %itc %95:vec4 = spirv.image_read %93, %94, 0u %value4u:vec4 = let %95 %97:texture_2d_array = load %image_array_src %98:vec2 = convert %itc %99:u32 = access %local_id, 2u %100:u32 = access %local_id, 2u %101:i32 = convert %100 %102:i32 = add %101, 1i %103:vec3 = construct %98, %99 %104:vec4 = spirv.image_fetch %97, %103, 2u, %102 %value5u:vec4 = let %104 %106:texture_2d_array = load %image_array_src %107:vec2 = convert %itc %108:u32 = access %local_id, 2u %109:i32 = convert %108 %110:u32 = access %local_id, 2u %111:i32 = convert %110 %112:i32 = add %111, 1i %113:u32 = convert %109 %114:vec3 = construct %107, %113 %115:vec4 = spirv.image_fetch %106, %114, 2u, %112 %value6u:vec4 = let %115 %117:texture_1d = load %image_1d_src %118:u32 = access %local_id, 0u %119:u32 = construct %118 %120:u32 = access %local_id, 2u %121:i32 = convert %120 %122:vec4 = spirv.image_fetch %117, %119, 2u, %121 %value7u:vec4 = let %122 %124:texture_storage_1d = load %image_dst %125:i32 = access %itc, 0u %126:vec4 = add %value1, %value2 %127:vec4 = add %126, %value4 %128:vec4 = add %127, %value5 %129:vec4 = add %128, %value6 %130:void = spirv.image_write %124, %125, %129, 0u %131:texture_storage_1d = load %image_dst %132:i32 = access %itc, 0u %133:u32 = convert %132 %134:vec4 = add %value1u, %value2u %135:vec4 = add %134, %value4u %136:vec4 = add %135, %value5u %137:vec4 = add %136, %value6u %138:void = spirv.image_write %131, %133, %137, 0u ret } } %depth_load_inner = func(%local_id_1:vec3):void { # %local_id_1: 'local_id' $B3: { %141:texture_storage_2d = load %image_storage_src %142:vec2 = spirv.image_query_size %141 %dim_1:vec2 = let %142 # %dim_1: 'dim' %144:vec2 = swizzle %local_id_1, xy %145:vec2 = mul %dim_1, %144 %146:vec2 = convert %145 %147:vec2 = mod %146, vec2(10i, 20i) %itc_1:vec2 = let %147 # %itc_1: 'itc' %149:texture_depth_multisampled_2d = load %image_depth_multisampled_src %150:u32 = access %local_id_1, 2u %151:i32 = convert %150 %152:vec4 = spirv.image_fetch %149, %itc_1, 64u, %151 %153:f32 = access %152, 0u %val:f32 = let %153 %155:texture_storage_1d = load %image_dst %156:i32 = access %itc_1, 0u %157:u32 = call %tint_f32_to_u32, %val %159:vec4 = construct %157, %157, %157, %157 %160:void = spirv.image_write %155, %156, %159, 0u ret } } %queries_inner = func():vec4 { $B4: { %162:texture_1d = load %image_1d %163:u32 = spirv.image_query_size_lod %162, 0u %dim_1d:u32 = let %163 %165:texture_1d = load %image_1d %166:i32 = convert %dim_1d %167:u32 = spirv.image_query_size_lod %165, %166 %dim_1d_lod:u32 = let %167 %169:texture_2d = load %image_2d %170:vec2 = spirv.image_query_size_lod %169, 0u %dim_2d:vec2 = let %170 %172:texture_2d = load %image_2d %173:vec2 = spirv.image_query_size_lod %172, 1i %dim_2d_lod:vec2 = let %173 %175:texture_2d_array = load %image_2d_array %176:vec3 = spirv.image_query_size_lod %175, 0u %177:vec2 = swizzle %176, xy %dim_2d_array:vec2 = let %177 %179:texture_2d_array = load %image_2d_array %180:vec3 = spirv.image_query_size_lod %179, 1i %181:vec2 = swizzle %180, xy %dim_2d_array_lod:vec2 = let %181 %183:texture_cube = load %image_cube %184:vec2 = spirv.image_query_size_lod %183, 0u %dim_cube:vec2 = let %184 %186:texture_cube = load %image_cube %187:vec2 = spirv.image_query_size_lod %186, 1i %dim_cube_lod:vec2 = let %187 %189:texture_cube_array = load %image_cube_array %190:vec3 = spirv.image_query_size_lod %189, 0u %191:vec2 = swizzle %190, xy %dim_cube_array:vec2 = let %191 %193:texture_cube_array = load %image_cube_array %194:vec3 = spirv.image_query_size_lod %193, 1i %195:vec2 = swizzle %194, xy %dim_cube_array_lod:vec2 = let %195 %197:texture_3d = load %image_3d %198:vec3 = spirv.image_query_size_lod %197, 0u %dim_3d:vec3 = let %198 %200:texture_3d = load %image_3d %201:vec3 = spirv.image_query_size_lod %200, 1i %dim_3d_lod:vec3 = let %201 %203:texture_multisampled_2d = load %image_aa %204:vec2 = spirv.image_query_size %203 %dim_2s_ms:vec2 = let %204 %206:u32 = access %dim_2d, 1u %207:u32 = add %dim_1d, %206 %208:u32 = access %dim_2d_lod, 1u %209:u32 = add %207, %208 %210:u32 = access %dim_2d_array, 1u %211:u32 = add %209, %210 %212:u32 = access %dim_2d_array_lod, 1u %213:u32 = add %211, %212 %214:u32 = access %dim_cube, 1u %215:u32 = add %213, %214 %216:u32 = access %dim_cube_lod, 1u %217:u32 = add %215, %216 %218:u32 = access %dim_cube_array, 1u %219:u32 = add %217, %218 %220:u32 = access %dim_cube_array_lod, 1u %221:u32 = add %219, %220 %222:u32 = access %dim_3d, 2u %223:u32 = add %221, %222 %224:u32 = access %dim_3d_lod, 2u %225:u32 = add %223, %224 %sum:u32 = let %225 %227:f32 = convert %sum %228:vec4 = construct %227, %227, %227, %227 ret %228 } } %levels_queries_inner = func():vec4 { $B5: { %230:texture_2d = load %image_2d %231:u32 = textureNumLevels %230 %num_levels_2d:u32 = let %231 %233:texture_2d_array = load %image_2d_array %234:u32 = textureNumLevels %233 %num_levels_2d_array:u32 = let %234 %236:texture_2d_array = load %image_2d_array %237:vec3 = spirv.image_query_size_lod %236, 0u %238:u32 = access %237, 2u %num_layers_2d:u32 = let %238 %240:texture_cube = load %image_cube %241:u32 = textureNumLevels %240 %num_levels_cube:u32 = let %241 %243:texture_cube_array = load %image_cube_array %244:u32 = textureNumLevels %243 %num_levels_cube_array:u32 = let %244 %246:texture_cube_array = load %image_cube_array %247:vec3 = spirv.image_query_size_lod %246, 0u %248:u32 = access %247, 2u %num_layers_cube:u32 = let %248 %250:texture_3d = load %image_3d %251:u32 = textureNumLevels %250 %num_levels_3d:u32 = let %251 %253:texture_multisampled_2d = load %image_aa %254:u32 = textureNumSamples %253 %num_samples_aa:u32 = let %254 %256:u32 = add %num_layers_2d, %num_layers_cube %257:u32 = add %256, %num_samples_aa %258:u32 = add %257, %num_levels_2d %259:u32 = add %258, %num_levels_2d_array %260:u32 = add %259, %num_levels_3d %261:u32 = add %260, %num_levels_cube %262:u32 = add %261, %num_levels_cube_array %sum_1:u32 = let %262 # %sum_1: 'sum' %264:f32 = convert %sum_1 %265:vec4 = construct %264, %264, %264, %264 ret %265 } } %texture_sample_inner = func():vec4 { $B6: { %tc:vec2 = let vec2(0.5f) %tc3:vec3 = let vec3(0.5f) %level:f32 = let 2.29999995231628417969f %a:ptr, read_write> = var %271:texture_1d = load %image_1d %272:sampler = load %sampler_reg %273:f32 = access %tc, 0u %274:spirv.sampled_image> = spirv.sampled_image %271, %272 %275:vec4 = spirv.image_sample_implicit_lod %274, %273, 0u %276:vec4 = load %a %277:vec4 = add %276, %275 store %a, %277 %278:texture_2d = load %image_2d %279:sampler = load %sampler_reg %280:spirv.sampled_image> = spirv.sampled_image %278, %279 %281:vec4 = spirv.image_sample_implicit_lod %280, %tc, 0u %282:vec4 = load %a %283:vec4 = add %282, %281 store %a, %283 %284:texture_2d = load %image_2d %285:sampler = load %sampler_reg %286:spirv.sampled_image> = spirv.sampled_image %284, %285 %287:vec4 = spirv.image_sample_implicit_lod %286, %tc, 8u, vec2(3i, 1i) %288:vec4 = load %a %289:vec4 = add %288, %287 store %a, %289 %290:texture_2d = load %image_2d %291:sampler = load %sampler_reg %292:spirv.sampled_image> = spirv.sampled_image %290, %291 %293:vec4 = spirv.image_sample_explicit_lod %292, %tc, 2u, %level %294:vec4 = load %a %295:vec4 = add %294, %293 store %a, %295 %296:texture_2d = load %image_2d %297:sampler = load %sampler_reg %298:spirv.sampled_image> = spirv.sampled_image %296, %297 %299:vec4 = spirv.image_sample_explicit_lod %298, %tc, 10u, %level, vec2(3i, 1i) %300:vec4 = load %a %301:vec4 = add %300, %299 store %a, %301 %302:texture_2d = load %image_2d %303:sampler = load %sampler_reg %304:spirv.sampled_image> = spirv.sampled_image %302, %303 %305:vec4 = spirv.image_sample_implicit_lod %304, %tc, 9u, 2.0f, vec2(3i, 1i) %306:vec4 = load %a %307:vec4 = add %306, %305 store %a, %307 %308:texture_2d_array = load %image_2d_array %309:sampler = load %sampler_reg %310:spirv.sampled_image> = spirv.sampled_image %308, %309 %311:f32 = convert 0u %312:vec3 = construct %tc, %311 %313:vec4 = spirv.image_sample_implicit_lod %310, %312, 0u %314:vec4 = load %a %315:vec4 = add %314, %313 store %a, %315 %316:texture_2d_array = load %image_2d_array %317:sampler = load %sampler_reg %318:spirv.sampled_image> = spirv.sampled_image %316, %317 %319:f32 = convert 0u %320:vec3 = construct %tc, %319 %321:vec4 = spirv.image_sample_implicit_lod %318, %320, 8u, vec2(3i, 1i) %322:vec4 = load %a %323:vec4 = add %322, %321 store %a, %323 %324:texture_2d_array = load %image_2d_array %325:sampler = load %sampler_reg %326:spirv.sampled_image> = spirv.sampled_image %324, %325 %327:f32 = convert 0u %328:vec3 = construct %tc, %327 %329:vec4 = spirv.image_sample_explicit_lod %326, %328, 2u, %level %330:vec4 = load %a %331:vec4 = add %330, %329 store %a, %331 %332:texture_2d_array = load %image_2d_array %333:sampler = load %sampler_reg %334:spirv.sampled_image> = spirv.sampled_image %332, %333 %335:f32 = convert 0u %336:vec3 = construct %tc, %335 %337:vec4 = spirv.image_sample_explicit_lod %334, %336, 10u, %level, vec2(3i, 1i) %338:vec4 = load %a %339:vec4 = add %338, %337 store %a, %339 %340:texture_2d_array = load %image_2d_array %341:sampler = load %sampler_reg %342:spirv.sampled_image> = spirv.sampled_image %340, %341 %343:f32 = convert 0u %344:vec3 = construct %tc, %343 %345:vec4 = spirv.image_sample_implicit_lod %342, %344, 9u, 2.0f, vec2(3i, 1i) %346:vec4 = load %a %347:vec4 = add %346, %345 store %a, %347 %348:texture_2d_array = load %image_2d_array %349:sampler = load %sampler_reg %350:spirv.sampled_image> = spirv.sampled_image %348, %349 %351:f32 = convert 0i %352:vec3 = construct %tc, %351 %353:vec4 = spirv.image_sample_implicit_lod %350, %352, 0u %354:vec4 = load %a %355:vec4 = add %354, %353 store %a, %355 %356:texture_2d_array = load %image_2d_array %357:sampler = load %sampler_reg %358:spirv.sampled_image> = spirv.sampled_image %356, %357 %359:f32 = convert 0i %360:vec3 = construct %tc, %359 %361:vec4 = spirv.image_sample_implicit_lod %358, %360, 8u, vec2(3i, 1i) %362:vec4 = load %a %363:vec4 = add %362, %361 store %a, %363 %364:texture_2d_array = load %image_2d_array %365:sampler = load %sampler_reg %366:spirv.sampled_image> = spirv.sampled_image %364, %365 %367:f32 = convert 0i %368:vec3 = construct %tc, %367 %369:vec4 = spirv.image_sample_explicit_lod %366, %368, 2u, %level %370:vec4 = load %a %371:vec4 = add %370, %369 store %a, %371 %372:texture_2d_array = load %image_2d_array %373:sampler = load %sampler_reg %374:spirv.sampled_image> = spirv.sampled_image %372, %373 %375:f32 = convert 0i %376:vec3 = construct %tc, %375 %377:vec4 = spirv.image_sample_explicit_lod %374, %376, 10u, %level, vec2(3i, 1i) %378:vec4 = load %a %379:vec4 = add %378, %377 store %a, %379 %380:texture_2d_array = load %image_2d_array %381:sampler = load %sampler_reg %382:spirv.sampled_image> = spirv.sampled_image %380, %381 %383:f32 = convert 0i %384:vec3 = construct %tc, %383 %385:vec4 = spirv.image_sample_implicit_lod %382, %384, 9u, 2.0f, vec2(3i, 1i) %386:vec4 = load %a %387:vec4 = add %386, %385 store %a, %387 %388:texture_cube_array = load %image_cube_array %389:sampler = load %sampler_reg %390:spirv.sampled_image> = spirv.sampled_image %388, %389 %391:f32 = convert 0u %392:vec4 = construct %tc3, %391 %393:vec4 = spirv.image_sample_implicit_lod %390, %392, 0u %394:vec4 = load %a %395:vec4 = add %394, %393 store %a, %395 %396:texture_cube_array = load %image_cube_array %397:sampler = load %sampler_reg %398:spirv.sampled_image> = spirv.sampled_image %396, %397 %399:f32 = convert 0u %400:vec4 = construct %tc3, %399 %401:vec4 = spirv.image_sample_explicit_lod %398, %400, 2u, %level %402:vec4 = load %a %403:vec4 = add %402, %401 store %a, %403 %404:texture_cube_array = load %image_cube_array %405:sampler = load %sampler_reg %406:spirv.sampled_image> = spirv.sampled_image %404, %405 %407:f32 = convert 0u %408:vec4 = construct %tc3, %407 %409:vec4 = spirv.image_sample_implicit_lod %406, %408, 1u, 2.0f %410:vec4 = load %a %411:vec4 = add %410, %409 store %a, %411 %412:texture_cube_array = load %image_cube_array %413:sampler = load %sampler_reg %414:spirv.sampled_image> = spirv.sampled_image %412, %413 %415:f32 = convert 0i %416:vec4 = construct %tc3, %415 %417:vec4 = spirv.image_sample_implicit_lod %414, %416, 0u %418:vec4 = load %a %419:vec4 = add %418, %417 store %a, %419 %420:texture_cube_array = load %image_cube_array %421:sampler = load %sampler_reg %422:spirv.sampled_image> = spirv.sampled_image %420, %421 %423:f32 = convert 0i %424:vec4 = construct %tc3, %423 %425:vec4 = spirv.image_sample_explicit_lod %422, %424, 2u, %level %426:vec4 = load %a %427:vec4 = add %426, %425 store %a, %427 %428:texture_cube_array = load %image_cube_array %429:sampler = load %sampler_reg %430:spirv.sampled_image> = spirv.sampled_image %428, %429 %431:f32 = convert 0i %432:vec4 = construct %tc3, %431 %433:vec4 = spirv.image_sample_implicit_lod %430, %432, 1u, 2.0f %434:vec4 = load %a %435:vec4 = add %434, %433 store %a, %435 %436:vec4 = load %a ret %436 } } %texture_sample_comparison_inner = func():f32 { $B7: { %tc_1:vec2 = let vec2(0.5f) # %tc_1: 'tc' %tc3_1:vec3 = let vec3(0.5f) # %tc3_1: 'tc3' %dref:f32 = let 0.5f %a_1:ptr = var # %a_1: 'a' %442:texture_depth_2d = load %image_2d_depth %443:sampler_comparison = load %sampler_cmp %444:spirv.sampled_image = spirv.sampled_image %442, %443 %445:f32 = spirv.image_sample_dref_implicit_lod %444, %tc_1, %dref, 0u %446:f32 = load %a_1 %447:f32 = add %446, %445 store %a_1, %447 %448:texture_depth_2d_array = load %image_2d_array_depth %449:sampler_comparison = load %sampler_cmp %450:spirv.sampled_image = spirv.sampled_image %448, %449 %451:f32 = convert 0u %452:vec3 = construct %tc_1, %451 %453:f32 = spirv.image_sample_dref_implicit_lod %450, %452, %dref, 0u %454:f32 = load %a_1 %455:f32 = add %454, %453 store %a_1, %455 %456:texture_depth_2d_array = load %image_2d_array_depth %457:sampler_comparison = load %sampler_cmp %458:spirv.sampled_image = spirv.sampled_image %456, %457 %459:f32 = convert 0i %460:vec3 = construct %tc_1, %459 %461:f32 = spirv.image_sample_dref_implicit_lod %458, %460, %dref, 0u %462:f32 = load %a_1 %463:f32 = add %462, %461 store %a_1, %463 %464:texture_depth_cube = load %image_cube_depth %465:sampler_comparison = load %sampler_cmp %466:spirv.sampled_image = spirv.sampled_image %464, %465 %467:f32 = spirv.image_sample_dref_implicit_lod %466, %tc3_1, %dref, 0u %468:f32 = load %a_1 %469:f32 = add %468, %467 store %a_1, %469 %470:texture_depth_2d = load %image_2d_depth %471:sampler_comparison = load %sampler_cmp %472:spirv.sampled_image = spirv.sampled_image %470, %471 %473:f32 = spirv.image_sample_dref_explicit_lod %472, %tc_1, %dref, 2u, 0.0f %474:f32 = load %a_1 %475:f32 = add %474, %473 store %a_1, %475 %476:texture_depth_2d_array = load %image_2d_array_depth %477:sampler_comparison = load %sampler_cmp %478:spirv.sampled_image = spirv.sampled_image %476, %477 %479:f32 = convert 0u %480:vec3 = construct %tc_1, %479 %481:f32 = spirv.image_sample_dref_explicit_lod %478, %480, %dref, 2u, 0.0f %482:f32 = load %a_1 %483:f32 = add %482, %481 store %a_1, %483 %484:texture_depth_2d_array = load %image_2d_array_depth %485:sampler_comparison = load %sampler_cmp %486:spirv.sampled_image = spirv.sampled_image %484, %485 %487:f32 = convert 0i %488:vec3 = construct %tc_1, %487 %489:f32 = spirv.image_sample_dref_explicit_lod %486, %488, %dref, 2u, 0.0f %490:f32 = load %a_1 %491:f32 = add %490, %489 store %a_1, %491 %492:texture_depth_cube = load %image_cube_depth %493:sampler_comparison = load %sampler_cmp %494:spirv.sampled_image = spirv.sampled_image %492, %493 %495:f32 = spirv.image_sample_dref_explicit_lod %494, %tc3_1, %dref, 2u, 0.0f %496:f32 = load %a_1 %497:f32 = add %496, %495 store %a_1, %497 %498:f32 = load %a_1 ret %498 } } %gather_inner = func():vec4 { $B8: { %tc_2:vec2 = let vec2(0.5f) # %tc_2: 'tc' %dref_1:f32 = let 0.5f # %dref_1: 'dref' %502:texture_2d = load %image_2d %503:sampler = load %sampler_reg %504:spirv.sampled_image> = spirv.sampled_image %502, %503 %505:vec4 = spirv.image_gather %504, %tc_2, 1i, 0u %s2d:vec4 = let %505 %507:texture_2d = load %image_2d %508:sampler = load %sampler_reg %509:spirv.sampled_image> = spirv.sampled_image %507, %508 %510:vec4 = spirv.image_gather %509, %tc_2, 3i, 8u, vec2(3i, 1i) %s2d_offset:vec4 = let %510 %512:texture_depth_2d = load %image_2d_depth %513:sampler_comparison = load %sampler_cmp %514:spirv.sampled_image = spirv.sampled_image %512, %513 %515:vec4 = spirv.image_dref_gather %514, %tc_2, %dref_1, 0u %s2d_depth:vec4 = let %515 %517:texture_depth_2d = load %image_2d_depth %518:sampler_comparison = load %sampler_cmp %519:spirv.sampled_image = spirv.sampled_image %517, %518 %520:vec4 = spirv.image_dref_gather %519, %tc_2, %dref_1, 8u, vec2(3i, 1i) %s2d_depth_offset:vec4 = let %520 %522:texture_2d = load %image_2d_u32 %523:sampler = load %sampler_reg %524:spirv.sampled_image> = spirv.sampled_image %522, %523 %525:vec4 = spirv.image_gather %524, %tc_2, 0i, 0u %u:vec4 = let %525 %527:texture_2d = load %image_2d_i32 %528:sampler = load %sampler_reg %529:spirv.sampled_image> = spirv.sampled_image %527, %528 %530:vec4 = spirv.image_gather %529, %tc_2, 0i, 0u %i:vec4 = let %530 %532:vec4 = convert %u %533:vec4 = convert %i %534:vec4 = add %532, %533 %f:vec4 = let %534 %536:vec4 = add %s2d, %s2d_offset %537:vec4 = add %536, %s2d_depth %538:vec4 = add %537, %s2d_depth_offset %539:vec4 = add %538, %f ret %539 } } %depth_no_comparison_inner = func():vec4 { $B9: { %tc_3:vec2 = let vec2(0.5f) # %tc_3: 'tc' %542:texture_depth_2d = load %image_2d_depth %543:sampler = load %sampler_reg %544:spirv.sampled_image = spirv.sampled_image %542, %543 %545:vec4 = spirv.image_sample_implicit_lod %544, %tc_3, 0u %546:f32 = access %545, 0u %s2d_1:f32 = let %546 # %s2d_1: 's2d' %548:texture_depth_2d = load %image_2d_depth %549:sampler = load %sampler_reg %550:spirv.sampled_image = spirv.sampled_image %548, %549 %551:vec4 = spirv.image_gather %550, %tc_3, 0u, 0u %s2d_gather:vec4 = let %551 %553:vec4 = construct %s2d_1, %s2d_1, %s2d_1, %s2d_1 %554:vec4 = add %553, %s2d_gather ret %554 } } %tint_f32_to_u32 = func(%value:f32):u32 { $B10: { %556:u32 = convert %value %557:bool = gte %value, 0.0f %558:u32 = spirv.select %557, %556, 0u %559:bool = lte %value, 4294967040.0f %560:u32 = spirv.select %559, %558, 4294967295u ret %560 } } %main = @compute @workgroup_size(16, 1, 1) func():void { $B11: { %562:vec3 = load %main_local_invocation_id_Input %563:void = call %main_inner, %562 ret } } %depth_load = @compute @workgroup_size(16, 1, 1) func():void { $B12: { %565:vec3 = load %depth_load_local_invocation_id_Input %566:void = call %depth_load_inner, %565 ret } } %queries = @vertex func():void { $B13: { %568:vec4 = call %queries_inner store %queries_position_Output, %568 store %queries___point_size_Output, 1.0f ret } } %levels_queries = @vertex func():void { $B14: { %570:vec4 = call %levels_queries_inner store %levels_queries_position_Output, %570 store %levels_queries___point_size_Output, 1.0f ret } } %texture_sample = @fragment func():void { $B15: { %572:vec4 = call %texture_sample_inner store %texture_sample_loc0_Output, %572 ret } } %texture_sample_comparison = @fragment func():void { $B16: { %574:f32 = call %texture_sample_comparison_inner store %texture_sample_comparison_loc0_Output, %574 ret } } %gather = @fragment func():void { $B17: { %576:vec4 = call %gather_inner store %gather_loc0_Output, %576 ret } } %depth_no_comparison = @fragment func():void { $B18: { %578:vec4 = call %depth_no_comparison_inner store %depth_no_comparison_loc0_Output, %578 ret } } Illegal instruction