mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-09 21:47:47 +00:00
spirv: Use generic transform to process shader IO
The refactored CanonicalizeEntryPointIO transform makes it much easier to handle SPIR-V style IO as well, and doing this removes a lot of duplicated code. Remove all of the SPIR-V transform code for shader IO and vertex point size. Bug: tint:920 Change-Id: Id1b97517619b4d2fd09b45d5aee848259f3dfa77 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/60840 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: James Price <jrprice@google.com> Auto-Submit: James Price <jrprice@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
committed by
Tint LUCI CQ
parent
11e172ab64
commit
11c6fcdb51
@@ -1,22 +1,23 @@
|
||||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 279
|
||||
; Bound: 280
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
%40 = OpExtInstImport "GLSL.std.450"
|
||||
%37 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vert_main "vert_main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol %tint_symbol_4
|
||||
OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_7
|
||||
OpEntryPoint GLCompute %comp_main "comp_main" %tint_symbol_9
|
||||
OpEntryPoint Vertex %vert_main "vert_main" %a_particlePos_1 %a_particleVel_1 %a_pos_1 %value %vertex_point_size
|
||||
OpEntryPoint Fragment %frag_main "frag_main" %value_1
|
||||
OpEntryPoint GLCompute %comp_main "comp_main" %gl_GlobalInvocationID_1
|
||||
OpExecutionMode %frag_main OriginUpperLeft
|
||||
OpExecutionMode %comp_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %tint_symbol "tint_symbol"
|
||||
OpName %tint_symbol_1 "tint_symbol_1"
|
||||
OpName %tint_symbol_2 "tint_symbol_2"
|
||||
OpName %tint_symbol_4 "tint_symbol_4"
|
||||
OpName %tint_symbol_7 "tint_symbol_7"
|
||||
OpName %a_particlePos_1 "a_particlePos_1"
|
||||
OpName %a_particleVel_1 "a_particleVel_1"
|
||||
OpName %a_pos_1 "a_pos_1"
|
||||
OpName %value "value"
|
||||
OpName %vertex_point_size "vertex_point_size"
|
||||
OpName %value_1 "value_1"
|
||||
OpName %gl_GlobalInvocationID_1 "gl_GlobalInvocationID_1"
|
||||
OpName %SimParams "SimParams"
|
||||
OpMemberName %SimParams 0 "deltaT"
|
||||
OpMemberName %SimParams 1 "rule1Distance"
|
||||
@@ -33,16 +34,17 @@
|
||||
OpMemberName %Particle 1 "vel"
|
||||
OpName %particlesA "particlesA"
|
||||
OpName %particlesB "particlesB"
|
||||
OpName %tint_symbol_9 "tint_symbol_9"
|
||||
OpName %tint_symbol_5 "tint_symbol_5"
|
||||
OpName %tint_symbol_3 "tint_symbol_3"
|
||||
OpName %vert_main "vert_main"
|
||||
OpName %vert_main_inner "vert_main_inner"
|
||||
OpName %a_particlePos "a_particlePos"
|
||||
OpName %a_particleVel "a_particleVel"
|
||||
OpName %a_pos "a_pos"
|
||||
OpName %angle "angle"
|
||||
OpName %pos "pos"
|
||||
OpName %tint_symbol_8 "tint_symbol_8"
|
||||
OpName %tint_symbol_6 "tint_symbol_6"
|
||||
OpName %vert_main "vert_main"
|
||||
OpName %frag_main_inner "frag_main_inner"
|
||||
OpName %frag_main "frag_main"
|
||||
OpName %comp_main "comp_main"
|
||||
OpName %comp_main_inner "comp_main_inner"
|
||||
OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
|
||||
OpName %index "index"
|
||||
OpName %vPos "vPos"
|
||||
OpName %vVel "vVel"
|
||||
@@ -54,12 +56,14 @@
|
||||
OpName %pos_0 "pos"
|
||||
OpName %vel "vel"
|
||||
OpName %i "i"
|
||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
||||
OpDecorate %tint_symbol Location 0
|
||||
OpDecorate %tint_symbol_1 Location 1
|
||||
OpDecorate %tint_symbol_2 Location 2
|
||||
OpDecorate %tint_symbol_4 BuiltIn Position
|
||||
OpDecorate %tint_symbol_7 Location 0
|
||||
OpName %comp_main "comp_main"
|
||||
OpDecorate %a_particlePos_1 Location 0
|
||||
OpDecorate %a_particleVel_1 Location 1
|
||||
OpDecorate %a_pos_1 Location 2
|
||||
OpDecorate %value BuiltIn Position
|
||||
OpDecorate %vertex_point_size BuiltIn PointSize
|
||||
OpDecorate %value_1 Location 0
|
||||
OpDecorate %gl_GlobalInvocationID_1 BuiltIn GlobalInvocationId
|
||||
OpDecorate %SimParams Block
|
||||
OpMemberDecorate %SimParams 0 Offset 0
|
||||
OpMemberDecorate %SimParams 1 Offset 4
|
||||
@@ -80,57 +84,56 @@
|
||||
OpDecorate %particlesA DescriptorSet 0
|
||||
OpDecorate %particlesB Binding 2
|
||||
OpDecorate %particlesB DescriptorSet 0
|
||||
OpDecorate %tint_symbol_9 BuiltIn GlobalInvocationId
|
||||
%float = OpTypeFloat 32
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%4 = OpConstantNull %float
|
||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
||||
%v2float = OpTypeVector %float 2
|
||||
%_ptr_Input_v2float = OpTypePointer Input %v2float
|
||||
%tint_symbol = OpVariable %_ptr_Input_v2float Input
|
||||
%tint_symbol_1 = OpVariable %_ptr_Input_v2float Input
|
||||
%tint_symbol_2 = OpVariable %_ptr_Input_v2float Input
|
||||
%a_particlePos_1 = OpVariable %_ptr_Input_v2float Input
|
||||
%a_particleVel_1 = OpVariable %_ptr_Input_v2float Input
|
||||
%a_pos_1 = OpVariable %_ptr_Input_v2float Input
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%13 = OpConstantNull %v4float
|
||||
%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %13
|
||||
%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %13
|
||||
%10 = OpConstantNull %v4float
|
||||
%value = OpVariable %_ptr_Output_v4float Output %10
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%13 = OpConstantNull %float
|
||||
%vertex_point_size = OpVariable %_ptr_Output_float Output %13
|
||||
%value_1 = OpVariable %_ptr_Output_v4float Output %10
|
||||
%uint = OpTypeInt 32 0
|
||||
%v3uint = OpTypeVector %uint 3
|
||||
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
|
||||
%gl_GlobalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
|
||||
%SimParams = OpTypeStruct %float %float %float %float %float %float %float
|
||||
%_ptr_Uniform_SimParams = OpTypePointer Uniform %SimParams
|
||||
%params = OpVariable %_ptr_Uniform_SimParams Uniform
|
||||
%Particle = OpTypeStruct %v2float %v2float
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_5 = OpConstant %uint 5
|
||||
%_arr_Particle_uint_5 = OpTypeArray %Particle %uint_5
|
||||
%Particles = OpTypeStruct %_arr_Particle_uint_5
|
||||
%_ptr_StorageBuffer_Particles = OpTypePointer StorageBuffer %Particles
|
||||
%particlesA = OpVariable %_ptr_StorageBuffer_Particles StorageBuffer
|
||||
%particlesB = OpVariable %_ptr_StorageBuffer_Particles StorageBuffer
|
||||
%v3uint = OpTypeVector %uint 3
|
||||
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
|
||||
%tint_symbol_9 = OpVariable %_ptr_Input_v3uint Input
|
||||
%void = OpTypeVoid
|
||||
%29 = OpTypeFunction %void %v4float
|
||||
%34 = OpTypeFunction %void
|
||||
%float_1 = OpConstant %float 1
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Input_float = OpTypePointer Input %float
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%29 = OpTypeFunction %v4float %v2float %v2float %v2float
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||
%75 = OpConstantNull %v2float
|
||||
%63 = OpConstantNull %v2float
|
||||
%float_0 = OpConstant %float 0
|
||||
%90 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||
%float_1 = OpConstant %float 1
|
||||
%void = OpTypeVoid
|
||||
%71 = OpTypeFunction %void
|
||||
%79 = OpTypeFunction %v4float
|
||||
%82 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%86 = OpTypeFunction %void %v3uint
|
||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||
%98 = OpConstantNull %uint
|
||||
%93 = OpConstantNull %uint
|
||||
%bool = OpTypeBool
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float
|
||||
%113 = OpConstantComposite %v2float %float_0 %float_0
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%110 = OpConstantComposite %v2float %float_0 %float_0
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%_ptr_Function_int = OpTypePointer Function %int
|
||||
%121 = OpConstantNull %int
|
||||
%118 = OpConstantNull %int
|
||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||
%int_1 = OpConstant %int 1
|
||||
%uint_2 = OpConstant %uint 2
|
||||
@@ -139,306 +142,309 @@
|
||||
%uint_6 = OpConstant %uint 6
|
||||
%float_0_100000001 = OpConstant %float 0.100000001
|
||||
%float_n1 = OpConstant %float -1
|
||||
%tint_symbol_5 = OpFunction %void None %29
|
||||
%tint_symbol_3 = OpFunctionParameter %v4float
|
||||
%33 = OpLabel
|
||||
OpStore %tint_symbol_4 %tint_symbol_3
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vert_main = OpFunction %void None %34
|
||||
%36 = OpLabel
|
||||
%angle = OpVariable %_ptr_Function_float Function %4
|
||||
%pos = OpVariable %_ptr_Function_v2float Function %75
|
||||
OpStore %tint_pointsize %float_1
|
||||
%43 = OpAccessChain %_ptr_Input_float %tint_symbol_1 %uint_0
|
||||
%44 = OpLoad %float %43
|
||||
%46 = OpAccessChain %_ptr_Input_float %tint_symbol_1 %uint_1
|
||||
%47 = OpLoad %float %46
|
||||
%39 = OpExtInst %float %40 Atan2 %44 %47
|
||||
%38 = OpFNegate %float %39
|
||||
OpStore %angle %38
|
||||
%50 = OpAccessChain %_ptr_Input_float %tint_symbol_2 %uint_0
|
||||
%51 = OpLoad %float %50
|
||||
%vert_main_inner = OpFunction %v4float None %29
|
||||
%a_particlePos = OpFunctionParameter %v2float
|
||||
%a_particleVel = OpFunctionParameter %v2float
|
||||
%a_pos = OpFunctionParameter %v2float
|
||||
%34 = OpLabel
|
||||
%angle = OpVariable %_ptr_Function_float Function %13
|
||||
%pos = OpVariable %_ptr_Function_v2float Function %63
|
||||
%38 = OpCompositeExtract %float %a_particleVel 0
|
||||
%39 = OpCompositeExtract %float %a_particleVel 1
|
||||
%36 = OpExtInst %float %37 Atan2 %38 %39
|
||||
%35 = OpFNegate %float %36
|
||||
OpStore %angle %35
|
||||
%42 = OpCompositeExtract %float %a_pos 0
|
||||
%44 = OpLoad %float %angle
|
||||
%43 = OpExtInst %float %37 Cos %44
|
||||
%45 = OpFMul %float %42 %43
|
||||
%46 = OpCompositeExtract %float %a_pos 1
|
||||
%48 = OpLoad %float %angle
|
||||
%47 = OpExtInst %float %37 Sin %48
|
||||
%49 = OpFMul %float %46 %47
|
||||
%50 = OpFSub %float %45 %49
|
||||
%51 = OpCompositeExtract %float %a_pos 0
|
||||
%53 = OpLoad %float %angle
|
||||
%52 = OpExtInst %float %40 Cos %53
|
||||
%52 = OpExtInst %float %37 Sin %53
|
||||
%54 = OpFMul %float %51 %52
|
||||
%55 = OpAccessChain %_ptr_Input_float %tint_symbol_2 %uint_1
|
||||
%56 = OpLoad %float %55
|
||||
%58 = OpLoad %float %angle
|
||||
%57 = OpExtInst %float %40 Sin %58
|
||||
%59 = OpFMul %float %56 %57
|
||||
%60 = OpFSub %float %54 %59
|
||||
%61 = OpAccessChain %_ptr_Input_float %tint_symbol_2 %uint_0
|
||||
%62 = OpLoad %float %61
|
||||
%64 = OpLoad %float %angle
|
||||
%63 = OpExtInst %float %40 Sin %64
|
||||
%65 = OpFMul %float %62 %63
|
||||
%66 = OpAccessChain %_ptr_Input_float %tint_symbol_2 %uint_1
|
||||
%67 = OpLoad %float %66
|
||||
%69 = OpLoad %float %angle
|
||||
%68 = OpExtInst %float %40 Cos %69
|
||||
%70 = OpFMul %float %67 %68
|
||||
%71 = OpFAdd %float %65 %70
|
||||
%72 = OpCompositeConstruct %v2float %60 %71
|
||||
OpStore %pos %72
|
||||
%77 = OpLoad %v2float %pos
|
||||
%78 = OpLoad %v2float %tint_symbol
|
||||
%79 = OpFAdd %v2float %77 %78
|
||||
%80 = OpCompositeExtract %float %79 0
|
||||
%81 = OpCompositeExtract %float %79 1
|
||||
%83 = OpCompositeConstruct %v4float %80 %81 %float_0 %float_1
|
||||
%76 = OpFunctionCall %void %tint_symbol_5 %83
|
||||
%55 = OpCompositeExtract %float %a_pos 1
|
||||
%57 = OpLoad %float %angle
|
||||
%56 = OpExtInst %float %37 Cos %57
|
||||
%58 = OpFMul %float %55 %56
|
||||
%59 = OpFAdd %float %54 %58
|
||||
%60 = OpCompositeConstruct %v2float %50 %59
|
||||
OpStore %pos %60
|
||||
%64 = OpLoad %v2float %pos
|
||||
%65 = OpFAdd %v2float %64 %a_particlePos
|
||||
%66 = OpCompositeExtract %float %65 0
|
||||
%67 = OpCompositeExtract %float %65 1
|
||||
%70 = OpCompositeConstruct %v4float %66 %67 %float_0 %float_1
|
||||
OpReturnValue %70
|
||||
OpFunctionEnd
|
||||
%vert_main = OpFunction %void None %71
|
||||
%74 = OpLabel
|
||||
%76 = OpLoad %v2float %a_particlePos_1
|
||||
%77 = OpLoad %v2float %a_particleVel_1
|
||||
%78 = OpLoad %v2float %a_pos_1
|
||||
%75 = OpFunctionCall %v4float %vert_main_inner %76 %77 %78
|
||||
OpStore %value %75
|
||||
OpStore %vertex_point_size %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%tint_symbol_8 = OpFunction %void None %29
|
||||
%tint_symbol_6 = OpFunctionParameter %v4float
|
||||
%86 = OpLabel
|
||||
OpStore %tint_symbol_7 %tint_symbol_6
|
||||
%frag_main_inner = OpFunction %v4float None %79
|
||||
%81 = OpLabel
|
||||
OpReturnValue %82
|
||||
OpFunctionEnd
|
||||
%frag_main = OpFunction %void None %71
|
||||
%84 = OpLabel
|
||||
%85 = OpFunctionCall %v4float %frag_main_inner
|
||||
OpStore %value_1 %85
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%frag_main = OpFunction %void None %34
|
||||
%88 = OpLabel
|
||||
%89 = OpFunctionCall %void %tint_symbol_8 %90
|
||||
%comp_main_inner = OpFunction %void None %86
|
||||
%gl_GlobalInvocationID = OpFunctionParameter %v3uint
|
||||
%89 = OpLabel
|
||||
%index = OpVariable %_ptr_Function_uint Function %93
|
||||
%vPos = OpVariable %_ptr_Function_v2float Function %63
|
||||
%vVel = OpVariable %_ptr_Function_v2float Function %63
|
||||
%cMass = OpVariable %_ptr_Function_v2float Function %63
|
||||
%cVel = OpVariable %_ptr_Function_v2float Function %63
|
||||
%colVel = OpVariable %_ptr_Function_v2float Function %63
|
||||
%cMassCount = OpVariable %_ptr_Function_int Function %118
|
||||
%cVelCount = OpVariable %_ptr_Function_int Function %118
|
||||
%pos_0 = OpVariable %_ptr_Function_v2float Function %63
|
||||
%vel = OpVariable %_ptr_Function_v2float Function %63
|
||||
%i = OpVariable %_ptr_Function_uint Function %93
|
||||
%90 = OpCompositeExtract %uint %gl_GlobalInvocationID 0
|
||||
OpStore %index %90
|
||||
%94 = OpLoad %uint %index
|
||||
%95 = OpUGreaterThanEqual %bool %94 %uint_5
|
||||
OpSelectionMerge %97 None
|
||||
OpBranchConditional %95 %98 %97
|
||||
%98 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%comp_main = OpFunction %void None %34
|
||||
%92 = OpLabel
|
||||
%index = OpVariable %_ptr_Function_uint Function %98
|
||||
%vPos = OpVariable %_ptr_Function_v2float Function %75
|
||||
%vVel = OpVariable %_ptr_Function_v2float Function %75
|
||||
%cMass = OpVariable %_ptr_Function_v2float Function %75
|
||||
%cVel = OpVariable %_ptr_Function_v2float Function %75
|
||||
%colVel = OpVariable %_ptr_Function_v2float Function %75
|
||||
%cMassCount = OpVariable %_ptr_Function_int Function %121
|
||||
%cVelCount = OpVariable %_ptr_Function_int Function %121
|
||||
%pos_0 = OpVariable %_ptr_Function_v2float Function %75
|
||||
%vel = OpVariable %_ptr_Function_v2float Function %75
|
||||
%i = OpVariable %_ptr_Function_uint Function %98
|
||||
%94 = OpAccessChain %_ptr_Input_uint %tint_symbol_9 %uint_0
|
||||
%95 = OpLoad %uint %94
|
||||
OpStore %index %95
|
||||
%99 = OpLoad %uint %index
|
||||
%100 = OpUGreaterThanEqual %bool %99 %uint_5
|
||||
OpSelectionMerge %102 None
|
||||
OpBranchConditional %100 %103 %102
|
||||
%103 = OpLabel
|
||||
OpReturn
|
||||
%102 = OpLabel
|
||||
%104 = OpLoad %uint %index
|
||||
%106 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %104 %uint_0
|
||||
%107 = OpLoad %v2float %106
|
||||
OpStore %vPos %107
|
||||
%109 = OpLoad %uint %index
|
||||
%110 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %109 %uint_1
|
||||
%111 = OpLoad %v2float %110
|
||||
OpStore %vVel %111
|
||||
OpStore %cMass %113
|
||||
OpStore %cVel %113
|
||||
OpStore %colVel %113
|
||||
%97 = OpLabel
|
||||
%100 = OpLoad %uint %index
|
||||
%102 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %100 %uint_0
|
||||
%103 = OpLoad %v2float %102
|
||||
OpStore %vPos %103
|
||||
%105 = OpLoad %uint %index
|
||||
%107 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %105 %uint_1
|
||||
%108 = OpLoad %v2float %107
|
||||
OpStore %vVel %108
|
||||
OpStore %cMass %110
|
||||
OpStore %cVel %110
|
||||
OpStore %colVel %110
|
||||
OpStore %cMassCount %int_0
|
||||
OpStore %cVelCount %int_0
|
||||
OpStore %i %uint_0
|
||||
OpBranch %123
|
||||
%123 = OpLabel
|
||||
OpLoopMerge %124 %125 None
|
||||
OpBranch %126
|
||||
%126 = OpLabel
|
||||
OpLoopMerge %127 %128 None
|
||||
OpBranch %129
|
||||
%129 = OpLabel
|
||||
%131 = OpLoad %uint %i
|
||||
%132 = OpULessThan %bool %131 %uint_5
|
||||
%130 = OpLogicalNot %bool %132
|
||||
OpSelectionMerge %133 None
|
||||
OpBranchConditional %130 %134 %133
|
||||
%134 = OpLabel
|
||||
OpBranch %127
|
||||
%133 = OpLabel
|
||||
%135 = OpLoad %uint %i
|
||||
%136 = OpLoad %uint %index
|
||||
%137 = OpIEqual %bool %135 %136
|
||||
OpSelectionMerge %138 None
|
||||
OpBranchConditional %137 %139 %138
|
||||
%139 = OpLabel
|
||||
OpBranch %128
|
||||
%138 = OpLabel
|
||||
%140 = OpLoad %uint %i
|
||||
%141 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %140 %uint_0
|
||||
%142 = OpLoad %v2float %141
|
||||
%143 = OpVectorShuffle %v2float %142 %142 0 1
|
||||
OpStore %pos_0 %143
|
||||
%144 = OpLoad %uint %i
|
||||
%145 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %144 %uint_1
|
||||
%146 = OpLoad %v2float %145
|
||||
%147 = OpVectorShuffle %v2float %146 %146 0 1
|
||||
OpStore %vel %147
|
||||
%149 = OpLoad %v2float %pos_0
|
||||
%150 = OpLoad %v2float %vPos
|
||||
%148 = OpExtInst %float %40 Distance %149 %150
|
||||
%152 = OpAccessChain %_ptr_Uniform_float %params %uint_1
|
||||
%153 = OpLoad %float %152
|
||||
%154 = OpFOrdLessThan %bool %148 %153
|
||||
OpSelectionMerge %155 None
|
||||
OpBranchConditional %154 %156 %155
|
||||
%156 = OpLabel
|
||||
%157 = OpLoad %v2float %cMass
|
||||
%158 = OpLoad %v2float %pos_0
|
||||
%159 = OpFAdd %v2float %157 %158
|
||||
OpStore %cMass %159
|
||||
%160 = OpLoad %int %cMassCount
|
||||
%162 = OpIAdd %int %160 %int_1
|
||||
OpStore %cMassCount %162
|
||||
OpBranch %155
|
||||
%155 = OpLabel
|
||||
%164 = OpLoad %v2float %pos_0
|
||||
%165 = OpLoad %v2float %vPos
|
||||
%163 = OpExtInst %float %40 Distance %164 %165
|
||||
%167 = OpAccessChain %_ptr_Uniform_float %params %uint_2
|
||||
%168 = OpLoad %float %167
|
||||
%169 = OpFOrdLessThan %bool %163 %168
|
||||
OpSelectionMerge %170 None
|
||||
OpBranchConditional %169 %171 %170
|
||||
%171 = OpLabel
|
||||
%172 = OpLoad %v2float %colVel
|
||||
%173 = OpLoad %v2float %pos_0
|
||||
%174 = OpLoad %v2float %vPos
|
||||
%175 = OpFSub %v2float %173 %174
|
||||
%176 = OpFSub %v2float %172 %175
|
||||
OpStore %colVel %176
|
||||
OpBranch %170
|
||||
%170 = OpLabel
|
||||
%178 = OpLoad %v2float %pos_0
|
||||
%179 = OpLoad %v2float %vPos
|
||||
%177 = OpExtInst %float %40 Distance %178 %179
|
||||
%181 = OpAccessChain %_ptr_Uniform_float %params %uint_3
|
||||
%182 = OpLoad %float %181
|
||||
%183 = OpFOrdLessThan %bool %177 %182
|
||||
OpSelectionMerge %184 None
|
||||
OpBranchConditional %183 %185 %184
|
||||
%185 = OpLabel
|
||||
%186 = OpLoad %v2float %cVel
|
||||
%187 = OpLoad %v2float %vel
|
||||
%188 = OpFAdd %v2float %186 %187
|
||||
OpStore %cVel %188
|
||||
%189 = OpLoad %int %cVelCount
|
||||
%190 = OpIAdd %int %189 %int_1
|
||||
OpStore %cVelCount %190
|
||||
OpBranch %184
|
||||
%184 = OpLabel
|
||||
OpBranch %128
|
||||
%128 = OpLabel
|
||||
%191 = OpLoad %uint %i
|
||||
%192 = OpIAdd %uint %191 %uint_1
|
||||
OpStore %i %192
|
||||
OpBranch %126
|
||||
%127 = OpLabel
|
||||
%193 = OpLoad %int %cMassCount
|
||||
%194 = OpSGreaterThan %bool %193 %int_0
|
||||
OpSelectionMerge %195 None
|
||||
OpBranchConditional %194 %196 %195
|
||||
%196 = OpLabel
|
||||
%197 = OpLoad %v2float %cMass
|
||||
%199 = OpLoad %int %cMassCount
|
||||
%198 = OpConvertSToF %float %199
|
||||
%201 = OpLoad %int %cMassCount
|
||||
%200 = OpConvertSToF %float %201
|
||||
%202 = OpCompositeConstruct %v2float %198 %200
|
||||
%203 = OpFDiv %v2float %197 %202
|
||||
%204 = OpLoad %v2float %vPos
|
||||
%205 = OpFSub %v2float %203 %204
|
||||
OpStore %cMass %205
|
||||
OpBranch %195
|
||||
%195 = OpLabel
|
||||
%206 = OpLoad %int %cVelCount
|
||||
%207 = OpSGreaterThan %bool %206 %int_0
|
||||
OpSelectionMerge %208 None
|
||||
OpBranchConditional %207 %209 %208
|
||||
%209 = OpLabel
|
||||
%210 = OpLoad %v2float %cVel
|
||||
%212 = OpLoad %int %cVelCount
|
||||
%211 = OpConvertSToF %float %212
|
||||
%214 = OpLoad %int %cVelCount
|
||||
%213 = OpConvertSToF %float %214
|
||||
%215 = OpCompositeConstruct %v2float %211 %213
|
||||
%216 = OpFDiv %v2float %210 %215
|
||||
OpStore %cVel %216
|
||||
OpBranch %208
|
||||
%208 = OpLabel
|
||||
%217 = OpLoad %v2float %vVel
|
||||
%218 = OpLoad %v2float %cMass
|
||||
%220 = OpAccessChain %_ptr_Uniform_float %params %uint_4
|
||||
%221 = OpLoad %float %220
|
||||
%222 = OpVectorTimesScalar %v2float %218 %221
|
||||
%223 = OpFAdd %v2float %217 %222
|
||||
%224 = OpLoad %v2float %colVel
|
||||
%225 = OpAccessChain %_ptr_Uniform_float %params %uint_5
|
||||
%226 = OpLoad %float %225
|
||||
%227 = OpVectorTimesScalar %v2float %224 %226
|
||||
%228 = OpFAdd %v2float %223 %227
|
||||
%229 = OpLoad %v2float %cVel
|
||||
%231 = OpAccessChain %_ptr_Uniform_float %params %uint_6
|
||||
%232 = OpLoad %float %231
|
||||
%233 = OpVectorTimesScalar %v2float %229 %232
|
||||
%234 = OpFAdd %v2float %228 %233
|
||||
OpStore %vVel %234
|
||||
%128 = OpLoad %uint %i
|
||||
%129 = OpULessThan %bool %128 %uint_5
|
||||
%127 = OpLogicalNot %bool %129
|
||||
OpSelectionMerge %130 None
|
||||
OpBranchConditional %127 %131 %130
|
||||
%131 = OpLabel
|
||||
OpBranch %124
|
||||
%130 = OpLabel
|
||||
%132 = OpLoad %uint %i
|
||||
%133 = OpLoad %uint %index
|
||||
%134 = OpIEqual %bool %132 %133
|
||||
OpSelectionMerge %135 None
|
||||
OpBranchConditional %134 %136 %135
|
||||
%136 = OpLabel
|
||||
OpBranch %125
|
||||
%135 = OpLabel
|
||||
%137 = OpLoad %uint %i
|
||||
%138 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %137 %uint_0
|
||||
%139 = OpLoad %v2float %138
|
||||
%140 = OpVectorShuffle %v2float %139 %139 0 1
|
||||
OpStore %pos_0 %140
|
||||
%141 = OpLoad %uint %i
|
||||
%142 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %141 %uint_1
|
||||
%143 = OpLoad %v2float %142
|
||||
%144 = OpVectorShuffle %v2float %143 %143 0 1
|
||||
OpStore %vel %144
|
||||
%146 = OpLoad %v2float %pos_0
|
||||
%147 = OpLoad %v2float %vPos
|
||||
%145 = OpExtInst %float %37 Distance %146 %147
|
||||
%149 = OpAccessChain %_ptr_Uniform_float %params %uint_1
|
||||
%150 = OpLoad %float %149
|
||||
%151 = OpFOrdLessThan %bool %145 %150
|
||||
OpSelectionMerge %152 None
|
||||
OpBranchConditional %151 %153 %152
|
||||
%153 = OpLabel
|
||||
%154 = OpLoad %v2float %cMass
|
||||
%155 = OpLoad %v2float %pos_0
|
||||
%156 = OpFAdd %v2float %154 %155
|
||||
OpStore %cMass %156
|
||||
%157 = OpLoad %int %cMassCount
|
||||
%159 = OpIAdd %int %157 %int_1
|
||||
OpStore %cMassCount %159
|
||||
OpBranch %152
|
||||
%152 = OpLabel
|
||||
%161 = OpLoad %v2float %pos_0
|
||||
%162 = OpLoad %v2float %vPos
|
||||
%160 = OpExtInst %float %37 Distance %161 %162
|
||||
%164 = OpAccessChain %_ptr_Uniform_float %params %uint_2
|
||||
%165 = OpLoad %float %164
|
||||
%166 = OpFOrdLessThan %bool %160 %165
|
||||
OpSelectionMerge %167 None
|
||||
OpBranchConditional %166 %168 %167
|
||||
%168 = OpLabel
|
||||
%169 = OpLoad %v2float %colVel
|
||||
%170 = OpLoad %v2float %pos_0
|
||||
%171 = OpLoad %v2float %vPos
|
||||
%172 = OpFSub %v2float %170 %171
|
||||
%173 = OpFSub %v2float %169 %172
|
||||
OpStore %colVel %173
|
||||
OpBranch %167
|
||||
%167 = OpLabel
|
||||
%175 = OpLoad %v2float %pos_0
|
||||
%176 = OpLoad %v2float %vPos
|
||||
%174 = OpExtInst %float %37 Distance %175 %176
|
||||
%178 = OpAccessChain %_ptr_Uniform_float %params %uint_3
|
||||
%179 = OpLoad %float %178
|
||||
%180 = OpFOrdLessThan %bool %174 %179
|
||||
OpSelectionMerge %181 None
|
||||
OpBranchConditional %180 %182 %181
|
||||
%182 = OpLabel
|
||||
%183 = OpLoad %v2float %cVel
|
||||
%184 = OpLoad %v2float %vel
|
||||
%185 = OpFAdd %v2float %183 %184
|
||||
OpStore %cVel %185
|
||||
%186 = OpLoad %int %cVelCount
|
||||
%187 = OpIAdd %int %186 %int_1
|
||||
OpStore %cVelCount %187
|
||||
OpBranch %181
|
||||
%181 = OpLabel
|
||||
OpBranch %125
|
||||
%125 = OpLabel
|
||||
%188 = OpLoad %uint %i
|
||||
%189 = OpIAdd %uint %188 %uint_1
|
||||
OpStore %i %189
|
||||
OpBranch %123
|
||||
%124 = OpLabel
|
||||
%190 = OpLoad %int %cMassCount
|
||||
%191 = OpSGreaterThan %bool %190 %int_0
|
||||
OpSelectionMerge %192 None
|
||||
OpBranchConditional %191 %193 %192
|
||||
%193 = OpLabel
|
||||
%194 = OpLoad %v2float %cMass
|
||||
%196 = OpLoad %int %cMassCount
|
||||
%195 = OpConvertSToF %float %196
|
||||
%198 = OpLoad %int %cMassCount
|
||||
%197 = OpConvertSToF %float %198
|
||||
%199 = OpCompositeConstruct %v2float %195 %197
|
||||
%200 = OpFDiv %v2float %194 %199
|
||||
%201 = OpLoad %v2float %vPos
|
||||
%202 = OpFSub %v2float %200 %201
|
||||
OpStore %cMass %202
|
||||
OpBranch %192
|
||||
%192 = OpLabel
|
||||
%203 = OpLoad %int %cVelCount
|
||||
%204 = OpSGreaterThan %bool %203 %int_0
|
||||
OpSelectionMerge %205 None
|
||||
OpBranchConditional %204 %206 %205
|
||||
%206 = OpLabel
|
||||
%207 = OpLoad %v2float %cVel
|
||||
%209 = OpLoad %int %cVelCount
|
||||
%208 = OpConvertSToF %float %209
|
||||
%211 = OpLoad %int %cVelCount
|
||||
%210 = OpConvertSToF %float %211
|
||||
%212 = OpCompositeConstruct %v2float %208 %210
|
||||
%213 = OpFDiv %v2float %207 %212
|
||||
OpStore %cVel %213
|
||||
OpBranch %205
|
||||
%205 = OpLabel
|
||||
%214 = OpLoad %v2float %vVel
|
||||
%215 = OpLoad %v2float %cMass
|
||||
%217 = OpAccessChain %_ptr_Uniform_float %params %uint_4
|
||||
%218 = OpLoad %float %217
|
||||
%219 = OpVectorTimesScalar %v2float %215 %218
|
||||
%220 = OpFAdd %v2float %214 %219
|
||||
%221 = OpLoad %v2float %colVel
|
||||
%222 = OpAccessChain %_ptr_Uniform_float %params %uint_5
|
||||
%223 = OpLoad %float %222
|
||||
%224 = OpVectorTimesScalar %v2float %221 %223
|
||||
%225 = OpFAdd %v2float %220 %224
|
||||
%226 = OpLoad %v2float %cVel
|
||||
%228 = OpAccessChain %_ptr_Uniform_float %params %uint_6
|
||||
%229 = OpLoad %float %228
|
||||
%230 = OpVectorTimesScalar %v2float %226 %229
|
||||
%231 = OpFAdd %v2float %225 %230
|
||||
OpStore %vVel %231
|
||||
%233 = OpLoad %v2float %vVel
|
||||
%232 = OpExtInst %v2float %37 Normalize %233
|
||||
%236 = OpLoad %v2float %vVel
|
||||
%235 = OpExtInst %v2float %40 Normalize %236
|
||||
%239 = OpLoad %v2float %vVel
|
||||
%238 = OpExtInst %float %40 Length %239
|
||||
%237 = OpExtInst %float %40 NClamp %238 %float_0 %float_0_100000001
|
||||
%241 = OpVectorTimesScalar %v2float %235 %237
|
||||
OpStore %vVel %241
|
||||
%242 = OpLoad %v2float %vPos
|
||||
%243 = OpLoad %v2float %vVel
|
||||
%244 = OpAccessChain %_ptr_Uniform_float %params %uint_0
|
||||
%245 = OpLoad %float %244
|
||||
%246 = OpVectorTimesScalar %v2float %243 %245
|
||||
%247 = OpFAdd %v2float %242 %246
|
||||
OpStore %vPos %247
|
||||
%248 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
||||
%249 = OpLoad %float %248
|
||||
%251 = OpFOrdLessThan %bool %249 %float_n1
|
||||
OpSelectionMerge %252 None
|
||||
OpBranchConditional %251 %253 %252
|
||||
%253 = OpLabel
|
||||
%254 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
||||
OpStore %254 %float_1
|
||||
OpBranch %252
|
||||
%252 = OpLabel
|
||||
%255 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
||||
%256 = OpLoad %float %255
|
||||
%257 = OpFOrdGreaterThan %bool %256 %float_1
|
||||
OpSelectionMerge %258 None
|
||||
OpBranchConditional %257 %259 %258
|
||||
%259 = OpLabel
|
||||
%260 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
||||
OpStore %260 %float_n1
|
||||
OpBranch %258
|
||||
%258 = OpLabel
|
||||
%261 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
||||
%262 = OpLoad %float %261
|
||||
%263 = OpFOrdLessThan %bool %262 %float_n1
|
||||
OpSelectionMerge %264 None
|
||||
OpBranchConditional %263 %265 %264
|
||||
%265 = OpLabel
|
||||
%266 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
||||
OpStore %266 %float_1
|
||||
OpBranch %264
|
||||
%264 = OpLabel
|
||||
%267 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
||||
%268 = OpLoad %float %267
|
||||
%269 = OpFOrdGreaterThan %bool %268 %float_1
|
||||
OpSelectionMerge %270 None
|
||||
OpBranchConditional %269 %271 %270
|
||||
%271 = OpLabel
|
||||
%272 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
||||
OpStore %272 %float_n1
|
||||
OpBranch %270
|
||||
%270 = OpLabel
|
||||
%235 = OpExtInst %float %37 Length %236
|
||||
%234 = OpExtInst %float %37 NClamp %235 %float_0 %float_0_100000001
|
||||
%238 = OpVectorTimesScalar %v2float %232 %234
|
||||
OpStore %vVel %238
|
||||
%239 = OpLoad %v2float %vPos
|
||||
%240 = OpLoad %v2float %vVel
|
||||
%241 = OpAccessChain %_ptr_Uniform_float %params %uint_0
|
||||
%242 = OpLoad %float %241
|
||||
%243 = OpVectorTimesScalar %v2float %240 %242
|
||||
%244 = OpFAdd %v2float %239 %243
|
||||
OpStore %vPos %244
|
||||
%245 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
||||
%246 = OpLoad %float %245
|
||||
%248 = OpFOrdLessThan %bool %246 %float_n1
|
||||
OpSelectionMerge %249 None
|
||||
OpBranchConditional %248 %250 %249
|
||||
%250 = OpLabel
|
||||
%251 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
||||
OpStore %251 %float_1
|
||||
OpBranch %249
|
||||
%249 = OpLabel
|
||||
%252 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
||||
%253 = OpLoad %float %252
|
||||
%254 = OpFOrdGreaterThan %bool %253 %float_1
|
||||
OpSelectionMerge %255 None
|
||||
OpBranchConditional %254 %256 %255
|
||||
%256 = OpLabel
|
||||
%257 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
||||
OpStore %257 %float_n1
|
||||
OpBranch %255
|
||||
%255 = OpLabel
|
||||
%258 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
||||
%259 = OpLoad %float %258
|
||||
%260 = OpFOrdLessThan %bool %259 %float_n1
|
||||
OpSelectionMerge %261 None
|
||||
OpBranchConditional %260 %262 %261
|
||||
%262 = OpLabel
|
||||
%263 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
||||
OpStore %263 %float_1
|
||||
OpBranch %261
|
||||
%261 = OpLabel
|
||||
%264 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
||||
%265 = OpLoad %float %264
|
||||
%266 = OpFOrdGreaterThan %bool %265 %float_1
|
||||
OpSelectionMerge %267 None
|
||||
OpBranchConditional %266 %268 %267
|
||||
%268 = OpLabel
|
||||
%269 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
||||
OpStore %269 %float_n1
|
||||
OpBranch %267
|
||||
%267 = OpLabel
|
||||
%270 = OpLoad %uint %index
|
||||
%271 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %270 %uint_0
|
||||
%272 = OpLoad %v2float %vPos
|
||||
OpStore %271 %272
|
||||
%273 = OpLoad %uint %index
|
||||
%274 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %273 %uint_0
|
||||
%275 = OpLoad %v2float %vPos
|
||||
%274 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %273 %uint_1
|
||||
%275 = OpLoad %v2float %vVel
|
||||
OpStore %274 %275
|
||||
%276 = OpLoad %uint %index
|
||||
%277 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %276 %uint_1
|
||||
%278 = OpLoad %v2float %vVel
|
||||
OpStore %277 %278
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%comp_main = OpFunction %void None %71
|
||||
%277 = OpLabel
|
||||
%279 = OpLoad %v3uint %gl_GlobalInvocationID_1
|
||||
%278 = OpFunctionCall %void %comp_main_inner %279
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
||||
@@ -5,33 +5,39 @@
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vtx_main "vtx_main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_4 %tint_symbol_5
|
||||
OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_7 %tint_symbol_9
|
||||
OpEntryPoint Vertex %vtx_main "vtx_main" %cur_position_1 %color_1 %vtxFragColor_1 %Position_1 %vertex_point_size
|
||||
OpEntryPoint Fragment %frag_main "frag_main" %fragColor_1 %value
|
||||
OpExecutionMode %frag_main OriginUpperLeft
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %cur_position_1 "cur_position_1"
|
||||
OpName %color_1 "color_1"
|
||||
OpName %vtxFragColor_1 "vtxFragColor_1"
|
||||
OpName %Position_1 "Position_1"
|
||||
OpName %vertex_point_size "vertex_point_size"
|
||||
OpName %fragColor_1 "fragColor_1"
|
||||
OpName %value "value"
|
||||
OpName %Uniforms "Uniforms"
|
||||
OpMemberName %Uniforms 0 "modelViewProjectionMatrix"
|
||||
OpName %uniforms "uniforms"
|
||||
OpName %tint_symbol "tint_symbol"
|
||||
OpName %tint_symbol_1 "tint_symbol_1"
|
||||
OpName %tint_symbol_4 "tint_symbol_4"
|
||||
OpName %tint_symbol_5 "tint_symbol_5"
|
||||
OpName %tint_symbol_7 "tint_symbol_7"
|
||||
OpName %tint_symbol_9 "tint_symbol_9"
|
||||
OpName %VertexOutput "VertexOutput"
|
||||
OpMemberName %VertexOutput 0 "vtxFragColor"
|
||||
OpMemberName %VertexOutput 1 "Position"
|
||||
OpName %tint_symbol_6 "tint_symbol_6"
|
||||
OpName %tint_symbol_3 "tint_symbol_3"
|
||||
OpName %vtx_main "vtx_main"
|
||||
OpName %VertexInput "VertexInput"
|
||||
OpMemberName %VertexInput 0 "cur_position"
|
||||
OpMemberName %VertexInput 1 "color"
|
||||
OpName %vtx_main_inner "vtx_main_inner"
|
||||
OpName %input "input"
|
||||
OpName %output "output"
|
||||
OpName %tint_symbol_10 "tint_symbol_10"
|
||||
OpName %tint_symbol_8 "tint_symbol_8"
|
||||
OpName %vtx_main "vtx_main"
|
||||
OpName %frag_main_inner "frag_main_inner"
|
||||
OpName %fragColor "fragColor"
|
||||
OpName %frag_main "frag_main"
|
||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
||||
OpDecorate %cur_position_1 Location 0
|
||||
OpDecorate %color_1 Location 1
|
||||
OpDecorate %vtxFragColor_1 Location 0
|
||||
OpDecorate %Position_1 BuiltIn Position
|
||||
OpDecorate %vertex_point_size BuiltIn PointSize
|
||||
OpDecorate %fragColor_1 Location 0
|
||||
OpDecorate %value Location 0
|
||||
OpDecorate %Uniforms Block
|
||||
OpMemberDecorate %Uniforms 0 Offset 0
|
||||
OpMemberDecorate %Uniforms 0 ColMajor
|
||||
@@ -39,86 +45,80 @@
|
||||
OpDecorate %uniforms NonWritable
|
||||
OpDecorate %uniforms Binding 0
|
||||
OpDecorate %uniforms DescriptorSet 0
|
||||
OpDecorate %tint_symbol Location 0
|
||||
OpDecorate %tint_symbol_1 Location 1
|
||||
OpDecorate %tint_symbol_4 Location 0
|
||||
OpDecorate %tint_symbol_5 BuiltIn Position
|
||||
OpDecorate %tint_symbol_7 Location 0
|
||||
OpDecorate %tint_symbol_9 Location 0
|
||||
OpMemberDecorate %VertexOutput 0 Offset 0
|
||||
OpMemberDecorate %VertexOutput 1 Offset 16
|
||||
OpMemberDecorate %VertexInput 0 Offset 0
|
||||
OpMemberDecorate %VertexInput 1 Offset 16
|
||||
%float = OpTypeFloat 32
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%4 = OpConstantNull %float
|
||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%cur_position_1 = OpVariable %_ptr_Input_v4float Input
|
||||
%color_1 = OpVariable %_ptr_Input_v4float Input
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%8 = OpConstantNull %v4float
|
||||
%vtxFragColor_1 = OpVariable %_ptr_Output_v4float Output %8
|
||||
%Position_1 = OpVariable %_ptr_Output_v4float Output %8
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%12 = OpConstantNull %float
|
||||
%vertex_point_size = OpVariable %_ptr_Output_float Output %12
|
||||
%fragColor_1 = OpVariable %_ptr_Input_v4float Input
|
||||
%value = OpVariable %_ptr_Output_v4float Output %8
|
||||
%mat4v4float = OpTypeMatrix %v4float 4
|
||||
%Uniforms = OpTypeStruct %mat4v4float
|
||||
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
|
||||
%uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%tint_symbol = OpVariable %_ptr_Input_v4float Input
|
||||
%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%15 = OpConstantNull %v4float
|
||||
%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %15
|
||||
%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %15
|
||||
%tint_symbol_7 = OpVariable %_ptr_Input_v4float Input
|
||||
%tint_symbol_9 = OpVariable %_ptr_Output_v4float Output %15
|
||||
%void = OpTypeVoid
|
||||
%VertexOutput = OpTypeStruct %v4float %v4float
|
||||
%19 = OpTypeFunction %void %VertexOutput
|
||||
%27 = OpTypeFunction %void
|
||||
%float_1 = OpConstant %float 1
|
||||
%VertexInput = OpTypeStruct %v4float %v4float
|
||||
%19 = OpTypeFunction %VertexOutput %VertexInput
|
||||
%_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput
|
||||
%37 = OpConstantNull %VertexOutput
|
||||
%27 = OpConstantNull %VertexOutput
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
|
||||
%52 = OpTypeFunction %void %v4float
|
||||
%tint_symbol_6 = OpFunction %void None %19
|
||||
%tint_symbol_3 = OpFunctionParameter %VertexOutput
|
||||
%void = OpTypeVoid
|
||||
%41 = OpTypeFunction %void
|
||||
%float_1 = OpConstant %float 1
|
||||
%52 = OpTypeFunction %v4float %v4float
|
||||
%vtx_main_inner = OpFunction %VertexOutput None %19
|
||||
%input = OpFunctionParameter %VertexInput
|
||||
%24 = OpLabel
|
||||
%25 = OpCompositeExtract %v4float %tint_symbol_3 0
|
||||
OpStore %tint_symbol_4 %25
|
||||
%26 = OpCompositeExtract %v4float %tint_symbol_3 1
|
||||
OpStore %tint_symbol_5 %26
|
||||
%output = OpVariable %_ptr_Function_VertexOutput Function %27
|
||||
%31 = OpAccessChain %_ptr_Function_v4float %output %uint_1
|
||||
%34 = OpAccessChain %_ptr_Uniform_mat4v4float %uniforms %uint_0
|
||||
%35 = OpLoad %mat4v4float %34
|
||||
%36 = OpCompositeExtract %v4float %input 0
|
||||
%37 = OpMatrixTimesVector %v4float %35 %36
|
||||
OpStore %31 %37
|
||||
%38 = OpAccessChain %_ptr_Function_v4float %output %uint_0
|
||||
%39 = OpCompositeExtract %v4float %input 1
|
||||
OpStore %38 %39
|
||||
%40 = OpLoad %VertexOutput %output
|
||||
OpReturnValue %40
|
||||
OpFunctionEnd
|
||||
%vtx_main = OpFunction %void None %41
|
||||
%44 = OpLabel
|
||||
%46 = OpLoad %v4float %cur_position_1
|
||||
%47 = OpLoad %v4float %color_1
|
||||
%48 = OpCompositeConstruct %VertexInput %46 %47
|
||||
%45 = OpFunctionCall %VertexOutput %vtx_main_inner %48
|
||||
%49 = OpCompositeExtract %v4float %45 0
|
||||
OpStore %vtxFragColor_1 %49
|
||||
%50 = OpCompositeExtract %v4float %45 1
|
||||
OpStore %Position_1 %50
|
||||
OpStore %vertex_point_size %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vtx_main = OpFunction %void None %27
|
||||
%29 = OpLabel
|
||||
%output = OpVariable %_ptr_Function_VertexOutput Function %37
|
||||
OpStore %tint_pointsize %float_1
|
||||
%32 = OpLoad %v4float %tint_symbol
|
||||
%33 = OpLoad %v4float %tint_symbol_1
|
||||
%34 = OpCompositeConstruct %VertexInput %32 %33
|
||||
%41 = OpAccessChain %_ptr_Function_v4float %output %uint_1
|
||||
%44 = OpAccessChain %_ptr_Uniform_mat4v4float %uniforms %uint_0
|
||||
%45 = OpLoad %mat4v4float %44
|
||||
%46 = OpCompositeExtract %v4float %34 0
|
||||
%47 = OpMatrixTimesVector %v4float %45 %46
|
||||
OpStore %41 %47
|
||||
%48 = OpAccessChain %_ptr_Function_v4float %output %uint_0
|
||||
%49 = OpCompositeExtract %v4float %34 1
|
||||
OpStore %48 %49
|
||||
%51 = OpLoad %VertexOutput %output
|
||||
%50 = OpFunctionCall %void %tint_symbol_6 %51
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%tint_symbol_10 = OpFunction %void None %52
|
||||
%tint_symbol_8 = OpFunctionParameter %v4float
|
||||
%frag_main_inner = OpFunction %v4float None %52
|
||||
%fragColor = OpFunctionParameter %v4float
|
||||
%55 = OpLabel
|
||||
OpStore %tint_symbol_9 %tint_symbol_8
|
||||
OpReturn
|
||||
OpReturnValue %fragColor
|
||||
OpFunctionEnd
|
||||
%frag_main = OpFunction %void None %27
|
||||
%frag_main = OpFunction %void None %41
|
||||
%57 = OpLabel
|
||||
%59 = OpLoad %v4float %tint_symbol_7
|
||||
%58 = OpFunctionCall %void %tint_symbol_10 %59
|
||||
%59 = OpLoad %v4float %fragColor_1
|
||||
%58 = OpFunctionCall %v4float %frag_main_inner %59
|
||||
OpStore %value %58
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
||||
@@ -1,49 +1,47 @@
|
||||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 26
|
||||
; Bound: 25
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %main "main" %tint_symbol_1
|
||||
OpEntryPoint Fragment %main "main" %value
|
||||
OpExecutionMode %main OriginUpperLeft
|
||||
OpName %tint_symbol_1 "tint_symbol_1"
|
||||
OpName %value "value"
|
||||
OpName %bar "bar"
|
||||
OpName %tint_symbol_2 "tint_symbol_2"
|
||||
OpName %tint_symbol "tint_symbol"
|
||||
OpName %main "main"
|
||||
OpName %main_inner "main_inner"
|
||||
OpName %a "a"
|
||||
OpDecorate %tint_symbol_1 Location 0
|
||||
OpName %main "main"
|
||||
OpDecorate %value Location 0
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5 = OpConstantNull %v4float
|
||||
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
|
||||
%value = OpVariable %_ptr_Output_v4float Output %5
|
||||
%void = OpTypeVoid
|
||||
%6 = OpTypeFunction %void
|
||||
%10 = OpTypeFunction %void %v4float
|
||||
%10 = OpTypeFunction %v4float
|
||||
%v2float = OpTypeVector %float 2
|
||||
%17 = OpConstantNull %v2float
|
||||
%14 = OpConstantNull %v2float
|
||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||
%float_0_400000006 = OpConstant %float 0.400000006
|
||||
%float_0_800000012 = OpConstant %float 0.800000012
|
||||
%float_1 = OpConstant %float 1
|
||||
%25 = OpConstantComposite %v4float %float_0_400000006 %float_0_400000006 %float_0_800000012 %float_1
|
||||
%21 = OpConstantComposite %v4float %float_0_400000006 %float_0_400000006 %float_0_800000012 %float_1
|
||||
%bar = OpFunction %void None %6
|
||||
%9 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%tint_symbol_2 = OpFunction %void None %10
|
||||
%tint_symbol = OpFunctionParameter %v4float
|
||||
%13 = OpLabel
|
||||
OpStore %tint_symbol_1 %tint_symbol
|
||||
OpReturn
|
||||
%main_inner = OpFunction %v4float None %10
|
||||
%12 = OpLabel
|
||||
%a = OpVariable %_ptr_Function_v2float Function %14
|
||||
OpStore %a %14
|
||||
%17 = OpFunctionCall %void %bar
|
||||
OpReturnValue %21
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %6
|
||||
%15 = OpLabel
|
||||
%a = OpVariable %_ptr_Function_v2float Function %17
|
||||
OpStore %a %17
|
||||
%20 = OpFunctionCall %void %bar
|
||||
%21 = OpFunctionCall %void %tint_symbol_2 %25
|
||||
%23 = OpLabel
|
||||
%24 = OpFunctionCall %v4float %main_inner
|
||||
OpStore %value %24
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
||||
@@ -1,58 +1,56 @@
|
||||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 30
|
||||
; Bound: 29
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
|
||||
OpName %gl_Position_1 "gl_Position_1"
|
||||
OpName %vertex_point_size "vertex_point_size"
|
||||
OpName %gl_Position "gl_Position"
|
||||
OpName %tint_symbol_1 "tint_symbol_1"
|
||||
OpName %main_1 "main_1"
|
||||
OpName %main_out "main_out"
|
||||
OpMemberName %main_out 0 "gl_Position"
|
||||
OpName %tint_symbol_2 "tint_symbol_2"
|
||||
OpName %tint_symbol "tint_symbol"
|
||||
OpName %main_inner "main_inner"
|
||||
OpName %main "main"
|
||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
||||
OpDecorate %tint_symbol_1 BuiltIn Position
|
||||
OpDecorate %gl_Position_1 BuiltIn Position
|
||||
OpDecorate %vertex_point_size BuiltIn PointSize
|
||||
OpMemberDecorate %main_out 0 Offset 0
|
||||
%float = OpTypeFloat 32
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%4 = OpConstantNull %float
|
||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Private_v4float = OpTypePointer Private %v4float
|
||||
%8 = OpConstantNull %v4float
|
||||
%gl_Position = OpVariable %_ptr_Private_v4float Private %8
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
|
||||
%5 = OpConstantNull %v4float
|
||||
%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%8 = OpConstantNull %float
|
||||
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
|
||||
%_ptr_Private_v4float = OpTypePointer Private %v4float
|
||||
%gl_Position = OpVariable %_ptr_Private_v4float Private %5
|
||||
%void = OpTypeVoid
|
||||
%11 = OpTypeFunction %void
|
||||
%float_0 = OpConstant %float 0
|
||||
%16 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%main_out = OpTypeStruct %v4float
|
||||
%17 = OpTypeFunction %void %main_out
|
||||
%17 = OpTypeFunction %main_out
|
||||
%float_1 = OpConstant %float 1
|
||||
%main_1 = OpFunction %void None %11
|
||||
%14 = OpLabel
|
||||
OpStore %gl_Position %16
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%tint_symbol_2 = OpFunction %void None %17
|
||||
%tint_symbol = OpFunctionParameter %main_out
|
||||
%21 = OpLabel
|
||||
%22 = OpCompositeExtract %v4float %tint_symbol 0
|
||||
OpStore %tint_symbol_1 %22
|
||||
OpReturn
|
||||
%main_inner = OpFunction %main_out None %17
|
||||
%20 = OpLabel
|
||||
%21 = OpFunctionCall %void %main_1
|
||||
%22 = OpLoad %v4float %gl_Position
|
||||
%23 = OpCompositeConstruct %main_out %22
|
||||
OpReturnValue %23
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %11
|
||||
%24 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%26 = OpFunctionCall %void %main_1
|
||||
%28 = OpLoad %v4float %gl_Position
|
||||
%29 = OpCompositeConstruct %main_out %28
|
||||
%27 = OpFunctionCall %void %tint_symbol_2 %29
|
||||
%25 = OpLabel
|
||||
%26 = OpFunctionCall %main_out %main_inner
|
||||
%27 = OpCompositeExtract %v4float %26 0
|
||||
OpStore %gl_Position_1 %27
|
||||
OpStore %vertex_point_size %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
||||
@@ -5,83 +5,82 @@
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vtx_main "vtx_main" %tint_pointsize %tint_symbol %tint_symbol_2
|
||||
OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_5
|
||||
OpEntryPoint Vertex %vtx_main "vtx_main" %VertexIndex_1 %value %vertex_point_size
|
||||
OpEntryPoint Fragment %frag_main "frag_main" %value_1
|
||||
OpExecutionMode %frag_main OriginUpperLeft
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %tint_symbol "tint_symbol"
|
||||
OpName %tint_symbol_2 "tint_symbol_2"
|
||||
OpName %tint_symbol_5 "tint_symbol_5"
|
||||
OpName %tint_symbol_3 "tint_symbol_3"
|
||||
OpName %tint_symbol_1 "tint_symbol_1"
|
||||
OpName %vtx_main "vtx_main"
|
||||
OpName %VertexIndex_1 "VertexIndex_1"
|
||||
OpName %value "value"
|
||||
OpName %vertex_point_size "vertex_point_size"
|
||||
OpName %value_1 "value_1"
|
||||
OpName %vtx_main_inner "vtx_main_inner"
|
||||
OpName %VertexIndex "VertexIndex"
|
||||
OpName %pos "pos"
|
||||
OpName %tint_symbol_6 "tint_symbol_6"
|
||||
OpName %tint_symbol_4 "tint_symbol_4"
|
||||
OpName %vtx_main "vtx_main"
|
||||
OpName %frag_main_inner "frag_main_inner"
|
||||
OpName %frag_main "frag_main"
|
||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
||||
OpDecorate %tint_symbol BuiltIn VertexIndex
|
||||
OpDecorate %tint_symbol_2 BuiltIn Position
|
||||
OpDecorate %tint_symbol_5 Location 0
|
||||
OpDecorate %VertexIndex_1 BuiltIn VertexIndex
|
||||
OpDecorate %value BuiltIn Position
|
||||
OpDecorate %vertex_point_size BuiltIn PointSize
|
||||
OpDecorate %value_1 Location 0
|
||||
OpDecorate %_arr_v2float_uint_3 ArrayStride 8
|
||||
%float = OpTypeFloat 32
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%4 = OpConstantNull %float
|
||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
||||
%uint = OpTypeInt 32 0
|
||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||
%tint_symbol = OpVariable %_ptr_Input_uint Input
|
||||
%VertexIndex_1 = OpVariable %_ptr_Input_uint Input
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%11 = OpConstantNull %v4float
|
||||
%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %11
|
||||
%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %11
|
||||
%void = OpTypeVoid
|
||||
%13 = OpTypeFunction %void %v4float
|
||||
%18 = OpTypeFunction %void
|
||||
%float_1 = OpConstant %float 1
|
||||
%8 = OpConstantNull %v4float
|
||||
%value = OpVariable %_ptr_Output_v4float Output %8
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%11 = OpConstantNull %float
|
||||
%vertex_point_size = OpVariable %_ptr_Output_float Output %11
|
||||
%value_1 = OpVariable %_ptr_Output_v4float Output %8
|
||||
%13 = OpTypeFunction %v4float %uint
|
||||
%v2float = OpTypeVector %float 2
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3
|
||||
%float_0 = OpConstant %float 0
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
%27 = OpConstantComposite %v2float %float_0 %float_0_5
|
||||
%22 = OpConstantComposite %v2float %float_0 %float_0_5
|
||||
%float_n0_5 = OpConstant %float -0.5
|
||||
%29 = OpConstantComposite %v2float %float_n0_5 %float_n0_5
|
||||
%30 = OpConstantComposite %v2float %float_0_5 %float_n0_5
|
||||
%31 = OpConstantComposite %_arr_v2float_uint_3 %27 %29 %30
|
||||
%24 = OpConstantComposite %v2float %float_n0_5 %float_n0_5
|
||||
%25 = OpConstantComposite %v2float %float_0_5 %float_n0_5
|
||||
%26 = OpConstantComposite %_arr_v2float_uint_3 %22 %24 %25
|
||||
%_ptr_Function__arr_v2float_uint_3 = OpTypePointer Function %_arr_v2float_uint_3
|
||||
%34 = OpConstantNull %_arr_v2float_uint_3
|
||||
%29 = OpConstantNull %_arr_v2float_uint_3
|
||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||
%49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
||||
%tint_symbol_3 = OpFunction %void None %13
|
||||
%tint_symbol_1 = OpFunctionParameter %v4float
|
||||
%17 = OpLabel
|
||||
OpStore %tint_symbol_2 %tint_symbol_1
|
||||
%float_1 = OpConstant %float 1
|
||||
%void = OpTypeVoid
|
||||
%37 = OpTypeFunction %void
|
||||
%43 = OpTypeFunction %v4float
|
||||
%46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
||||
%vtx_main_inner = OpFunction %v4float None %13
|
||||
%VertexIndex = OpFunctionParameter %uint
|
||||
%16 = OpLabel
|
||||
%pos = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %29
|
||||
OpStore %pos %26
|
||||
%31 = OpAccessChain %_ptr_Function_v2float %pos %VertexIndex
|
||||
%32 = OpLoad %v2float %31
|
||||
%33 = OpCompositeExtract %float %32 0
|
||||
%34 = OpCompositeExtract %float %32 1
|
||||
%36 = OpCompositeConstruct %v4float %33 %34 %float_0 %float_1
|
||||
OpReturnValue %36
|
||||
OpFunctionEnd
|
||||
%vtx_main = OpFunction %void None %37
|
||||
%40 = OpLabel
|
||||
%42 = OpLoad %uint %VertexIndex_1
|
||||
%41 = OpFunctionCall %v4float %vtx_main_inner %42
|
||||
OpStore %value %41
|
||||
OpStore %vertex_point_size %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vtx_main = OpFunction %void None %18
|
||||
%20 = OpLabel
|
||||
%pos = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %34
|
||||
OpStore %tint_pointsize %float_1
|
||||
OpStore %pos %31
|
||||
%36 = OpLoad %uint %tint_symbol
|
||||
%38 = OpAccessChain %_ptr_Function_v2float %pos %36
|
||||
%39 = OpLoad %v2float %38
|
||||
%40 = OpCompositeExtract %float %39 0
|
||||
%41 = OpCompositeExtract %float %39 1
|
||||
%42 = OpCompositeConstruct %v4float %40 %41 %float_0 %float_1
|
||||
%35 = OpFunctionCall %void %tint_symbol_3 %42
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%tint_symbol_6 = OpFunction %void None %13
|
||||
%tint_symbol_4 = OpFunctionParameter %v4float
|
||||
%frag_main_inner = OpFunction %v4float None %43
|
||||
%45 = OpLabel
|
||||
OpStore %tint_symbol_5 %tint_symbol_4
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%frag_main = OpFunction %void None %18
|
||||
%47 = OpLabel
|
||||
%48 = OpFunctionCall %void %tint_symbol_6 %49
|
||||
OpReturnValue %46
|
||||
OpFunctionEnd
|
||||
%frag_main = OpFunction %void None %37
|
||||
%48 = OpLabel
|
||||
%49 = OpFunctionCall %v4float %frag_main_inner
|
||||
OpStore %value_1 %49
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user