Net-Game/Library/PackageCache/com.unity.rendering.light-transport@307bc27a498f/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute
2025-03-28 08:33:16 -04:00

25 lines
559 B
Plaintext

#define GROUP_SIZE 256
#define ELEMENTS_PER_THREAD 8
StructuredBuffer<uint> _SrcBuffer;
int _SrcOffset;
RWStructuredBuffer<uint> _DstBuffer;
int _DstOffset;
int _Size;
#pragma kernel CopyBuffer
[numthreads(GROUP_SIZE,1,1)]
void CopyBuffer(uint gidx : SV_DispatchThreadID)
{
for (int i = 0; i < ELEMENTS_PER_THREAD; ++i)
{
int elemIndex = gidx * ELEMENTS_PER_THREAD + i;
if (elemIndex >= _Size)
return;
uint value = _SrcBuffer[elemIndex + _SrcOffset];
_DstBuffer[elemIndex + _DstOffset] = value;
}
}