The test contains a couple of problems that cause failures - one of them
is described in https://bugzilla.freedesktop.org/show_bug.cgi?id=32946,
and can be fixed by swapping buffers in win_one when it is set as the
current drawable of the context, not when win_two is.
The other issue is the actual test failure, which is caused by calling
glClear() only once and when no drawables have been made current, so
nothing is drawn, and glReadPixels() returns garbage. That is fixable by
calling glClear() for each drawable at the appropriate time.

Signed-off-by: Ernestas Kulik <ernestas.ku...@gmail.com>
Tested-by: Ernestas Kulik <ernestas.ku...@gmail.com>
---
 tests/glx/glx-make-current.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/tests/glx/glx-make-current.c b/tests/glx/glx-make-current.c
index fd284ba70..0f743b741 100644
--- a/tests/glx/glx-make-current.c
+++ b/tests/glx/glx-make-current.c
@@ -52,20 +52,15 @@ draw(Display *dpy)
        piglit_dispatch_default_init(PIGLIT_DISPATCH_GL);
 
        glClearColor(0.0, 1.0, 0.0, 1.0);
-       glClear(GL_COLOR_BUFFER_BIT);
-
-       glXMakeCurrent(dpy, win_two, ctx);
 
+       glXMakeCurrent (dpy, win_one, ctx);
        glClear(GL_COLOR_BUFFER_BIT);
-
-
-       glXMakeCurrent(dpy, win_one, ctx);
        pass &= piglit_probe_pixel_rgb(1, 1, green);
+       glXSwapBuffers(dpy, win_one);
 
        glXMakeCurrent(dpy, win_two, ctx);
+       glClear(GL_COLOR_BUFFER_BIT);
        pass &= piglit_probe_pixel_rgb(1, 1, green);
-
-       glXSwapBuffers(dpy, win_one);
        glXSwapBuffers(dpy, win_two);
 
        /* Free our resources when we're done. */
-- 
2.17.1

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to