diff options
author | Kenneth Graunke <[email protected]> | 2012-08-22 00:43:14 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2012-08-25 12:01:10 -0700 |
commit | 174d44a9c4d39a030fe3528acf07f9ac9aa617a1 (patch) | |
tree | 44d76d138c87c4a9f65b4c5b1519c4a6d78d3729 /src/mesa/main/ff_fragment_shader.cpp | |
parent | 85e8e9e000732908b259a7e2cbc1724a1be2d447 (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/main/ff_fragment_shader.cpp')
-rw-r--r-- | src/mesa/main/ff_fragment_shader.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/main/ff_fragment_shader.cpp b/src/mesa/main/ff_fragment_shader.cpp index f743ce109fd..e850d47dd80 100644 --- a/src/mesa/main/ff_fragment_shader.cpp +++ b/src/mesa/main/ff_fragment_shader.cpp @@ -1363,7 +1363,8 @@ create_new_program(struct gl_context *ctx, struct state_key *key) _mesa_associate_uniform_storage(ctx, p.shader_program, fp->Parameters); _mesa_update_shader_textures_used(p.shader_program, fp); - (void) ctx->Driver.ProgramStringNotify(ctx, fp->Target, fp); + if (ctx->Driver.SamplerUniformChange) + ctx->Driver.SamplerUniformChange(ctx, fp->Target, fp); if (!p.shader_program->LinkStatus) _mesa_problem(ctx, "Failed to link fixed function fragment shader: %s\n", |