1struct Types 2{ 3 uint4 u; 4 int4 i; 5 float4 f; 6 double4 d; 7}; 8 9RWStructuredBuffer<Types> data; 10 11[numthreads(32, 16, 1)] 12void CSMain(uint3 dti : SV_DispatchThreadID) 13{ 14 data[dti.x].u = WaveReadLaneAt(data[dti.x].u, 13); 15 data[dti.x].u.x = WaveReadLaneAt(data[dti.x].u.x, 13); 16 data[dti.x].u.xy = WaveReadLaneAt(data[dti.x].u.xy, 13); 17 data[dti.x].u.xyz = WaveReadLaneAt(data[dti.x].u.xyz, 13); 18 19 data[dti.x].i = WaveReadLaneAt(data[dti.x].i, 13); 20 data[dti.x].i.x = WaveReadLaneAt(data[dti.x].i.x, 13); 21 data[dti.x].i.xy = WaveReadLaneAt(data[dti.x].i.xy, 13); 22 data[dti.x].i.xyz = WaveReadLaneAt(data[dti.x].i.xyz, 13); 23 24 data[dti.x].f = WaveReadLaneAt(data[dti.x].f, 13); 25 data[dti.x].f.x = WaveReadLaneAt(data[dti.x].f.x, 13); 26 data[dti.x].f.xy = WaveReadLaneAt(data[dti.x].f.xy, 13); 27 data[dti.x].f.xyz = WaveReadLaneAt(data[dti.x].f.xyz, 13); 28 29 data[dti.x].d = WaveReadLaneFirst(data[dti.x].d); 30 data[dti.x].d.x = WaveReadLaneFirst(data[dti.x].d.x); 31 data[dti.x].d.xy = WaveReadLaneFirst(data[dti.x].d.xy); 32 data[dti.x].d.xyz = WaveReadLaneFirst(data[dti.x].d.xyz); 33 34 data[dti.x].u = WaveReadLaneFirst(data[dti.x].u); 35 data[dti.x].u.x = WaveReadLaneFirst(data[dti.x].u.x); 36 data[dti.x].u.xy = WaveReadLaneFirst(data[dti.x].u.xy); 37 data[dti.x].u.xyz = WaveReadLaneFirst(data[dti.x].u.xyz); 38 39 data[dti.x].i = WaveReadLaneFirst(data[dti.x].i); 40 data[dti.x].i.x = WaveReadLaneFirst(data[dti.x].i.x); 41 data[dti.x].i.xy = WaveReadLaneFirst(data[dti.x].i.xy); 42 data[dti.x].i.xyz = WaveReadLaneFirst(data[dti.x].i.xyz); 43 44 data[dti.x].f = WaveReadLaneFirst(data[dti.x].f); 45 data[dti.x].f.x = WaveReadLaneFirst(data[dti.x].f.x); 46 data[dti.x].f.xy = WaveReadLaneFirst(data[dti.x].f.xy); 47 data[dti.x].f.xyz = WaveReadLaneFirst(data[dti.x].f.xyz); 48 49 data[dti.x].d = WaveReadLaneFirst(data[dti.x].d); 50 data[dti.x].d.x = WaveReadLaneFirst(data[dti.x].d.x); 51 data[dti.x].d.xy = WaveReadLaneFirst(data[dti.x].d.xy); 52 data[dti.x].d.xyz = WaveReadLaneFirst(data[dti.x].d.xyz); 53} 54