From 774b787d6b7abe601309cf437b09b592fea0394d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 28 Oct 2013 17:00:23 -0700 Subject: [PATCH] i965/fs: Drop our dead push constants before overflowing to pull constants. The idea of the original order was that you'd dead code eliminate accesses to push constants. But I've never seen a case of that (nor has shader-db), while we frequently see sparse accesses of large constant arrays that would overflow into pull constants. Cuts pull constant use on csgo, serious sam, planeshift, and the cave: total instructions in shared programs: 1695103 -> 1688795 (-0.37%) instructions in affected programs: 92024 -> 85716 (-6.85%) GAINED: 339 LOST: 0 Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_fs.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 76d8a2997ab..a60941a6a98 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -3070,6 +3070,7 @@ fs_visitor::run() split_virtual_grfs(); move_uniform_array_access_to_pull_constants(); + remove_dead_constants(); setup_pull_constants(); bool progress; @@ -3090,8 +3091,6 @@ fs_visitor::run() progress = compute_to_mrf() || progress; } while (progress); - remove_dead_constants(); - schedule_instructions(false); lower_uniform_pull_constant_loads(); -- 2.30.2