1617a3babSopenharmony_cistruct sb_t 2617a3babSopenharmony_ci{ 3617a3babSopenharmony_ci float4 color; 4617a3babSopenharmony_ci uint2 threadId; 5617a3babSopenharmony_ci}; 6617a3babSopenharmony_ci 7617a3babSopenharmony_ciRWTexture2D<float4> outtx; 8617a3babSopenharmony_ciConsumeStructuredBuffer<sb_t> csb : register(u1); 9617a3babSopenharmony_ciRWStructuredBuffer<float4> rwsb; 10617a3babSopenharmony_ci 11617a3babSopenharmony_ci[numthreads(1, 1, 1)] 12617a3babSopenharmony_civoid main(uint3 nThreadId : SV_DispatchThreadID) 13617a3babSopenharmony_ci{ 14617a3babSopenharmony_ci sb_t data = csb.Consume(); 15617a3babSopenharmony_ci float2 coord = float2(data.threadId.xy); 16617a3babSopenharmony_ci outtx[coord] = data.color; 17617a3babSopenharmony_ci 18617a3babSopenharmony_ci rwsb[coord.x] = rwsb.Load(coord.y); 19617a3babSopenharmony_ci} 20