[Mesa-dev] [PATCH] meta: enable vertex attributes in the context of the newly created array object

Ian Romanick idr at freedesktop.org
Mon Nov 11 15:33:13 PST 2013


On 11/11/2013 03:19 PM, Petr Sebor wrote:
> Otherwise, the function would enable generic vertex attributes 0 and 1 of the
> array object it does not own. This was causing crashes in Euro Truck Simulator 2,
> since the incorrectly enabled generic attribute 0 in the foreign context got
> precedence before vertex position attribute at later time, leading to NULL
> pointer dereference.
> 
> Signed-off-by: Petr Sebor <petr at scssoft.com>

Looks good to me.

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

> ---
> This version is really much better for the reasons both you and Ian mentioned.
> And... works for me! Thanks!
> 
> Petr
> ---
>  src/mesa/drivers/common/meta.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
> index f818416..3b5555e 100644
> --- a/src/mesa/drivers/common/meta.c
> +++ b/src/mesa/drivers/common/meta.c
> @@ -1515,6 +1515,9 @@ setup_glsl_blit_framebuffer(struct gl_context *ctx,
>                                     sizeof(struct vertex), OFFSET(x));
>        _mesa_VertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE,
>                                     sizeof(struct vertex), OFFSET(s));
> +
> +      _mesa_EnableVertexAttribArray(0);
> +      _mesa_EnableVertexAttribArray(1);
>     }
>  
>     /* Generate a relevant fragment shader program for the texture target */
> @@ -1591,8 +1594,6 @@ setup_glsl_blit_framebuffer(struct gl_context *ctx,
>     _mesa_DeleteObjectARB(vs);
>     _mesa_BindAttribLocation(ShaderProg, 0, "position");
>     _mesa_BindAttribLocation(ShaderProg, 1, "texcoords");
> -   _mesa_EnableVertexAttribArray(0);
> -   _mesa_EnableVertexAttribArray(1);
>     link_program_with_debug(ctx, ShaderProg);
>     ralloc_free(mem_ctx);
>     if (texture_2d)
> 



More information about the mesa-dev mailing list