[[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)); | |
} |