mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-16 12:21:35 +00:00
The expected output is far from perfect, and the generated HLSL and MSL isn't even validated yet, so may be incorrect. However, by committing the generated output, we get clear examples of the currently generated output of each backend. As we land fixes and improvements to each backend, the presubmits will require us to update the expected test output, and so code reviews will include diffs of each backend's generated output. Change-Id: I5c2a9e5b796d0ab75b3ec4c7f8ad00a0a2ab166f Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51224 Commit-Queue: Ben Clayton <bclayton@chromium.org> Reviewed-by: David Neto <dneto@google.com>
444 lines
19 KiB
Plaintext
444 lines
19 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.3
|
|
; Generator: Google Tint Compiler; 0
|
|
; Bound: 279
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
%40 = 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
|
|
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 %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"
|
|
OpName %Particles "Particles"
|
|
OpMemberName %Particles 0 "particles"
|
|
OpName %Particle "Particle"
|
|
OpMemberName %Particle 0 "pos"
|
|
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 %angle "angle"
|
|
OpName %pos "pos"
|
|
OpName %tint_symbol_8 "tint_symbol_8"
|
|
OpName %tint_symbol_6 "tint_symbol_6"
|
|
OpName %frag_main "frag_main"
|
|
OpName %comp_main "comp_main"
|
|
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"
|
|
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
|
|
OpDecorate %SimParams Block
|
|
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
|
|
OpDecorate %params Binding 0
|
|
OpDecorate %params DescriptorSet 0
|
|
OpDecorate %Particles Block
|
|
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
|
|
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
|
|
%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
|
|
%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
|
|
%_ptr_Function_float = OpTypePointer Function %float
|
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
|
%75 = OpConstantNull %v2float
|
|
%float_0 = OpConstant %float 0
|
|
%90 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
|
%_ptr_Input_uint = OpTypePointer Input %uint
|
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
|
%98 = OpConstantNull %uint
|
|
%bool = OpTypeBool
|
|
%_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float
|
|
%113 = OpConstantComposite %v2float %float_0 %float_0
|
|
%int = OpTypeInt 32 1
|
|
%int_0 = OpConstant %int 0
|
|
%_ptr_Function_int = OpTypePointer Function %int
|
|
%121 = OpConstantNull %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
|
|
%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
|
|
%53 = OpLoad %float %angle
|
|
%52 = OpExtInst %float %40 Cos %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
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%tint_symbol_8 = OpFunction %void None %29
|
|
%tint_symbol_6 = OpFunctionParameter %v4float
|
|
%86 = OpLabel
|
|
OpStore %tint_symbol_7 %tint_symbol_6
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%frag_main = OpFunction %void None %34
|
|
%88 = OpLabel
|
|
%89 = OpFunctionCall %void %tint_symbol_8 %90
|
|
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
|
|
OpStore %cMassCount %int_0
|
|
OpStore %cVelCount %int_0
|
|
OpStore %i %uint_0
|
|
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
|
|
%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
|
|
%273 = OpLoad %uint %index
|
|
%274 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %273 %uint_0
|
|
%275 = OpLoad %v2float %vPos
|
|
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
|