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