xemu/subprojects/SPIRV-Reflect/tests/multi_entrypoint/multi_entrypoint.spv.dis

122 lines
5.3 KiB
Plaintext

; SPIR-V
; Version: 1.0
; Generator: Google Shaderc over Glslang; 6
; Bound: 70
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %entry_vert_ "entry_vert" %_ %iUV %oUV %pos
OpEntryPoint Fragment %entry_frag_ "entry_frag" %iUV %colour
OpSource GLSL 450
OpSourceExtension "GL_GOOGLE_cpp_style_line_directive"
OpSourceExtension "GL_GOOGLE_include_directive"
OpName %getData_ "getData("
OpName %entry_vert_ "entry_vert("
OpName %entry_frag_ "entry_frag("
OpName %Ubo "Ubo"
OpMemberName %Ubo 0 "data"
OpName %ubo "ubo"
OpName %oUV "oUV"
OpName %iUV "iUV"
OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %gl_PerVertex 0 "gl_Position"
OpName %_ ""
OpName %pos "pos"
OpName %PushConstantVert "PushConstantVert"
OpMemberName %PushConstantVert 0 "val"
OpName %push_constant_vert "push_constant_vert"
OpName %PushConstantFrag "PushConstantFrag"
OpMemberName %PushConstantFrag 0 "val"
OpName %push_constant_frag "push_constant_frag"
OpName %colour "colour"
OpName %tex "tex"
OpMemberDecorate %Ubo 0 Offset 0
OpDecorate %Ubo Block
OpDecorate %ubo DescriptorSet 0
OpDecorate %ubo Binding 1
OpDecorate %oUV Location 0
OpDecorate %iUV Location 0
OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpDecorate %gl_PerVertex Block
OpDecorate %pos Location 1
OpMemberDecorate %PushConstantVert 0 Offset 0
OpDecorate %PushConstantVert Block
OpDecorate %colour Location 0
OpDecorate %tex DescriptorSet 0
OpDecorate %tex Binding 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%8 = OpTypeFunction %v4float
%Ubo = OpTypeStruct %v4float
%_ptr_Uniform_Ubo = OpTypePointer Uniform %Ubo
%ubo = OpVariable %_ptr_Uniform_Ubo Uniform
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%v2float = OpTypeVector %float 2
%_ptr_Output_v2float = OpTypePointer Output %v2float
%oUV = OpVariable %_ptr_Output_v2float Output
%_ptr_Input_v2float = OpTypePointer Input %v2float
%iUV = OpVariable %_ptr_Input_v2float Input
%gl_PerVertex = OpTypeStruct %v4float
%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
%_ = OpVariable %_ptr_Output_gl_PerVertex Output
%v3float = OpTypeVector %float 3
%_ptr_Input_v3float = OpTypePointer Input %v3float
%pos = OpVariable %_ptr_Input_v3float Input
%float_1 = OpConstant %float 1
%PushConstantVert = OpTypeStruct %float
%_ptr_PushConstant_PushConstantVert = OpTypePointer PushConstant %PushConstantVert
%push_constant_vert = OpVariable %_ptr_PushConstant_PushConstantVert PushConstant
%PushConstantFrag = OpTypeStruct %float
%_ptr_PushConstant_PushConstantFrag = OpTypePointer PushConstant %PushConstantFrag
%push_constant_frag = OpVariable %_ptr_PushConstant_PushConstantFrag PushConstant
%_ptr_PushConstant_float = OpTypePointer PushConstant %float
%_ptr_Output_v4float = OpTypePointer Output %v4float
%colour = OpVariable %_ptr_Output_v4float Output
%55 = OpTypeImage %float 2D 0 0 0 1 Unknown
%56 = OpTypeSampledImage %55
%_ptr_UniformConstant_56 = OpTypePointer UniformConstant %56
%tex = OpVariable %_ptr_UniformConstant_56 UniformConstant
%float_0 = OpConstant %float 0
%getData_ = OpFunction %v4float None %8
%10 = OpLabel
%21 = OpAccessChain %_ptr_Uniform_v4float %ubo %int_0
%22 = OpLoad %v4float %21
OpReturnValue %22
OpFunctionEnd
%entry_vert_ = OpFunction %void None %3
%12 = OpLabel
%30 = OpLoad %v2float %iUV
OpStore %oUV %30
%37 = OpLoad %v3float %pos
%39 = OpCompositeExtract %float %37 0
%40 = OpCompositeExtract %float %37 1
%41 = OpCompositeExtract %float %37 2
%42 = OpCompositeConstruct %v4float %39 %40 %41 %float_1
%47 = OpAccessChain %_ptr_PushConstant_float %push_constant_vert %int_0
%48 = OpLoad %float %47
%49 = OpVectorTimesScalar %v4float %42 %48
%50 = OpFunctionCall %v4float %getData_
%51 = OpFMul %v4float %49 %50
%53 = OpAccessChain %_ptr_Output_v4float %_ %int_0
OpStore %53 %51
OpReturn
OpFunctionEnd
%entry_frag_ = OpFunction %void None %3
%14 = OpLabel
%59 = OpLoad %56 %tex
%60 = OpLoad %v2float %iUV
%62 = OpImageSampleExplicitLod %v4float %59 %60 Lod %float_0
%63 = OpAccessChain %_ptr_PushConstant_float %push_constant_frag %int_0
%64 = OpLoad %float %63
%65 = OpVectorTimesScalar %v4float %62 %64
%66 = OpFunctionCall %v4float %getData_
%67 = OpFMul %v4float %65 %66
OpStore %colour %67
OpReturn
OpFunctionEnd