[Mesa-dev] [PATCH] i965: Fix glColorPointer(GL_FIXED)

Kenneth Graunke kenneth at whitecape.org
Mon Jun 3 12:58:28 PDT 2013


On 05/31/2013 03:49 PM, Chad Versace wrote:
> 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.

Yes, it does set Normalized, and yes, that would cause the translation 
to fail.

This looks right to me.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

> 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.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42182
> Issue: AXIA-2954
> Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
> ---
>   src/mesa/drivers/dri/i965/brw_draw_upload.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c
> index d2451f9..2ded14b 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-dev mailing list