struct sb_t { float4 color; uint2 threadId; }; RWTexture2D<float4> outtx; ConsumeStructuredBuffer<sb_t> csb : register(u1); RWStructuredBuffer<float4> rwsb; [numthreads(1, 1, 1)] void main(uint3 nThreadId : SV_DispatchThreadID) { sb_t data = csb.Consume(); float2 coord = float2(data.threadId.xy); outtx[coord] = data.color; rwsb[coord.x] = rwsb.Load(coord.y); }