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