#pragma kernel SortData StructuredBuffer sortedToOriginal; StructuredBuffer positions; StructuredBuffer prevPositions; StructuredBuffer principalRadii; StructuredBuffer userData; RWStructuredBuffer sortedPositions; RWStructuredBuffer sortedPrevPositions; RWStructuredBuffer sortedPrincipalRadii; RWStructuredBuffer sortedUserData; StructuredBuffer dispatchBuffer; [numthreads(128, 1, 1)] void SortData (uint3 id : SV_DispatchThreadID) { unsigned int i = id.x; if (i >= dispatchBuffer[3]) return; int original = sortedToOriginal[i]; sortedPositions[i] = positions[original]; sortedPrevPositions[i] = prevPositions[original]; sortedPrincipalRadii[i] = principalRadii[original]; sortedUserData[i] = userData[original]; }