summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2012-12-15 13:24:52 +1000
committerDave Airlie <[email protected]>2012-12-15 15:29:49 +1000
commit7d7a549fa03293ede1d1627be5bdb47c11677f87 (patch)
tree7f62b0dfff0b83489598be8059bcdc3333a692cb /src
parentb23e92dbe7682b2aad30c75c75370a4cc2634cb0 (diff)
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 <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/glsl/linker.cpp9
1 files changed, 5 insertions, 4 deletions
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;
}