summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2012-08-22 00:43:14 -0700
committerKenneth Graunke <[email protected]>2012-08-25 12:01:10 -0700
commit174d44a9c4d39a030fe3528acf07f9ac9aa617a1 (patch)
tree44d76d138c87c4a9f65b4c5b1519c4a6d78d3729 /src/mesa/drivers
parent85e8e9e000732908b259a7e2cbc1724a1be2d447 (diff)
mesa: Use a new, more specific hook for shader uniform changes.
Gallium drivers and i965 don't require special notification when sampler uniforms change. They simply see the _NEW_TEXTURE and adjust their indirection tables. These drivers don't want ProgramStringNotify: it simply causes pointless recompiles. Unfortunately, i915 still requires shader recompiles and needs ProgramStringNotify. Rather than trying to fix that, simply change the hook to a new, more specific one: ShaderUniformChange. On i915, this translates to ProgramStringNotify; others simply ignore it. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r--src/mesa/drivers/dri/i915/i915_fragprog.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c b/src/mesa/drivers/dri/i915/i915_fragprog.c
index 5b7e93ecc40..7a6e0673678 100644
--- a/src/mesa/drivers/dri/i915/i915_fragprog.c
+++ b/src/mesa/drivers/dri/i915/i915_fragprog.c
@@ -1303,6 +1303,13 @@ i915ProgramStringNotify(struct gl_context * ctx,
return true;
}
+static void
+i915SamplerUniformChange(struct gl_context *ctx,
+ GLenum target, struct gl_program *prog)
+{
+ i915ProgramStringNotify(ctx, target, prog);
+}
+
void
i915_update_program(struct gl_context *ctx)
{
@@ -1456,4 +1463,5 @@ i915InitFragProgFuncs(struct dd_function_table *functions)
functions->DeleteProgram = i915DeleteProgram;
functions->IsProgramNative = i915IsProgramNative;
functions->ProgramStringNotify = i915ProgramStringNotify;
+ functions->SamplerUniformChange = i915SamplerUniformChange;
}