<div dir="ltr">On 22 May 2013 16:20, Eric Anholt <span dir="ltr"><<a href="mailto:eric@anholt.net" target="_blank">eric@anholt.net</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>> writes:<br>
> +/**<br>
> + * \file glx-fast-color-clear.c<br>
> + *<br>
> + * On implementations that support fast color clear (e.g. i965/gen7+),<br>
> + * verify that memory writes that were deferred as the result of a<br>
> + * fast clear are properly resolved at the time of glXSwapBuffers.<br>
> + *<br>
> + * We can't use glReadPixels() to do this, since glReadPixels() also<br>
> + * does a resolve, so instead we read the contents of the front buffer<br>
> + * directly from X after the swap.<br>
> + *<br>
> + * Since glXSwapBuffers doesn't actually perform the swap (it simply<br>
> + * queues it to happen later), the test needs to wait for the swap to<br>
> + * occur before reading the front buffer.  If the implementation<br>
> + * supports it, we do so using the GLX_INTEL_swap_event extension.<br>
> + * Otherwise we sleep for 1 second to give time for the swap to occur.<br>
> + */<br>
<br>
</div>It seems to me like the test shouldn't have to do this. Particularly<br>
this text:<br>
<br>
"glXSwapBuffers is in the OpenGL stream if and only if the display and<br>
drawable are those belonging to the calling thread’s current context;<br>
otherwise it is in the X stream."<br>
<br>
and<br>
<br>
"Subsequent OpenGL commands can be issued immediately, but will not be<br>
executed until the buffer swapping has completed, typically during<br>
vertical retrace of the display monitor."<br>
<br>
Our display and drawable are the calling thread's current context, so<br>
the subsequent ReadPixels should be serialized against the result of the<br>
swap.  I think this is a bug in the X Server, and maybe this is what's<br>
affecting those other frontbuffer-reading tests.<br></blockquote><div><br></div><div>But this test doesn't use ReadPixels (see the documentation above); it uses xcb_image_get().  Does that change your opinion about whether this is an X server bug?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Patch 1-3 and 5 are:<br>
<br>
Reviewed-by: Eric Anholt <<a href="mailto:eric@anholt.net">eric@anholt.net</a>><br>
</blockquote></div><br></div></div>