Mesa (master): varray.c: fix logic around BGRA with ARB_vertex_type_2_10_10_10_rev.

Dave Airlie airlied at kemper.freedesktop.org
Wed Sep 7 09:21:18 UTC 2011


Module: Mesa
Branch: master
Commit: 99c1a58b3067893d4fa444cd4abcf13bb43232ef
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=99c1a58b3067893d4fa444cd4abcf13bb43232ef

Author: Dave Airlie <airlied at redhat.com>
Date:   Wed Sep  7 10:19:14 2011 +0100

varray.c: fix logic around BGRA with ARB_vertex_type_2_10_10_10_rev.

I introduced a regression in here, I've just split the logic ot now, so
its easier to read/understand.

Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=40664

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/mesa/main/varray.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index 9c9d0d6..13b3405 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -160,10 +160,17 @@ update_array(struct gl_context *ctx,
    if (ctx->Extensions.EXT_vertex_array_bgra &&
        sizeMax == BGRA_OR_4 &&
        size == GL_BGRA) {
-      if (type != GL_UNSIGNED_BYTE &&
-         (ctx->Extensions.ARB_vertex_type_2_10_10_10_rev &&
-          (type != GL_UNSIGNED_INT_2_10_10_10_REV &&
-           type != GL_INT_2_10_10_10_REV))) {
+      GLboolean bgra_error = GL_FALSE;
+
+      if (ctx->Extensions.ARB_vertex_type_2_10_10_10_rev) {
+         if (type != GL_UNSIGNED_INT_2_10_10_10_REV &&
+             type != GL_INT_2_10_10_10_REV &&
+             type != GL_UNSIGNED_BYTE)
+            bgra_error = GL_TRUE;
+      } else if (type != GL_UNSIGNED_BYTE)
+         bgra_error = GL_TRUE;
+
+      if (bgra_error) {
          _mesa_error(ctx, GL_INVALID_VALUE, "%s(GL_BGRA/GLubyte)", func);
          return;
       }




More information about the mesa-commit mailing list