On 05/08/2012 05:59 PM, Eric Anholt wrote:
Total instructions: 261582 ->  261316
135/2147 programs affected (6.3%)
36752 ->  36486 instructions in affected programs (0.7% reduction)

This excludes a tropics shader that now gets 16-wide mode and throws
off the numbers.  5 shaders are hurt: two extra MOVs in 4 tropics
shaders it looks like because we don't split register names according
to independent webs, and one gstreamer shader where it looks like
try_rewrite_rhs_to_dst() is falling on its face.

This should also help avoid a regression in VSes from idr's ARB
programs to GLSL work.

Sort of, but not really.  It seems to change cases like

(assign (xyzw) (var_ref gl_TexCoord[5]) (constant vec4 (0.000000 0.500000 0.000000 1.000000)) ) mov(8) m10<1>.xzF 0F { align16 WE_normal 1Q }; mov(8) m10<1>.yF 0.5F { align16 WE_normal 1Q }; mov(8) m10<1>.wF 1F { align16 WE_normal 1Q }; (assign (x) (var_ref gl_TexCoord[5]) (expression float dot (var_ref vertex_attrib8) (var_ref gl_Env14) ) ) dp4(8) m10<1>.xF g12<4,4,1>F g5<0,4,1>F { align16 WE_normal 1Q };

into

(assign (zw) (var_ref gl_TexCoord[5]) (constant vec2 (0.000000 1.000000)) ) mov(8) g16<1>.xF 0F { align16 WE_normal 1Q }; mov(8) g16<1>.yF 1F { align16 WE_normal 1Q }; mov(8) m10<1>.zwF g16<4,4,1>.yyxyF { align16 WE_normal 1Q }; (assign (x) (var_ref gl_TexCoord[5]) (expression float dot (var_ref vertex_attrib8) (var_ref gl_Env14) ) ) dp4(8) m10<1>.xF g12<4,4,1>F g5<0,4,1>F { align16 WE_normal 1Q };

The extra load of 0.5 is eliminated (yay), but now the immediate values are loaded into an extra temporary (boo) resulting in the same total number of instructions.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to