[Bug 43000] huge performance regression in ut2004 since 7.11
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Wed Nov 16 14:25:23 PST 2011
https://bugs.freedesktop.org/show_bug.cgi?id=43000
--- Comment #3 from Ian Romanick <idr at freedesktop.org> 2011-11-16 14:25:23 PST ---
If this was a recent change, I'll guess that it will bisect to my changes to
the way uniforms are handled. I pushed a patch today that may restore previous
performance:
commit 010dc29283cfc7791a29ba8a0570d8f7f9edef05
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Thu Nov 10 12:32:35 2011 -0800
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 <ian.d.romanick at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the dri-devel
mailing list