| [[vk::binding(0, 0)]] ByteAddressBuffer buffer_position_ms; | |
| [[vk::binding(1, 0)]] RWByteAddressBuffer r; | |
| float3 pull_position(ByteAddressBuffer buffer_position, uint vertex_id) { | |
| return asfloat(buffer_position.Load3(vertex_id * 3 * 4)); | |
| } | |
| [numthreads(64, 1, 1)] | |
| void main(uint gi : SV_GroupIndex) { | |
| float3 position_ms = pull_position(buffer_position_ms, gi); | |
| r.Store3(0, asuint(position_ms)); | |
| } |