On 01/28/2013 05:39 PM, Ian Romanick wrote:
From: Ian Romanick<[email protected]>

Signed-off-by: Ian Romanick<[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59833
---
  tests/glx/glx-swap-pixmap.c | 16 ++++++++++++++--
  1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/tests/glx/glx-swap-pixmap.c b/tests/glx/glx-swap-pixmap.c
index 1a91578..855396a 100644
--- a/tests/glx/glx-swap-pixmap.c
+++ b/tests/glx/glx-swap-pixmap.c
@@ -44,9 +44,11 @@ main(int argc, char **argv)
  {
        Pixmap p;
        GLXPixmap g;
-       float green[4] = {0.0, 1.0, 0.0, 0.0};
+       static const float green_alpha_zero[4] = {0.0, 1.0, 0.0, 0.0};
+       static const float green_alpha_one[4] = {0.0, 1.0, 0.0, 1.0};
        GLXContext ctx;
        bool pass;
+       GLint alpha_bits;

        dpy = XOpenDisplay(NULL);
        if (dpy == NULL) {
@@ -80,7 +82,17 @@ main(int argc, char **argv)
         */
        XSync(dpy, False);

-       pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height, green);
+       /* If the visual has no alpha, then the GL spec requires that 1.0 be
+        * read back.  Otherwise, we should read back the 0.0 that we wrote.
+        */
+       glGetIntegerv(GL_ALPHA_BITS,&alpha_bits);
+       if (alpha_bits == 0) {
+               pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height,
+                                             green_alpha_one);
+       } else {
+               pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height,
+                                             green_alpha_zero);
+       }

        glXDestroyPixmap(dpy, g);


Reviewed-by: Brian Paul <[email protected]>
_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to