[Mesa-dev] [PATCH] mesa: In core profile, refuse to draw unless a VAO is bound.

Ian Romanick idr at freedesktop.org
Mon Mar 24 14:47:19 PDT 2014


On 03/20/2014 11:53 AM, Kenneth Graunke wrote:
> Core profile requires a non-default VAO to be bound.  Currently, calls
> to glVertexAttribPointer raise INVALID_OPERATION unless a VAO is bound,
> and we never actually get any vertex data set.  Trying to draw without
> any vertex data can only cause problems.  In i965, it causes a crash.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76400
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

Candidate for stable?

> ---
>  src/mesa/main/api_validate.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
> index f3fd1a4..923a195 100644
> --- a/src/mesa/main/api_validate.c
> +++ b/src/mesa/main/api_validate.c
> @@ -125,8 +125,11 @@ check_valid_to_render(struct gl_context *ctx, const char *function)
>  	 return GL_FALSE;
>        break;
>  
> -   case API_OPENGL_COMPAT:
>     case API_OPENGL_CORE:
> +      if (ctx->Array.VAO == ctx->Array.DefaultVAO)
> +         return GL_FALSE;
> +      /* fallthrough */
> +   case API_OPENGL_COMPAT:
>        {
>           const struct gl_shader_program *vsProg =
>              ctx->Shader.CurrentProgram[MESA_SHADER_VERTEX];
> 



More information about the mesa-dev mailing list