summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Sebor <petr@scssoft.com>2013-11-11 16:19:00 -0700
committerIan Romanick <ian.d.romanick@intel.com>2013-11-15 13:39:38 -0800
commit2a3dcece7257722cdaa71978e489a1600849b2dd (patch)
tree3af962a4a111d9c0f7484abe24f89cd4c0cc0159
parentaccc276df2d32b46d086bc5beb9d5d5f5224a7a5 (diff)
meta: enable vertex attributes in the context of the newly created array object
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. Cc: "9.2" <mesa-stable@lists.freedesktop.org> Cc: "10.0" <mesa-stable@lists.freedesktop.org> Signed-off-by: Petr Sebor <petr@scssoft.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> (cherry picked from commit f2b844f59d86c5971118bfccb00ddc5a1b69797a)
-rw-r--r--src/mesa/drivers/common/meta.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index aa50dde734b..99b02baadc5 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)