<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - The driver is not waiting the shader have finished to update the framebuffer before displaying it."
href="https://bugs.freedesktop.org/show_bug.cgi?id=110229#c11">Comment # 11</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - The driver is not waiting the shader have finished to update the framebuffer before displaying it."
href="https://bugs.freedesktop.org/show_bug.cgi?id=110229">bug 110229</a>
from <span class="vcard"><a class="email" href="mailto:daniel@fooishbar.org" title="Daniel Stone <daniel@fooishbar.org>"> <span class="fn">Daniel Stone</span></a>
</span></b>
<pre>(In reply to Laurent from <a href="show_bug.cgi?id=110229#c10">comment #10</a>)
<span class="quote">> -You load the first instruction (the boot) tho the GPU memory, it initialize
> the offset register to go to the next instruction but, there is no guarantee
> that the CPU has loaded the next instruction before the GPU is pointing to
> it.
>
> The solution is to load the last instruction first, and the first
> instruction (the boot) last so, you're guarantee that all the shader
> instructions are loaded before the GPU start to execute them.</span >
I'm afraid that's not the problem. The drivers compile the whole shader, then
copy it to memory, and the entire content is present before the shader stops
executing. This has been extensively battle-tested in many games, conformance
suites, computer-vision analysis, industrial-scale movie renders, etc.
The real answer is that maintaining these drivers is a lot of work, and the
people developing it cannot always drop everything to examine your source code
and debug a relatively complex application for you in the space of a few days.
GPU execution is very, very, different from CPU execution: in particular,
fragment shading is massively parallel (frequently within tiles). It may be
that the execution order is not what you expect, or the access to shared
variables is also not what you expect. It's hard to tell from the code, since
the per-fragment linked-list approach you have is definitely ... novel.
I would try to begin by examining clearly what is going on at each step of your
fragment shader execution, so you can build a more precise theory of what is
going wrong. Good luck.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>