2021-05-18 09:24:18 +00:00
|
|
|
; SPIR-V
|
|
|
|
; Version: 1.3
|
|
|
|
; Generator: Google Tint Compiler; 0
|
2022-11-02 02:25:38 +00:00
|
|
|
; Bound: 279
|
2021-05-18 09:24:18 +00:00
|
|
|
; Schema: 0
|
|
|
|
OpCapability Shader
|
2022-11-02 02:25:38 +00:00
|
|
|
%39 = OpExtInstImport "GLSL.std.450"
|
2021-05-18 09:24:18 +00:00
|
|
|
OpMemoryModel Logical GLSL450
|
2021-08-05 17:34:19 +00:00
|
|
|
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
|
2021-05-18 09:24:18 +00:00
|
|
|
OpExecutionMode %frag_main OriginUpperLeft
|
|
|
|
OpExecutionMode %comp_main LocalSize 1 1 1
|
2021-08-05 17:34:19 +00:00
|
|
|
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"
|
2022-11-02 02:25:38 +00:00
|
|
|
OpName %params_block "params_block"
|
|
|
|
OpMemberName %params_block 0 "inner"
|
2021-05-18 09:24:18 +00:00
|
|
|
OpName %SimParams "SimParams"
|
|
|
|
OpMemberName %SimParams 0 "deltaT"
|
|
|
|
OpMemberName %SimParams 1 "rule1Distance"
|
|
|
|
OpMemberName %SimParams 2 "rule2Distance"
|
|
|
|
OpMemberName %SimParams 3 "rule3Distance"
|
|
|
|
OpMemberName %SimParams 4 "rule1Scale"
|
|
|
|
OpMemberName %SimParams 5 "rule2Scale"
|
|
|
|
OpMemberName %SimParams 6 "rule3Scale"
|
|
|
|
OpName %params "params"
|
2022-11-02 02:25:38 +00:00
|
|
|
OpName %particlesA_block "particlesA_block"
|
|
|
|
OpMemberName %particlesA_block 0 "inner"
|
2021-05-18 09:24:18 +00:00
|
|
|
OpName %Particles "Particles"
|
|
|
|
OpMemberName %Particles 0 "particles"
|
|
|
|
OpName %Particle "Particle"
|
|
|
|
OpMemberName %Particle 0 "pos"
|
|
|
|
OpMemberName %Particle 1 "vel"
|
|
|
|
OpName %particlesA "particlesA"
|
|
|
|
OpName %particlesB "particlesB"
|
2021-08-05 17:34:19 +00:00
|
|
|
OpName %vert_main_inner "vert_main_inner"
|
|
|
|
OpName %a_particlePos "a_particlePos"
|
|
|
|
OpName %a_particleVel "a_particleVel"
|
|
|
|
OpName %a_pos "a_pos"
|
2021-05-18 09:24:18 +00:00
|
|
|
OpName %angle "angle"
|
|
|
|
OpName %pos "pos"
|
2021-08-05 17:34:19 +00:00
|
|
|
OpName %vert_main "vert_main"
|
|
|
|
OpName %frag_main_inner "frag_main_inner"
|
2021-05-18 09:24:18 +00:00
|
|
|
OpName %frag_main "frag_main"
|
2021-08-05 17:34:19 +00:00
|
|
|
OpName %comp_main_inner "comp_main_inner"
|
|
|
|
OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
|
2021-05-18 09:24:18 +00:00
|
|
|
OpName %index "index"
|
|
|
|
OpName %vPos "vPos"
|
|
|
|
OpName %vVel "vVel"
|
|
|
|
OpName %cMass "cMass"
|
|
|
|
OpName %cVel "cVel"
|
|
|
|
OpName %colVel "colVel"
|
|
|
|
OpName %cMassCount "cMassCount"
|
|
|
|
OpName %cVelCount "cVelCount"
|
|
|
|
OpName %pos_0 "pos"
|
|
|
|
OpName %vel "vel"
|
|
|
|
OpName %i "i"
|
2021-08-05 17:34:19 +00:00
|
|
|
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
|
2022-11-02 02:25:38 +00:00
|
|
|
OpDecorate %params_block Block
|
|
|
|
OpMemberDecorate %params_block 0 Offset 0
|
2021-05-18 09:24:18 +00:00
|
|
|
OpMemberDecorate %SimParams 0 Offset 0
|
|
|
|
OpMemberDecorate %SimParams 1 Offset 4
|
|
|
|
OpMemberDecorate %SimParams 2 Offset 8
|
|
|
|
OpMemberDecorate %SimParams 3 Offset 12
|
|
|
|
OpMemberDecorate %SimParams 4 Offset 16
|
|
|
|
OpMemberDecorate %SimParams 5 Offset 20
|
|
|
|
OpMemberDecorate %SimParams 6 Offset 24
|
2021-06-04 22:17:37 +00:00
|
|
|
OpDecorate %params NonWritable
|
2021-05-18 09:24:18 +00:00
|
|
|
OpDecorate %params Binding 0
|
|
|
|
OpDecorate %params DescriptorSet 0
|
2022-11-02 02:25:38 +00:00
|
|
|
OpDecorate %particlesA_block Block
|
|
|
|
OpMemberDecorate %particlesA_block 0 Offset 0
|
2021-05-18 09:24:18 +00:00
|
|
|
OpMemberDecorate %Particles 0 Offset 0
|
|
|
|
OpMemberDecorate %Particle 0 Offset 0
|
|
|
|
OpMemberDecorate %Particle 1 Offset 8
|
|
|
|
OpDecorate %_arr_Particle_uint_5 ArrayStride 16
|
|
|
|
OpDecorate %particlesA Binding 1
|
|
|
|
OpDecorate %particlesA DescriptorSet 0
|
|
|
|
OpDecorate %particlesB Binding 2
|
|
|
|
OpDecorate %particlesB DescriptorSet 0
|
|
|
|
%float = OpTypeFloat 32
|
|
|
|
%v2float = OpTypeVector %float 2
|
|
|
|
%_ptr_Input_v2float = OpTypePointer Input %v2float
|
2021-08-05 17:34:19 +00:00
|
|
|
%a_particlePos_1 = OpVariable %_ptr_Input_v2float Input
|
|
|
|
%a_particleVel_1 = OpVariable %_ptr_Input_v2float Input
|
|
|
|
%a_pos_1 = OpVariable %_ptr_Input_v2float Input
|
2021-05-18 09:24:18 +00:00
|
|
|
%v4float = OpTypeVector %float 4
|
|
|
|
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
2021-08-05 17:34:19 +00:00
|
|
|
%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
|
2021-05-18 09:24:18 +00:00
|
|
|
%SimParams = OpTypeStruct %float %float %float %float %float %float %float
|
2022-11-02 02:25:38 +00:00
|
|
|
%params_block = OpTypeStruct %SimParams
|
|
|
|
%_ptr_Uniform_params_block = OpTypePointer Uniform %params_block
|
|
|
|
%params = OpVariable %_ptr_Uniform_params_block Uniform
|
2021-05-18 09:24:18 +00:00
|
|
|
%Particle = OpTypeStruct %v2float %v2float
|
|
|
|
%uint_5 = OpConstant %uint 5
|
|
|
|
%_arr_Particle_uint_5 = OpTypeArray %Particle %uint_5
|
|
|
|
%Particles = OpTypeStruct %_arr_Particle_uint_5
|
2022-11-02 02:25:38 +00:00
|
|
|
%particlesA_block = OpTypeStruct %Particles
|
|
|
|
%_ptr_StorageBuffer_particlesA_block = OpTypePointer StorageBuffer %particlesA_block
|
|
|
|
%particlesA = OpVariable %_ptr_StorageBuffer_particlesA_block StorageBuffer
|
|
|
|
%particlesB = OpVariable %_ptr_StorageBuffer_particlesA_block StorageBuffer
|
|
|
|
%31 = OpTypeFunction %v4float %v2float %v2float %v2float
|
2021-05-18 09:24:18 +00:00
|
|
|
%_ptr_Function_float = OpTypePointer Function %float
|
|
|
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
2022-11-02 02:25:38 +00:00
|
|
|
%65 = OpConstantNull %v2float
|
2021-08-05 17:34:19 +00:00
|
|
|
%float_1 = OpConstant %float 1
|
|
|
|
%void = OpTypeVoid
|
2022-11-02 02:25:38 +00:00
|
|
|
%72 = OpTypeFunction %void
|
|
|
|
%80 = OpTypeFunction %v4float
|
|
|
|
%83 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
|
|
|
%87 = OpTypeFunction %void %v3uint
|
2021-05-18 09:24:18 +00:00
|
|
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
2022-11-02 02:25:38 +00:00
|
|
|
%94 = OpConstantNull %uint
|
2021-05-18 09:24:18 +00:00
|
|
|
%bool = OpTypeBool
|
2021-08-05 17:34:19 +00:00
|
|
|
%uint_0 = OpConstant %uint 0
|
2021-05-18 09:24:18 +00:00
|
|
|
%_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float
|
2021-08-05 17:34:19 +00:00
|
|
|
%uint_1 = OpConstant %uint 1
|
2021-05-18 09:24:18 +00:00
|
|
|
%int = OpTypeInt 32 1
|
2022-11-02 02:25:38 +00:00
|
|
|
%115 = OpConstantNull %int
|
2021-05-18 09:24:18 +00:00
|
|
|
%_ptr_Function_int = OpTypePointer Function %int
|
|
|
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
|
|
|
%int_1 = OpConstant %int 1
|
|
|
|
%uint_2 = OpConstant %uint 2
|
|
|
|
%uint_3 = OpConstant %uint 3
|
|
|
|
%uint_4 = OpConstant %uint 4
|
|
|
|
%uint_6 = OpConstant %uint 6
|
|
|
|
%float_0_100000001 = OpConstant %float 0.100000001
|
|
|
|
%float_n1 = OpConstant %float -1
|
2022-11-02 02:25:38 +00:00
|
|
|
%vert_main_inner = OpFunction %v4float None %31
|
2021-08-05 17:34:19 +00:00
|
|
|
%a_particlePos = OpFunctionParameter %v2float
|
|
|
|
%a_particleVel = OpFunctionParameter %v2float
|
|
|
|
%a_pos = OpFunctionParameter %v2float
|
2022-11-02 02:25:38 +00:00
|
|
|
%36 = OpLabel
|
2021-08-05 17:34:19 +00:00
|
|
|
%angle = OpVariable %_ptr_Function_float Function %13
|
2022-11-02 02:25:38 +00:00
|
|
|
%pos = OpVariable %_ptr_Function_v2float Function %65
|
|
|
|
%40 = OpCompositeExtract %float %a_particleVel 0
|
|
|
|
%41 = OpCompositeExtract %float %a_particleVel 1
|
|
|
|
%38 = OpExtInst %float %39 Atan2 %40 %41
|
|
|
|
%37 = OpFNegate %float %38
|
|
|
|
OpStore %angle %37
|
|
|
|
%44 = OpCompositeExtract %float %a_pos 0
|
|
|
|
%46 = OpLoad %float %angle
|
|
|
|
%45 = OpExtInst %float %39 Cos %46
|
|
|
|
%47 = OpFMul %float %44 %45
|
|
|
|
%48 = OpCompositeExtract %float %a_pos 1
|
|
|
|
%50 = OpLoad %float %angle
|
|
|
|
%49 = OpExtInst %float %39 Sin %50
|
|
|
|
%51 = OpFMul %float %48 %49
|
|
|
|
%52 = OpFSub %float %47 %51
|
|
|
|
%53 = OpCompositeExtract %float %a_pos 0
|
|
|
|
%55 = OpLoad %float %angle
|
|
|
|
%54 = OpExtInst %float %39 Sin %55
|
|
|
|
%56 = OpFMul %float %53 %54
|
|
|
|
%57 = OpCompositeExtract %float %a_pos 1
|
|
|
|
%59 = OpLoad %float %angle
|
|
|
|
%58 = OpExtInst %float %39 Cos %59
|
|
|
|
%60 = OpFMul %float %57 %58
|
|
|
|
%61 = OpFAdd %float %56 %60
|
|
|
|
%62 = OpCompositeConstruct %v2float %52 %61
|
|
|
|
OpStore %pos %62
|
|
|
|
%66 = OpLoad %v2float %pos
|
|
|
|
%67 = OpFAdd %v2float %66 %a_particlePos
|
|
|
|
%68 = OpCompositeExtract %float %67 0
|
|
|
|
%69 = OpCompositeExtract %float %67 1
|
|
|
|
%71 = OpCompositeConstruct %v4float %68 %69 %13 %float_1
|
|
|
|
OpReturnValue %71
|
2021-05-18 09:24:18 +00:00
|
|
|
OpFunctionEnd
|
2022-11-02 02:25:38 +00:00
|
|
|
%vert_main = OpFunction %void None %72
|
|
|
|
%75 = OpLabel
|
|
|
|
%77 = OpLoad %v2float %a_particlePos_1
|
|
|
|
%78 = OpLoad %v2float %a_particleVel_1
|
|
|
|
%79 = OpLoad %v2float %a_pos_1
|
|
|
|
%76 = OpFunctionCall %v4float %vert_main_inner %77 %78 %79
|
|
|
|
OpStore %value %76
|
2021-08-05 17:34:19 +00:00
|
|
|
OpStore %vertex_point_size %float_1
|
2021-05-18 09:24:18 +00:00
|
|
|
OpReturn
|
|
|
|
OpFunctionEnd
|
2022-11-02 02:25:38 +00:00
|
|
|
%frag_main_inner = OpFunction %v4float None %80
|
|
|
|
%82 = OpLabel
|
|
|
|
OpReturnValue %83
|
2021-08-05 17:34:19 +00:00
|
|
|
OpFunctionEnd
|
2022-11-02 02:25:38 +00:00
|
|
|
%frag_main = OpFunction %void None %72
|
|
|
|
%85 = OpLabel
|
|
|
|
%86 = OpFunctionCall %v4float %frag_main_inner
|
|
|
|
OpStore %value_1 %86
|
2021-05-18 09:24:18 +00:00
|
|
|
OpReturn
|
|
|
|
OpFunctionEnd
|
2022-11-02 02:25:38 +00:00
|
|
|
%comp_main_inner = OpFunction %void None %87
|
2021-08-05 17:34:19 +00:00
|
|
|
%gl_GlobalInvocationID = OpFunctionParameter %v3uint
|
2022-11-02 02:25:38 +00:00
|
|
|
%90 = OpLabel
|
|
|
|
%index = OpVariable %_ptr_Function_uint Function %94
|
|
|
|
%vPos = OpVariable %_ptr_Function_v2float Function %65
|
|
|
|
%vVel = OpVariable %_ptr_Function_v2float Function %65
|
|
|
|
%cMass = OpVariable %_ptr_Function_v2float Function %65
|
|
|
|
%cVel = OpVariable %_ptr_Function_v2float Function %65
|
|
|
|
%colVel = OpVariable %_ptr_Function_v2float Function %65
|
|
|
|
%cMassCount = OpVariable %_ptr_Function_int Function %115
|
|
|
|
%cVelCount = OpVariable %_ptr_Function_int Function %115
|
|
|
|
%pos_0 = OpVariable %_ptr_Function_v2float Function %65
|
|
|
|
%vel = OpVariable %_ptr_Function_v2float Function %65
|
|
|
|
%i = OpVariable %_ptr_Function_uint Function %94
|
|
|
|
%91 = OpCompositeExtract %uint %gl_GlobalInvocationID 0
|
|
|
|
OpStore %index %91
|
|
|
|
%95 = OpLoad %uint %index
|
|
|
|
%96 = OpUGreaterThanEqual %bool %95 %uint_5
|
|
|
|
OpSelectionMerge %98 None
|
|
|
|
OpBranchConditional %96 %99 %98
|
|
|
|
%99 = OpLabel
|
2022-06-01 15:57:22 +00:00
|
|
|
OpReturn
|
2022-11-02 02:25:38 +00:00
|
|
|
%98 = OpLabel
|
|
|
|
%101 = OpLoad %uint %index
|
|
|
|
%103 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %uint_0 %101 %uint_0
|
|
|
|
%104 = OpLoad %v2float %103
|
|
|
|
OpStore %vPos %104
|
|
|
|
%106 = OpLoad %uint %index
|
|
|
|
%108 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %uint_0 %106 %uint_1
|
|
|
|
%109 = OpLoad %v2float %108
|
|
|
|
OpStore %vVel %109
|
|
|
|
OpStore %cMass %65
|
|
|
|
OpStore %cVel %65
|
|
|
|
OpStore %colVel %65
|
|
|
|
OpStore %cMassCount %115
|
|
|
|
OpStore %cVelCount %115
|
|
|
|
OpStore %i %94
|
2022-06-01 15:57:22 +00:00
|
|
|
OpBranch %122
|
|
|
|
%122 = OpLabel
|
2022-11-02 02:25:38 +00:00
|
|
|
OpLoopMerge %123 %124 None
|
|
|
|
OpBranch %125
|
|
|
|
%125 = OpLabel
|
|
|
|
%127 = OpLoad %uint %i
|
|
|
|
%128 = OpULessThan %bool %127 %uint_5
|
|
|
|
%126 = OpLogicalNot %bool %128
|
|
|
|
OpSelectionMerge %129 None
|
|
|
|
OpBranchConditional %126 %130 %129
|
|
|
|
%130 = OpLabel
|
|
|
|
OpBranch %123
|
|
|
|
%129 = OpLabel
|
|
|
|
%131 = OpLoad %uint %i
|
|
|
|
%132 = OpLoad %uint %index
|
|
|
|
%133 = OpIEqual %bool %131 %132
|
|
|
|
OpSelectionMerge %134 None
|
|
|
|
OpBranchConditional %133 %135 %134
|
|
|
|
%135 = OpLabel
|
|
|
|
OpBranch %124
|
|
|
|
%134 = OpLabel
|
|
|
|
%136 = OpLoad %uint %i
|
|
|
|
%137 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %uint_0 %136 %uint_0
|
|
|
|
%138 = OpLoad %v2float %137
|
|
|
|
%139 = OpVectorShuffle %v2float %138 %138 0 1
|
|
|
|
OpStore %pos_0 %139
|
|
|
|
%140 = OpLoad %uint %i
|
|
|
|
%141 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %uint_0 %140 %uint_1
|
|
|
|
%142 = OpLoad %v2float %141
|
|
|
|
%143 = OpVectorShuffle %v2float %142 %142 0 1
|
|
|
|
OpStore %vel %143
|
|
|
|
%145 = OpLoad %v2float %pos_0
|
|
|
|
%146 = OpLoad %v2float %vPos
|
|
|
|
%144 = OpExtInst %float %39 Distance %145 %146
|
|
|
|
%148 = OpAccessChain %_ptr_Uniform_float %params %uint_0 %uint_1
|
|
|
|
%149 = OpLoad %float %148
|
|
|
|
%150 = OpFOrdLessThan %bool %144 %149
|
|
|
|
OpSelectionMerge %151 None
|
|
|
|
OpBranchConditional %150 %152 %151
|
|
|
|
%152 = OpLabel
|
|
|
|
%153 = OpLoad %v2float %cMass
|
|
|
|
%154 = OpLoad %v2float %pos_0
|
|
|
|
%155 = OpFAdd %v2float %153 %154
|
|
|
|
OpStore %cMass %155
|
|
|
|
%156 = OpLoad %int %cMassCount
|
|
|
|
%158 = OpIAdd %int %156 %int_1
|
|
|
|
OpStore %cMassCount %158
|
|
|
|
OpBranch %151
|
|
|
|
%151 = OpLabel
|
|
|
|
%160 = OpLoad %v2float %pos_0
|
|
|
|
%161 = OpLoad %v2float %vPos
|
|
|
|
%159 = OpExtInst %float %39 Distance %160 %161
|
|
|
|
%163 = OpAccessChain %_ptr_Uniform_float %params %uint_0 %uint_2
|
|
|
|
%164 = OpLoad %float %163
|
|
|
|
%165 = OpFOrdLessThan %bool %159 %164
|
|
|
|
OpSelectionMerge %166 None
|
|
|
|
OpBranchConditional %165 %167 %166
|
|
|
|
%167 = OpLabel
|
|
|
|
%168 = OpLoad %v2float %colVel
|
|
|
|
%169 = OpLoad %v2float %pos_0
|
|
|
|
%170 = OpLoad %v2float %vPos
|
|
|
|
%171 = OpFSub %v2float %169 %170
|
|
|
|
%172 = OpFSub %v2float %168 %171
|
|
|
|
OpStore %colVel %172
|
|
|
|
OpBranch %166
|
|
|
|
%166 = OpLabel
|
|
|
|
%174 = OpLoad %v2float %pos_0
|
|
|
|
%175 = OpLoad %v2float %vPos
|
|
|
|
%173 = OpExtInst %float %39 Distance %174 %175
|
|
|
|
%177 = OpAccessChain %_ptr_Uniform_float %params %uint_0 %uint_3
|
|
|
|
%178 = OpLoad %float %177
|
|
|
|
%179 = OpFOrdLessThan %bool %173 %178
|
|
|
|
OpSelectionMerge %180 None
|
|
|
|
OpBranchConditional %179 %181 %180
|
|
|
|
%181 = OpLabel
|
|
|
|
%182 = OpLoad %v2float %cVel
|
|
|
|
%183 = OpLoad %v2float %vel
|
|
|
|
%184 = OpFAdd %v2float %182 %183
|
|
|
|
OpStore %cVel %184
|
|
|
|
%185 = OpLoad %int %cVelCount
|
|
|
|
%186 = OpIAdd %int %185 %int_1
|
|
|
|
OpStore %cVelCount %186
|
|
|
|
OpBranch %180
|
|
|
|
%180 = OpLabel
|
|
|
|
OpBranch %124
|
|
|
|
%124 = OpLabel
|
|
|
|
%187 = OpLoad %uint %i
|
|
|
|
%188 = OpIAdd %uint %187 %uint_1
|
|
|
|
OpStore %i %188
|
|
|
|
OpBranch %122
|
|
|
|
%123 = OpLabel
|
|
|
|
%189 = OpLoad %int %cMassCount
|
|
|
|
%190 = OpSGreaterThan %bool %189 %115
|
|
|
|
OpSelectionMerge %191 None
|
|
|
|
OpBranchConditional %190 %192 %191
|
|
|
|
%192 = OpLabel
|
|
|
|
%193 = OpLoad %v2float %cMass
|
2022-06-01 15:57:22 +00:00
|
|
|
%195 = OpLoad %int %cMassCount
|
|
|
|
%194 = OpConvertSToF %float %195
|
2022-11-02 02:25:38 +00:00
|
|
|
%197 = OpLoad %int %cMassCount
|
|
|
|
%196 = OpConvertSToF %float %197
|
|
|
|
%198 = OpCompositeConstruct %v2float %194 %196
|
|
|
|
%199 = OpFDiv %v2float %193 %198
|
|
|
|
%200 = OpLoad %v2float %vPos
|
|
|
|
%201 = OpFSub %v2float %199 %200
|
|
|
|
OpStore %cMass %201
|
|
|
|
OpBranch %191
|
|
|
|
%191 = OpLabel
|
|
|
|
%202 = OpLoad %int %cVelCount
|
|
|
|
%203 = OpSGreaterThan %bool %202 %115
|
|
|
|
OpSelectionMerge %204 None
|
|
|
|
OpBranchConditional %203 %205 %204
|
|
|
|
%205 = OpLabel
|
|
|
|
%206 = OpLoad %v2float %cVel
|
2022-06-01 15:57:22 +00:00
|
|
|
%208 = OpLoad %int %cVelCount
|
|
|
|
%207 = OpConvertSToF %float %208
|
2022-11-02 02:25:38 +00:00
|
|
|
%210 = OpLoad %int %cVelCount
|
|
|
|
%209 = OpConvertSToF %float %210
|
|
|
|
%211 = OpCompositeConstruct %v2float %207 %209
|
|
|
|
%212 = OpFDiv %v2float %206 %211
|
|
|
|
OpStore %cVel %212
|
|
|
|
OpBranch %204
|
|
|
|
%204 = OpLabel
|
|
|
|
%213 = OpLoad %v2float %vVel
|
|
|
|
%214 = OpLoad %v2float %cMass
|
|
|
|
%216 = OpAccessChain %_ptr_Uniform_float %params %uint_0 %uint_4
|
|
|
|
%217 = OpLoad %float %216
|
|
|
|
%218 = OpVectorTimesScalar %v2float %214 %217
|
|
|
|
%219 = OpFAdd %v2float %213 %218
|
|
|
|
%220 = OpLoad %v2float %colVel
|
|
|
|
%221 = OpAccessChain %_ptr_Uniform_float %params %uint_0 %uint_5
|
|
|
|
%222 = OpLoad %float %221
|
|
|
|
%223 = OpVectorTimesScalar %v2float %220 %222
|
|
|
|
%224 = OpFAdd %v2float %219 %223
|
|
|
|
%225 = OpLoad %v2float %cVel
|
|
|
|
%227 = OpAccessChain %_ptr_Uniform_float %params %uint_0 %uint_6
|
|
|
|
%228 = OpLoad %float %227
|
|
|
|
%229 = OpVectorTimesScalar %v2float %225 %228
|
|
|
|
%230 = OpFAdd %v2float %224 %229
|
|
|
|
OpStore %vVel %230
|
|
|
|
%232 = OpLoad %v2float %vVel
|
|
|
|
%231 = OpExtInst %v2float %39 Normalize %232
|
|
|
|
%235 = OpLoad %v2float %vVel
|
|
|
|
%234 = OpExtInst %float %39 Length %235
|
|
|
|
%233 = OpExtInst %float %39 NClamp %234 %13 %float_0_100000001
|
|
|
|
%237 = OpVectorTimesScalar %v2float %231 %233
|
|
|
|
OpStore %vVel %237
|
|
|
|
%238 = OpLoad %v2float %vPos
|
|
|
|
%239 = OpLoad %v2float %vVel
|
|
|
|
%240 = OpAccessChain %_ptr_Uniform_float %params %uint_0 %uint_0
|
|
|
|
%241 = OpLoad %float %240
|
|
|
|
%242 = OpVectorTimesScalar %v2float %239 %241
|
|
|
|
%243 = OpFAdd %v2float %238 %242
|
|
|
|
OpStore %vPos %243
|
|
|
|
%244 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
|
|
|
%245 = OpLoad %float %244
|
|
|
|
%247 = OpFOrdLessThan %bool %245 %float_n1
|
|
|
|
OpSelectionMerge %248 None
|
|
|
|
OpBranchConditional %247 %249 %248
|
|
|
|
%249 = OpLabel
|
|
|
|
%250 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
|
|
|
OpStore %250 %float_1
|
|
|
|
OpBranch %248
|
|
|
|
%248 = OpLabel
|
|
|
|
%251 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
|
|
|
%252 = OpLoad %float %251
|
|
|
|
%253 = OpFOrdGreaterThan %bool %252 %float_1
|
|
|
|
OpSelectionMerge %254 None
|
|
|
|
OpBranchConditional %253 %255 %254
|
|
|
|
%255 = OpLabel
|
|
|
|
%256 = OpAccessChain %_ptr_Function_float %vPos %uint_0
|
|
|
|
OpStore %256 %float_n1
|
|
|
|
OpBranch %254
|
|
|
|
%254 = OpLabel
|
|
|
|
%257 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
|
|
|
%258 = OpLoad %float %257
|
|
|
|
%259 = OpFOrdLessThan %bool %258 %float_n1
|
|
|
|
OpSelectionMerge %260 None
|
|
|
|
OpBranchConditional %259 %261 %260
|
|
|
|
%261 = OpLabel
|
|
|
|
%262 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
|
|
|
OpStore %262 %float_1
|
|
|
|
OpBranch %260
|
|
|
|
%260 = OpLabel
|
|
|
|
%263 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
|
|
|
%264 = OpLoad %float %263
|
|
|
|
%265 = OpFOrdGreaterThan %bool %264 %float_1
|
|
|
|
OpSelectionMerge %266 None
|
|
|
|
OpBranchConditional %265 %267 %266
|
|
|
|
%267 = OpLabel
|
|
|
|
%268 = OpAccessChain %_ptr_Function_float %vPos %uint_1
|
|
|
|
OpStore %268 %float_n1
|
|
|
|
OpBranch %266
|
|
|
|
%266 = OpLabel
|
|
|
|
%269 = OpLoad %uint %index
|
|
|
|
%270 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %uint_0 %269 %uint_0
|
|
|
|
%271 = OpLoad %v2float %vPos
|
|
|
|
OpStore %270 %271
|
|
|
|
%272 = OpLoad %uint %index
|
|
|
|
%273 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %uint_0 %272 %uint_1
|
|
|
|
%274 = OpLoad %v2float %vVel
|
|
|
|
OpStore %273 %274
|
2021-08-05 17:34:19 +00:00
|
|
|
OpReturn
|
|
|
|
OpFunctionEnd
|
2022-11-02 02:25:38 +00:00
|
|
|
%comp_main = OpFunction %void None %72
|
|
|
|
%276 = OpLabel
|
|
|
|
%278 = OpLoad %v3uint %gl_GlobalInvocationID_1
|
|
|
|
%277 = OpFunctionCall %void %comp_main_inner %278
|
2021-05-18 09:24:18 +00:00
|
|
|
OpReturn
|
|
|
|
OpFunctionEnd
|