From: Dave Airlie Date: Sat, 15 Dec 2012 03:24:52 +0000 (+1000) Subject: glsl: avoid using gl context as a memory context X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7d7a549fa03293ede1d1627be5bdb47c11677f87;p=mesa.git glsl: avoid using gl context as a memory context Not sure what was going on here, but running piglit with debug builds might be a good plan :-) Reviewed-by: Kenneth Graunke Signed-off-by: Dave Airlie --- diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index 83d0e871005..be08156e068 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -2301,6 +2301,7 @@ is_varying_var(GLenum shaderType, const ir_variable *var) */ bool assign_varying_locations(struct gl_context *ctx, + void *mem_ctx, struct gl_shader_program *prog, gl_shader *producer, gl_shader *consumer, unsigned num_tfeedback_decls, @@ -2375,10 +2376,10 @@ assign_varying_locations(struct gl_context *ctx, */ assert(!ctx->Extensions.EXT_transform_feedback); } else { - lower_packed_varyings(ctx, producer_base, slots_used, ir_var_out, + lower_packed_varyings(mem_ctx, producer_base, slots_used, ir_var_out, producer); if (consumer) { - lower_packed_varyings(ctx, consumer_base, slots_used, ir_var_in, + lower_packed_varyings(mem_ctx, consumer_base, slots_used, ir_var_in, consumer); } } @@ -2910,7 +2911,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog) continue; if (!assign_varying_locations( - ctx, prog, prog->_LinkedShaders[prev], prog->_LinkedShaders[i], + ctx, mem_ctx, prog, prog->_LinkedShaders[prev], prog->_LinkedShaders[i], i == MESA_SHADER_FRAGMENT ? num_tfeedback_decls : 0, tfeedback_decls)) goto done; @@ -2923,7 +2924,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog) * locations for use by transform feedback. */ if (!assign_varying_locations( - ctx, prog, prog->_LinkedShaders[prev], NULL, num_tfeedback_decls, + ctx, mem_ctx, prog, prog->_LinkedShaders[prev], NULL, num_tfeedback_decls, tfeedback_decls)) goto done; }