<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [softpipe] piglit drawbuffer-modes regression"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=92954#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [softpipe] piglit drawbuffer-modes regression"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=92954">bug 92954</a>
              from <span class="vcard"><a class="email" href="mailto:karl@kubx.ca" title="Karl Lessard <karl@kubx.ca>"> <span class="fn">Karl Lessard</span></a>
</span></b>
        <pre>The reason this has stopped working is because the drawable is not refreshed
with the data written to the front buffer before reading its pixels.

Since
<a href="https://cgit.freedesktop.org/mesa/mesa/commit/?id=2b676570960277d47477822ffeccc672613f9142">https://cgit.freedesktop.org/mesa/mesa/commit/?id=2b676570960277d47477822ffeccc672613f9142</a>,
the drawable act as the source for reading the front buffer data. Since this
test writes directly to the front buffer, all operations have to be flushed and
reflected by the drawable before attempting to read it.

On a explicit flush, the state tracker take care of refreshing the drawable
with the front buffer data after flushing (see st_glFlush). But in the
drawbuffer-modes test, the flush is done implicitly by calling glReadPixels and
is handled by the soft/llvm pipes themselves (see *pipe_transfer_map). The
drawable does not get refreshed in this case, therefore when the test reads the
front buffer data, it reads garbage.

It is tricky to refresh the drawable after flushing from the pipes because at
that level, we don't know the nature of the resource being mapped for reading
(front buffer, back buffer...). Unless I miss something?</pre>
        </div>
      </p>


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

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