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}