Running OpenGL program with two glDispatch() calls, causes gpu hang on HD
Graphics 5500.
Program basically does:
if (1)
{
glUseProgram(computeprogram);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, ssbo_test);
glDispatchCompute(256/4, 256/4, 256/2);
glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT);
}
if (1)
{
glUseProgram(computeprogram);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, ssbo_test);
glDispatchCompute(256/4, 256/4, 256/2);
glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT);
}
.. and then simple one-triangle fullscreen pass to main framebuffer (0) using
that SSBO.
When both of those are enabled, my computer nearly hangs and dmesg reports:
[127049.481163] drm/i915: Resetting chip after gpu hang.
But if only one of those is enabled, everything is ok, compute dispatch takes
13ms and debug output renders on the screen.