mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-25 00:49:47 +00:00
160 lines
7.0 KiB
GLSL
160 lines
7.0 KiB
GLSL
|
; 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
|