26 lines
780 B
Plaintext
26 lines
780 B
Plaintext
|
|
#include "Include/PlatformDefines.hlsl"
|
|
|
|
#pragma kernel CSInstancedComputeBufferSetDataPartialKernel
|
|
#pragma kernel CSInstancedComputeBufferSetDataSingleKernel
|
|
|
|
RWStructuredBuffer<float4x4> gpuiInstanceData;
|
|
RWStructuredBuffer<float4x4> gpuiManagedData;
|
|
|
|
uniform float4x4 dataToSet;
|
|
uniform uint computeBufferStartIndex;
|
|
uniform uint count;
|
|
|
|
[numthreads(GPUI_THREADS, 1, 1)]
|
|
void CSInstancedComputeBufferSetDataPartialKernel(uint3 id : SV_DispatchThreadID)
|
|
{
|
|
// runtime modification on instanceData
|
|
if (count > id.x)
|
|
gpuiInstanceData[computeBufferStartIndex + id.x] = gpuiManagedData[id.x];
|
|
}
|
|
|
|
[numthreads(1, 1, 1)]
|
|
void CSInstancedComputeBufferSetDataSingleKernel(uint3 id : SV_DispatchThreadID)
|
|
{
|
|
gpuiInstanceData[computeBufferStartIndex] = dataToSet;
|
|
} |