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 <[email protected]>
Tested-by: Ernestas Kulik <[email protected]>
---
 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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to