summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_link.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2016-04-29 21:12:15 -0700
committerKenneth Graunke <kenneth@whitecape.org>2016-06-23 11:58:50 -0700
commitf7741c521119ce147215d94a4c238e84fc8b1130 (patch)
tree3a8fc1bbc21f0742639b23423bf9af915bcc5347 /src/mesa/drivers/dri/i965/brw_link.cpp
parent586f4a42e78f171c28c3ae37adb8671e09bd74b4 (diff)
downloadexternal_mesa3d-f7741c521119ce147215d94a4c238e84fc8b1130.zip
external_mesa3d-f7741c521119ce147215d94a4c238e84fc8b1130.tar.gz
external_mesa3d-f7741c521119ce147215d94a4c238e84fc8b1130.tar.bz2
i965: Copy propagate before doing variable index lowering.
The scalar backend currently doesn't support variable indexing on temporary arrays, but it does support it on uniform arrays, and some stages support it for input arrays. Make sure these are propagated through before exploding indirects into piles of if-ladders unnecessarily. On Broadwell, no instruction count change in shader-db. total cycles in shared programs: 80675652 -> 80674928 (-0.00%) cycles in affected programs: 649972 -> 649248 (-0.11%) helped: 386 HURT: 165 This will help avoid code quality regressions in a future commit. Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_link.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_link.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp b/src/mesa/drivers/dri/i965/brw_link.cpp
index 3bb04fa..76c580b 100644
--- a/src/mesa/drivers/dri/i965/brw_link.cpp
+++ b/src/mesa/drivers/dri/i965/brw_link.cpp
@@ -130,6 +130,8 @@ process_glsl_ir(gl_shader_stage stage,
lower_noise(shader->ir);
lower_quadop_vector(shader->ir, false);
+ do_copy_propagation(shader->ir);
+
bool lowered_variable_indexing =
lower_variable_index_to_cond_assign((gl_shader_stage)stage,
shader->ir,