Mesa (glsl-to-tgsi): glsl_to_tgsi: execute merge_registers() after eliminate_dead_code()

Bryan Cain bryanc at kemper.freedesktop.org
Wed Jun 22 18:30:56 UTC 2011


Module: Mesa
Branch: glsl-to-tgsi
Commit: fd29c7207fff1965225657eaed4f5f0ee1f1f4f5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd29c7207fff1965225657eaed4f5f0ee1f1f4f5

Author: Emil Velikov <emil.l.velikov at gmail.com>
Date:   Tue Jun 21 21:52:19 2011 +0100

glsl_to_tgsi: execute merge_registers() after eliminate_dead_code()

Fixes a regression unintentionally introduced by commit 343e75d9 ("st/mesa: fix shaders with indirect addressing of temps") that caused missing leaves in 3dmark01 test 4 (Nature) and missing/displaced textures on human models in Counter-Strike: Source.

[Bryan: This regression also caused a performance regression in many shaders since it made the dead code elimination pass ineffective.]

Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
Signed-off-by: Bryan Cain <bryancain3 at gmail.com>

---

 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 322bfbb..abeb44a 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -4274,8 +4274,8 @@ get_mesa_program(struct gl_context *ctx,
     */
    if (!v->indirect_addr_temps) {
       v->copy_propagate();
-      v->merge_registers();
       v->eliminate_dead_code();
+      v->merge_registers();
       v->renumber_registers();
    }
    




More information about the mesa-commit mailing list