r300/compiler: Disable register rename pass on r500
authorTom Stellard <tstellar@gmail.com>
Sun, 6 Feb 2011 06:39:58 +0000 (22:39 -0800)
committerTom Stellard <tstellar@gmail.com>
Sun, 6 Feb 2011 06:39:58 +0000 (22:39 -0800)
The scheduler and the register allocator are not good enough yet to deal
with the effects of the register rename pass.  This was causing a 50%
performance drop in Lightsmark.  The pass can be re-enabled once the
scheduler and the register allocator are more mature.  r300 and r400
still need this pass, because it prevents a lot of shaders from using
too many texture indirections.

NOTE: This is a candidate for the 7.10 branch.

src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c

index e0d349b..1616306 100644 (file)
@@ -124,7 +124,7 @@ void r3xx_compile_fragment_program(struct r300_fragment_program_compiler* c)
                /* This pass makes it easier for the scheduler to group TEX
                 * instructions and reduces the chances of creating too
                 * many texture indirections.*/
-               {"register rename",             1, !is_r500 || opt, rc_rename_regs,             NULL},
+               {"register rename",             1, !is_r500,    rc_rename_regs,                 NULL},
                {"pair translate",              1, 1,           rc_pair_translate,              NULL},
                {"pair scheduling",             1, 1,           rc_pair_schedule,               NULL},
                {"register allocation",         1, opt,         rc_pair_regalloc,               NULL},