<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [cfl] GPU hang when running UE4Editor"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=110228#c23">Comment # 23</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [cfl] GPU hang when running UE4Editor"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=110228">bug 110228</a>
              from <span class="vcard"><a class="email" href="mailto:danylo.piliaiev@gmail.com" title="Danylo <danylo.piliaiev@gmail.com>"> <span class="fn">Danylo</span></a>
</span></b>
        <pre>Created <span class=""><a href="attachment.cgi?id=144093" name="attach_144093" title="standalone hang reproducer">attachment 144093</a> <a href="attachment.cgi?id=144093&action=edit" title="standalone hang reproducer">[details]</a></span>
standalone hang reproducer

I found a compute shader which hangs GPU, reduced it and made a standalone
reproducer.

Warning: It will hang the system with hard reset being the only solution (I
think it could be classified as a bug because I don't think it should hang so
badly).

Shader itself is small and simple:

#version 430
layout(local_size_x = 4, local_size_y = 4, local_size_z = 4) in;
layout(binding = 0) uniform usamplerBuffer StartOffsetGrid; // length 12160
layout(binding = 1, r32ui) uniform uimageBuffer RWNextCulledLightData; 
void main()
{
    if (all(lessThan(gl_GlobalInvocationID, uvec3(19, 10, 32)))) {
        uint u0 = (((gl_GlobalInvocationID.z * uint(10)) +
gl_GlobalInvocationID.y) * uint(19)) + 32;
        uint u7 = 6000 + u0; // change to 5000 and there hang will go away
        uint u11 = texelFetch(StartOffsetGrid, int(u7)).x;
        uint _225 = imageAtomicAdd(RWNextCulledLightData, 0, u11);
    }


StartOffsetGrid and RWNextCulledLightData point to the same buffer with
RWNextCulledLightData starting right after StartOffsetGrid.

However I'm not able to identify the cause. Change "6000 + u0" to "5000 + u8"
and there will be no hang, in both cases the index will be inside the buffer.

So I need additional help here.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>