120 lines
5.3 KiB
GLSL
120 lines
5.3 KiB
GLSL
; SPIR-V
|
|
; Version: 1.0
|
|
; Generator: Khronos Glslang Reference Front End; 10
|
|
; Bound: 59
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint Vertex %main "main" %_ %output_location_0 %output_location_2 %output_location_3
|
|
OpSource GLSL 450
|
|
OpName %main "main"
|
|
OpName %Foo "Struct_vec4"
|
|
OpMemberName %Foo 0 "m0"
|
|
OpName %c "c"
|
|
OpName %Foo_0 "Struct_vec4"
|
|
OpMemberName %Foo_0 0 "m0"
|
|
OpName %Bar "Struct_vec4"
|
|
OpMemberName %Bar 0 "m0"
|
|
OpName %UBO "UBO"
|
|
OpMemberName %UBO 0 "m0"
|
|
OpMemberName %UBO 1 "m1"
|
|
OpName %ubo_binding_0 "ubo_binding_0"
|
|
OpName %Bar_0 "Struct_vec4"
|
|
OpMemberName %Bar_0 0 "m0"
|
|
OpName %b "b"
|
|
OpName %gl_PerVertex "gl_PerVertex"
|
|
OpMemberName %gl_PerVertex 0 "gl_Position"
|
|
OpMemberName %gl_PerVertex 1 "gl_PointSize"
|
|
OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
|
|
OpMemberName %gl_PerVertex 3 "gl_CullDistance"
|
|
OpName %_ ""
|
|
OpName %VertexOut "VertexOut"
|
|
OpMemberName %VertexOut 0 "m0"
|
|
OpMemberName %VertexOut 1 "m1"
|
|
OpName %output_location_0 "output_location_0"
|
|
OpName %output_location_2 "output_location_2"
|
|
OpName %output_location_3 "output_location_3"
|
|
OpMemberDecorate %Foo_0 0 Offset 0
|
|
OpMemberDecorate %Bar 0 Offset 0
|
|
OpMemberDecorate %UBO 0 Offset 0
|
|
OpMemberDecorate %UBO 1 Offset 16
|
|
OpDecorate %UBO Block
|
|
OpDecorate %ubo_binding_0 DescriptorSet 0
|
|
OpDecorate %ubo_binding_0 Binding 0
|
|
OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
|
|
OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
|
|
OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
|
|
OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
|
|
OpDecorate %gl_PerVertex Block
|
|
OpDecorate %VertexOut Block
|
|
OpDecorate %output_location_0 Location 0
|
|
OpDecorate %output_location_2 Location 2
|
|
OpDecorate %output_location_3 Location 3
|
|
%void = OpTypeVoid
|
|
%3 = OpTypeFunction %void
|
|
%float = OpTypeFloat 32
|
|
%v4float = OpTypeVector %float 4
|
|
%Foo = OpTypeStruct %v4float
|
|
%_ptr_Function_Foo = OpTypePointer Function %Foo
|
|
%Foo_0 = OpTypeStruct %v4float
|
|
%Bar = OpTypeStruct %v4float
|
|
%UBO = OpTypeStruct %Foo_0 %Bar
|
|
%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO
|
|
%ubo_binding_0 = OpVariable %_ptr_Uniform_UBO Uniform
|
|
%int = OpTypeInt 32 1
|
|
%int_0 = OpConstant %int 0
|
|
%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0
|
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
|
%Bar_0 = OpTypeStruct %v4float
|
|
%_ptr_Function_Bar_0 = OpTypePointer Function %Bar_0
|
|
%int_1 = OpConstant %int 1
|
|
%_ptr_Uniform_Bar = OpTypePointer Uniform %Bar
|
|
%uint = OpTypeInt 32 0
|
|
%uint_1 = OpConstant %uint 1
|
|
%_arr_float_uint_1 = OpTypeArray %float %uint_1
|
|
%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
|
|
%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
|
|
%_ = OpVariable %_ptr_Output_gl_PerVertex Output
|
|
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
|
%VertexOut = OpTypeStruct %Foo %Bar_0
|
|
%_ptr_Output_VertexOut = OpTypePointer Output %VertexOut
|
|
%output_location_0 = OpVariable %_ptr_Output_VertexOut Output
|
|
%_ptr_Output_Foo = OpTypePointer Output %Foo
|
|
%_ptr_Output_Bar_0 = OpTypePointer Output %Bar_0
|
|
%output_location_2 = OpVariable %_ptr_Output_Foo Output
|
|
%output_location_3 = OpVariable %_ptr_Output_Bar_0 Output
|
|
%main = OpFunction %void None %3
|
|
%5 = OpLabel
|
|
%c = OpVariable %_ptr_Function_Foo Function
|
|
%b = OpVariable %_ptr_Function_Bar_0 Function
|
|
%19 = OpAccessChain %_ptr_Uniform_Foo_0 %ubo_binding_0 %int_0
|
|
%20 = OpLoad %Foo_0 %19
|
|
%21 = OpCompositeExtract %v4float %20 0
|
|
%23 = OpAccessChain %_ptr_Function_v4float %c %int_0
|
|
OpStore %23 %21
|
|
%29 = OpAccessChain %_ptr_Uniform_Bar %ubo_binding_0 %int_1
|
|
%30 = OpLoad %Bar %29
|
|
%31 = OpCompositeExtract %v4float %30 0
|
|
%32 = OpAccessChain %_ptr_Function_v4float %b %int_0
|
|
OpStore %32 %31
|
|
%39 = OpAccessChain %_ptr_Function_v4float %c %int_0
|
|
%40 = OpLoad %v4float %39
|
|
%41 = OpAccessChain %_ptr_Function_v4float %b %int_0
|
|
%42 = OpLoad %v4float %41
|
|
%43 = OpFAdd %v4float %40 %42
|
|
%45 = OpAccessChain %_ptr_Output_v4float %_ %int_0
|
|
OpStore %45 %43
|
|
%49 = OpLoad %Foo %c
|
|
%51 = OpAccessChain %_ptr_Output_Foo %output_location_0 %int_0
|
|
OpStore %51 %49
|
|
%52 = OpLoad %Bar_0 %b
|
|
%54 = OpAccessChain %_ptr_Output_Bar_0 %output_location_0 %int_1
|
|
OpStore %54 %52
|
|
%56 = OpLoad %Foo %c
|
|
OpStore %output_location_2 %56
|
|
%58 = OpLoad %Bar_0 %b
|
|
OpStore %output_location_3 %58
|
|
OpReturn
|
|
OpFunctionEnd
|