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

Petr Sebor petr at scssoft.com
Mon Nov 11 15:19:13 PST 2013


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>
---
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)
-- 
1.8.3.2



More information about the mesa-dev mailing list