Mesa (9.1): i965: Fix glColorPointer(GL_FIXED)
Ian Romanick
idr at kemper.freedesktop.org
Wed Jun 26 17:58:38 UTC 2013
Module: Mesa
Branch: 9.1
Commit: 1b4dafc00f4821d30c70704907979d4740430de0
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b4dafc00f4821d30c70704907979d4740430de0
Author: Chad Versace <chad.versace at linux.intel.com>
Date: Tue May 28 16:26:07 2013 -0700
i965: Fix glColorPointer(GL_FIXED)
When a gl_client_array is created with glColorPointer,
gl_client_array::Normalized is true. This caused the translation from the
gl_client_array's type to a BRW_SURFACEFORMAT to assertion fail.
Fixes the spinning cube's color in Android 4.2's ApiDemos.apk,
"Graphics > OpenGL ES".
Fixes assertion failure in mesa-demos/src/egl/opengles1/tri_x11 on Haswell
and Ivybridge:
brw_draw_upload.c:287: get_surface_type: Assertion `0' failed.
No Piglit regressions on Haswell.
Note: This is a candidate for the 9.1 branch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42182
Issue: AXIA-2954
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
(cherry picked from commit 7a9f4d3e7114ca709658a620644ad897bdda41e7)
---
src/mesa/drivers/dri/i965/brw_draw_upload.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c
index ed3b378..35836c7 100644
--- a/src/mesa/drivers/dri/i965/brw_draw_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c
@@ -263,6 +263,14 @@ get_surface_type(struct intel_context *intel,
else {
return ubyte_types_norm[size];
}
+ case GL_FIXED:
+ if (intel->gen >= 8 || intel->is_haswell)
+ return fixed_point_types[size];
+
+ /* This produces GL_FIXED inputs as values between INT32_MIN and
+ * INT32_MAX, which will be scaled down by 1/65536 by the VS.
+ */
+ return int_types_scale[size];
/* See GL_ARB_vertex_type_2_10_10_10_rev.
* W/A: Pre-Haswell, the hardware doesn't really support the formats we'd
* like to use here, so upload everything as UINT and fix
More information about the mesa-commit
mailing list