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