<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>