From: Marek Olšák <marek.ol...@amd.com>

clearbuffer-mixed-format regressed, because GL_RED_BITS doesn't have
anything to do with the read buffer.
---
 tests/util/piglit-util-gl.c | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c
index 09eb99d..2f5175b 100644
--- a/tests/util/piglit-util-gl.c
+++ b/tests/util/piglit-util-gl.c
@@ -1063,12 +1063,25 @@ piglit_read_pixels_float(GLint x, GLint y, GLsizei 
width, GLsizei height,
 static bool
 piglit_can_probe_ubyte()
 {
-       int r,g,b,a;
+       int r,g,b,a,read;
 
-       glGetIntegerv(GL_RED_BITS, &r);
-       glGetIntegerv(GL_GREEN_BITS, &g);
-       glGetIntegerv(GL_BLUE_BITS, &b);
-       glGetIntegerv(GL_ALPHA_BITS, &a);
+       if (!piglit_is_extension_supported("GL_ARB_framebuffer_object"))
+               return false;
+
+       glGetIntegerv(GL_READ_BUFFER, &read);
+       if (read == GL_FRONT)
+               read = GL_FRONT_LEFT;
+       if (read == GL_BACK)
+               read = GL_BACK_LEFT;
+
+       glGetFramebufferAttachmentParameteriv(GL_READ_FRAMEBUFFER, read,
+                                             
GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE, &r);
+       glGetFramebufferAttachmentParameteriv(GL_READ_FRAMEBUFFER, read,
+                                             
GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE, &g);
+       glGetFramebufferAttachmentParameteriv(GL_READ_FRAMEBUFFER, read,
+                                             
GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE, &b);
+       glGetFramebufferAttachmentParameteriv(GL_READ_FRAMEBUFFER, read,
+                                             
GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, &a);
 
        /* it could be LUMINANCE32F, etc. */
        if (!r && !g && !b && !a)
-- 
2.5.0

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

Reply via email to