1static const uint3 gl_WorkGroupSize = uint3(4u, 1u, 1u); 2 3ByteAddressBuffer _22 : register(t0); 4RWByteAddressBuffer _44 : register(u1); 5 6static uint3 gl_GlobalInvocationID; 7static uint gl_LocalInvocationIndex; 8struct SPIRV_Cross_Input 9{ 10 uint3 gl_GlobalInvocationID : SV_DispatchThreadID; 11 uint gl_LocalInvocationIndex : SV_GroupIndex; 12}; 13 14groupshared float sShared[4]; 15 16void comp_main() 17{ 18 uint ident = gl_GlobalInvocationID.x; 19 float idata = asfloat(_22.Load(ident * 4 + 0)); 20 sShared[gl_LocalInvocationIndex] = idata; 21 GroupMemoryBarrierWithGroupSync(); 22 _44.Store(ident * 4 + 0, asuint(sShared[(4u - gl_LocalInvocationIndex) - 1u])); 23} 24 25[numthreads(4, 1, 1)] 26void main(SPIRV_Cross_Input stage_input) 27{ 28 gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; 29 gl_LocalInvocationIndex = stage_input.gl_LocalInvocationIndex; 30 comp_main(); 31} 32