https://bugs.freedesktop.org/show_bug.cgi?id=111241
--- Comment #3 from Pierre-Eric Pelloux-Prayer pierre-eric.pelloux-prayer@amd.com --- Here's my understanding of the issue.
This shader uses 2 passes: - the first pass has BufferA as input and output and does:
if (first frame) // init bufferA content else // do something useful
- the 2nd pass has BufferA as input and does:
N = texelFetch(bufferA) for(i=0; i < N; i++) // do something
The problem here is the "// init bufferA content": it fails to initialize the buffer content properly, leading to an infinite loop in the 2nd pass.
The exact code is: if (iFrame==0) { O -= O; return; }
If one replaces this line with: if (iFrame==0) { O = vec4(0.0f); return; }
The shader works fine (you can test the modified version here: https://www.shadertoy.com/view/wtSXzw ).