1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 7 4; Bound: 93 5; Schema: 0 6 OpCapability Shader 7 OpCapability ShaderNonUniformEXT 8 OpCapability RuntimeDescriptorArrayEXT 9 OpCapability UniformBufferArrayNonUniformIndexingEXT 10 OpCapability SampledImageArrayNonUniformIndexingEXT 11 OpCapability StorageBufferArrayNonUniformIndexingEXT 12 OpExtension "SPV_EXT_descriptor_indexing" 13 %1 = OpExtInstImport "GLSL.std.450" 14 OpMemoryModel Logical GLSL450 15 OpEntryPoint Fragment %main "main" %vIndex %FragColor %vUV 16 OpExecutionMode %main OriginUpperLeft 17 OpSource GLSL 450 18 OpSourceExtension "GL_EXT_nonuniform_qualifier" 19 OpName %main "main" 20 OpName %i "i" 21 OpName %vIndex "vIndex" 22 OpName %FragColor "FragColor" 23 OpName %uSamplers "uSamplers" 24 OpName %uSamps "uSamps" 25 OpName %vUV "vUV" 26 OpName %uCombinedSamplers "uCombinedSamplers" 27 OpName %UBO "UBO" 28 OpMemberName %UBO 0 "v" 29 OpName %ubos "ubos" 30 OpName %SSBO "SSBO" 31 OpMemberName %SSBO 0 "v" 32 OpName %ssbos "ssbos" 33 OpDecorate %vIndex Flat 34 OpDecorate %vIndex Location 0 35 OpDecorate %FragColor Location 0 36 OpDecorate %uSamplers DescriptorSet 0 37 OpDecorate %uSamplers Binding 0 38 39 OpDecorate %sampled_image NonUniformEXT 40 OpDecorate %combined_sampler NonUniformEXT 41 OpDecorate %ubo_ptr_copy NonUniformEXT 42 OpDecorate %ssbo_ptr_copy NonUniformEXT 43 44 OpDecorate %uSamps DescriptorSet 0 45 OpDecorate %uSamps Binding 1 46 OpDecorate %vUV Location 1 47 OpDecorate %uCombinedSamplers DescriptorSet 0 48 OpDecorate %uCombinedSamplers Binding 4 49 OpDecorate %_arr_v4float_uint_64 ArrayStride 16 50 OpMemberDecorate %UBO 0 Offset 0 51 OpDecorate %UBO Block 52 OpDecorate %ubos DescriptorSet 0 53 OpDecorate %ubos Binding 2 54 OpDecorate %_runtimearr_v4float ArrayStride 16 55 OpMemberDecorate %SSBO 0 NonWritable 56 OpMemberDecorate %SSBO 0 Offset 0 57 OpDecorate %SSBO BufferBlock 58 OpDecorate %ssbos DescriptorSet 0 59 OpDecorate %ssbos Binding 3 60 %void = OpTypeVoid 61 %3 = OpTypeFunction %void 62 %int = OpTypeInt 32 1 63%_ptr_Function_int = OpTypePointer Function %int 64%_ptr_Input_int = OpTypePointer Input %int 65 %vIndex = OpVariable %_ptr_Input_int Input 66 %float = OpTypeFloat 32 67 %v4float = OpTypeVector %float 4 68%_ptr_Output_v4float = OpTypePointer Output %v4float 69 %FragColor = OpVariable %_ptr_Output_v4float Output 70 %16 = OpTypeImage %float 2D 0 0 0 1 Unknown 71%_runtimearr_16 = OpTypeRuntimeArray %16 72%_ptr_UniformConstant__runtimearr_16 = OpTypePointer UniformConstant %_runtimearr_16 73 %uSamplers = OpVariable %_ptr_UniformConstant__runtimearr_16 UniformConstant 74 %int_10 = OpConstant %int 10 75%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16 76 %27 = OpTypeSampler 77%_runtimearr_27 = OpTypeRuntimeArray %27 78%_ptr_UniformConstant__runtimearr_27 = OpTypePointer UniformConstant %_runtimearr_27 79 %uSamps = OpVariable %_ptr_UniformConstant__runtimearr_27 UniformConstant 80 %int_40 = OpConstant %int 40 81%_ptr_UniformConstant_27 = OpTypePointer UniformConstant %27 82 %38 = OpTypeSampledImage %16 83 %v2float = OpTypeVector %float 2 84%_ptr_Input_v2float = OpTypePointer Input %v2float 85 %vUV = OpVariable %_ptr_Input_v2float Input 86%_runtimearr_38 = OpTypeRuntimeArray %38 87%_ptr_UniformConstant__runtimearr_38 = OpTypePointer UniformConstant %_runtimearr_38 88%uCombinedSamplers = OpVariable %_ptr_UniformConstant__runtimearr_38 UniformConstant 89%_ptr_UniformConstant_38 = OpTypePointer UniformConstant %38 90 %uint = OpTypeInt 32 0 91 %uint_64 = OpConstant %uint 64 92%_arr_v4float_uint_64 = OpTypeArray %v4float %uint_64 93 %UBO = OpTypeStruct %_arr_v4float_uint_64 94%_runtimearr_UBO = OpTypeRuntimeArray %UBO 95%_ptr_Uniform__runtimearr_UBO = OpTypePointer Uniform %_runtimearr_UBO 96 %ubos = OpVariable %_ptr_Uniform__runtimearr_UBO Uniform 97 %int_20 = OpConstant %int 20 98 %int_0 = OpConstant %int 0 99%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 100%_runtimearr_v4float = OpTypeRuntimeArray %v4float 101 %SSBO = OpTypeStruct %_runtimearr_v4float 102%_runtimearr_SSBO = OpTypeRuntimeArray %SSBO 103%_ptr_Uniform__runtimearr_SSBO = OpTypePointer Uniform %_runtimearr_SSBO 104 %ssbos = OpVariable %_ptr_Uniform__runtimearr_SSBO Uniform 105 %int_50 = OpConstant %int 50 106 %int_60 = OpConstant %int 60 107 %main = OpFunction %void None %3 108 %5 = OpLabel 109 %i = OpVariable %_ptr_Function_int Function 110 %11 = OpLoad %int %vIndex 111 OpStore %i %11 112 %20 = OpLoad %int %i 113 %22 = OpIAdd %int %20 %int_10 114 %23 = OpCopyObject %int %22 115 %25 = OpAccessChain %_ptr_UniformConstant_16 %uSamplers %23 116 %26 = OpLoad %16 %25 117 %31 = OpLoad %int %i 118 %33 = OpIAdd %int %31 %int_40 119 %34 = OpCopyObject %int %33 120 %36 = OpAccessChain %_ptr_UniformConstant_27 %uSamps %34 121 %37 = OpLoad %27 %36 122 %sampled_image = OpSampledImage %38 %26 %37 123 %43 = OpLoad %v2float %vUV 124 %44 = OpImageSampleImplicitLod %v4float %sampled_image %43 125 OpStore %FragColor %44 126 %48 = OpLoad %int %i 127 %49 = OpIAdd %int %48 %int_10 128 %50 = OpCopyObject %int %49 129 %52 = OpAccessChain %_ptr_UniformConstant_38 %uCombinedSamplers %50 130 %combined_sampler = OpLoad %38 %52 131 %54 = OpLoad %v2float %vUV 132 %55 = OpImageSampleImplicitLod %v4float %combined_sampler %54 133 OpStore %FragColor %55 134 %63 = OpLoad %int %i 135 %65 = OpIAdd %int %63 %int_20 136 %66 = OpCopyObject %int %65 137 %68 = OpLoad %int %i 138 %69 = OpIAdd %int %68 %int_40 139 %70 = OpCopyObject %int %69 140 %ubo_ptr = OpAccessChain %_ptr_Uniform_v4float %ubos %66 %int_0 %70 141 %ubo_ptr_copy = OpCopyObject %_ptr_Uniform_v4float %ubo_ptr 142 %73 = OpLoad %v4float %ubo_ptr_copy 143 %74 = OpLoad %v4float %FragColor 144 %75 = OpFAdd %v4float %74 %73 145 OpStore %FragColor %75 146 %81 = OpLoad %int %i 147 %83 = OpIAdd %int %81 %int_50 148 %84 = OpCopyObject %int %83 149 %85 = OpLoad %int %i 150 %87 = OpIAdd %int %85 %int_60 151 %88 = OpCopyObject %int %87 152 %ssbo_ptr = OpAccessChain %_ptr_Uniform_v4float %ssbos %84 %int_0 %88 153 %ssbo_ptr_copy = OpCopyObject %_ptr_Uniform_v4float %ssbo_ptr 154 %90 = OpLoad %v4float %ssbo_ptr_copy 155 %91 = OpLoad %v4float %FragColor 156 %92 = OpFAdd %v4float %91 %90 157 OpStore %FragColor %92 158 OpReturn 159 OpFunctionEnd 160