blob: 7cd16d79b03b878787d99567ae28bd55cdb119a8 [file] [edit]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 96
; Schema: 0
OpCapability Shader
OpCapability RuntimeDescriptorArray
OpExtension "SPV_EXT_descriptor_indexing"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %fs "fs" %fs_loc0_Output
OpExecutionMode %fs OriginUpperLeft
OpName %t "t"
OpMemberName %tint_resource_table_metadata_struct_tint_explicit_layout 0 "array_length"
OpMemberName %tint_resource_table_metadata_struct_tint_explicit_layout 1 "bindings"
OpName %tint_resource_table_metadata_struct_tint_explicit_layout "tint_resource_table_metadata_struct_tint_explicit_layout"
OpName %tint_resource_table_metadata "tint_resource_table_metadata"
OpName %fs_loc0_Output "fs_loc0_Output"
OpName %fs_inner "fs_inner"
OpName %tint_storage_metadata_length "tint_storage_metadata_length"
OpName %sampler_kind "sampler_kind"
OpName %use_sampler "use_sampler"
OpName %fs "fs"
OpDecorate %t DescriptorSet 0
OpDecorate %t Binding 0
OpDecorate %5 DescriptorSet 43
OpDecorate %5 Binding 51
OpDecorate %8 DescriptorSet 43
OpDecorate %8 Binding 51
OpDecorate %11 DescriptorSet 43
OpDecorate %11 Binding 51
OpMemberDecorate %tint_resource_table_metadata_struct_tint_explicit_layout 0 Offset 0
OpDecorate %_runtimearr_uint ArrayStride 4
OpMemberDecorate %tint_resource_table_metadata_struct_tint_explicit_layout 1 Offset 4
OpDecorate %tint_resource_table_metadata_struct_tint_explicit_layout Block
OpDecorate %tint_resource_table_metadata DescriptorSet 42
OpDecorate %tint_resource_table_metadata Binding 52
OpDecorate %tint_resource_table_metadata NonWritable
OpDecorate %fs_loc0_Output Location 0
%float = OpTypeFloat 32
%3 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
%t = OpVariable %_ptr_UniformConstant_3 UniformConstant
%_runtimearr_3 = OpTypeRuntimeArray %3
%_ptr_UniformConstant__runtimearr_3 = OpTypePointer UniformConstant %_runtimearr_3
%5 = OpVariable %_ptr_UniformConstant__runtimearr_3 UniformConstant
%_runtimearr_3_0 = OpTypeRuntimeArray %3
%_ptr_UniformConstant__runtimearr_3_0 = OpTypePointer UniformConstant %_runtimearr_3_0
%8 = OpVariable %_ptr_UniformConstant__runtimearr_3_0 UniformConstant
%14 = OpTypeSampler
%_runtimearr_14 = OpTypeRuntimeArray %14
%_ptr_UniformConstant__runtimearr_14 = OpTypePointer UniformConstant %_runtimearr_14
%11 = OpVariable %_ptr_UniformConstant__runtimearr_14 UniformConstant
%uint = OpTypeInt 32 0
%_runtimearr_uint = OpTypeRuntimeArray %uint
%tint_resource_table_metadata_struct_tint_explicit_layout = OpTypeStruct %uint %_runtimearr_uint
%_ptr_StorageBuffer_tint_resource_table_metadata_struct_tint_explicit_layout = OpTypePointer StorageBuffer %tint_resource_table_metadata_struct_tint_explicit_layout
%tint_resource_table_metadata = OpVariable %_ptr_StorageBuffer_tint_resource_table_metadata_struct_tint_explicit_layout StorageBuffer
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%fs_loc0_Output = OpVariable %_ptr_Output_v4float Output
%24 = OpTypeFunction %v4float
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%uint_0 = OpConstant %uint 0
%bool = OpTypeBool
%false = OpConstantFalse %bool
%uint_41 = OpConstant %uint 41
%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
%uint_40 = OpConstant %uint 40
%true = OpConstantTrue %bool
%uint_1 = OpConstant %uint 1
%v2uint = OpTypeVector %uint 2
%v2bool = OpTypeVector %bool 2
%uint_4 = OpConstant %uint 4
%82 = OpTypeSampledImage %3
%v2float = OpTypeVector %float 2
%83 = OpConstantNull %v2float
%void = OpTypeVoid
%93 = OpTypeFunction %void
%fs_inner = OpFunction %v4float None %24
%25 = OpLabel
%26 = OpBitcast %uint %int_0
%29 = OpLoad %3 %t None
%tint_storage_metadata_length = OpAccessChain %_ptr_StorageBuffer_uint %tint_resource_table_metadata %uint_0
%33 = OpLoad %uint %tint_storage_metadata_length None
%34 = OpULessThan %bool %26 %33
OpSelectionMerge %36 None
OpBranchConditional %34 %37 %38
%37 = OpLabel
%69 = OpAccessChain %_ptr_StorageBuffer_uint %tint_resource_table_metadata %uint_1 %26
%71 = OpLoad %uint %69 None
%73 = OpCompositeConstruct %v2uint %71 %71
%74 = OpCompositeConstruct %v2uint %uint_40 %uint_41
%75 = OpIEqual %v2bool %73 %74
%40 = OpAny %bool %75
OpBranch %36
%38 = OpLabel
OpBranch %36
%36 = OpLabel
%39 = OpPhi %bool %40 %37 %false %38
OpSelectionMerge %42 None
OpBranchConditional %39 %43 %44
%43 = OpLabel
%77 = OpAccessChain %_ptr_StorageBuffer_uint %tint_resource_table_metadata %uint_1 %26
%46 = OpLoad %uint %77 None
OpBranch %42
%44 = OpLabel
OpBranch %42
%42 = OpLabel
%sampler_kind = OpPhi %uint %46 %43 %uint_41 %44
OpSelectionMerge %48 None
OpBranchConditional %39 %49 %50
%49 = OpLabel
OpBranch %48
%50 = OpLabel
%78 = OpAccessChain %_ptr_StorageBuffer_uint %tint_resource_table_metadata %uint_0
%79 = OpLoad %uint %78 None
%52 = OpIAdd %uint %uint_4 %79
OpBranch %48
%48 = OpLabel
%51 = OpPhi %uint %26 %49 %52 %50
%53 = OpAccessChain %_ptr_UniformConstant_14 %11 %51
%55 = OpLoad %14 %53 None
%56 = OpIEqual %bool %sampler_kind %uint_40
OpSelectionMerge %58 None
OpBranchConditional %56 %59 %60
%59 = OpLabel
OpBranch %58
%60 = OpLabel
OpBranch %58
%58 = OpLabel
%use_sampler = OpPhi %bool %true %59 %true %60
OpSelectionMerge %63 None
OpBranchConditional %use_sampler %64 %65
%64 = OpLabel
%81 = OpSampledImage %82 %29 %55
%67 = OpImageSampleImplicitLod %v4float %81 %83 None
OpBranch %63
%65 = OpLabel
%85 = OpAccessChain %_ptr_StorageBuffer_uint %tint_resource_table_metadata %uint_0
%86 = OpLoad %uint %85 None
%87 = OpIAdd %uint %uint_4 %86
%88 = OpAccessChain %_ptr_UniformConstant_14 %11 %87
%89 = OpLoad %14 %88 None
%90 = OpSampledImage %82 %29 %89
%68 = OpImageSampleImplicitLod %v4float %90 %83 None
OpBranch %63
%63 = OpLabel
%66 = OpPhi %v4float %67 %64 %68 %65
OpReturnValue %66
OpFunctionEnd
%fs = OpFunction %void None %93
%94 = OpLabel
%95 = OpFunctionCall %v4float %fs_inner
OpStore %fs_loc0_Output %95 None
OpReturn
OpFunctionEnd