summaryrefslogtreecommitdiffstats
path: root/src/glx/glxextensions.c
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2011-11-10 12:32:35 -0800
committerIan Romanick <[email protected]>2011-11-16 08:37:44 -0800
commit010dc29283cfc7791a29ba8a0570d8f7f9edef05 (patch)
treea81453c4c296ad3d6f482bf573ed785e63c244a2 /src/glx/glxextensions.c
parentf6a50c0b1ff620d1b721968144a56452c0bd6d85 (diff)
mesa: Only update sampler uniforms that are used by the shader stage
Previously a vertex shader that used no samplers would get updated (by calling the driver's ProgramStringNotify) when a sampler in the fragment shader was updated. This was discovered while investigating some spurious code generation for shaders in Cogs. The behavior in Cogs is especially pessimal because it ping-pongs sampler uniform settings: glUniform1i(sampler1, 0); glUniform1i(sampler2, 1); draw(); glUniform1i(sampler1, 1); glUniform1i(sampler2, 0); draw(); glUniform1i(sampler1, 0); glUniform1i(sampler2, 1); draw(); // etc. ProgramStringNotify is still too big of a hammer. Applications like Cogs will still defeat the shader cache. A lighter-weight mechanism that can work with the shader cache is needed. However, this patch at least restores the previous behavior. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glx/glxextensions.c')
0 files changed, 0 insertions, 0 deletions