1[[vk::binding(0, 0)]] ByteAddressBuffer buffer_position_ms; 2[[vk::binding(1, 0)]] RWByteAddressBuffer r; 3 4float3 pull_position(ByteAddressBuffer buffer_position, uint vertex_id) { 5 return asfloat(buffer_position.Load3(vertex_id * 3 * 4)); 6} 7 8[numthreads(64, 1, 1)] 9void main(uint gi : SV_GroupIndex) { 10 float3 position_ms = pull_position(buffer_position_ms, gi); 11 12 r.Store3(0, asuint(position_ms)); 13}