From 99c1a58b3067893d4fa444cd4abcf13bb43232ef Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 7 Sep 2011 10:19:14 +0100 Subject: [PATCH] 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 --- src/mesa/main/varray.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index 9c9d0d66ea9..13b3405e5ac 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; } -- 2.30.2