#pragma kernel Converter struct grassCell { uint grassElementIndexes[512];//map to grass elements }; StructuredBuffer grassCellBuffer; StructuredBuffer grassCellIndexBuffer; AppendStructuredBuffer outGrassBuffer; [numthreads(8,8,8)] void Converter (uint callIndex : SV_GroupIndex, uint3 groupID : SV_GroupID) { uint realIndex = groupID.x + groupID.y + groupID.z; uint cellIndex = grassCellIndexBuffer[realIndex]; grassCell cell = grassCellBuffer[ cellIndex ]; int elementIndex = callIndex;//Correct uint objIndex = cell.grassElementIndexes[elementIndex]; if(objIndex != 0) outGrassBuffer.Append(objIndex); } //So the error seems to have been the usement of the wrong ID... but there must have been something else as well