[Mesa-dev] [PATCH] mesa: raise error for glEnable(GL_VERTEX_ARRAY), etc. in core profile

Ilia Mirkin imirkin at alum.mit.edu
Mon May 23 21:20:15 UTC 2016


Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

On Mon, May 23, 2016 at 5:15 PM, Brian Paul <brianp at vmware.com> wrote:
> Otherwise, if the call executes normally we'll hit an assertion later
> in the VBO code when we draw something.  Note that these cases were
> already handled correctly for the glIsEnabled() function (and the API
> checks were copied from there).
>
> Tested with new piglit gl-3.1-enable-vertex-array test.
>
> v2: fix compat/es mix-up, per Ilia.
>
> Cc: <mesa-stable at lists.freedesktop.org>
> Reviewed-by: Charmaine Lee <charmainel at vmware.com>
> ---
>  src/mesa/main/enable.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
> index d283077..1d674bf 100644
> --- a/src/mesa/main/enable.c
> +++ b/src/mesa/main/enable.c
> @@ -741,12 +741,22 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
>        case GL_VERTEX_ARRAY:
>        case GL_NORMAL_ARRAY:
>        case GL_COLOR_ARRAY:
> -      case GL_INDEX_ARRAY:
>        case GL_TEXTURE_COORD_ARRAY:
> +         if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> +            goto invalid_enum_error;
> +         client_state( ctx, cap, state );
> +         return;
> +      case GL_INDEX_ARRAY:
>        case GL_EDGE_FLAG_ARRAY:
>        case GL_FOG_COORDINATE_ARRAY_EXT:
>        case GL_SECONDARY_COLOR_ARRAY_EXT:
> +         if (ctx->API != API_OPENGL_COMPAT)
> +            goto invalid_enum_error;
> +         client_state( ctx, cap, state );
> +         return;
>        case GL_POINT_SIZE_ARRAY_OES:
> +         if (ctx->API != API_OPENGLES)
> +            goto invalid_enum_error;
>           client_state( ctx, cap, state );
>           return;
>
> --
> 1.9.1
>


More information about the mesa-dev mailing list