#include "Include/PlatformDefines.hlsl" #pragma kernel CSInstancedComputeBufferSetDataPartialKernel #pragma kernel CSInstancedComputeBufferSetDataSingleKernel RWStructuredBuffer gpuiInstanceData; RWStructuredBuffer 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; }