From 62501c3af85089b423218a41a2e2433ac849c2d3 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 19 Mar 2013 17:45:02 -0700 Subject: [PATCH] i965/fs: Allow CSE on pre-gen7 varying-index uniform loads All the other expression types allowed here have inst->mlen == 0, and this one has implied MRF writes for all of its payload, so nothing else in the implementation should need to change. Reduces SEND messages for loading from pull constants in kwin's Lanczos shader from 16 to 6. (Due to a deficiency in constant propagation, I can't use the hack I did in the previous commit to test the performance change) Reviewed-by: Kenneth Graunke Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61554 NOTE: This is a candidate for the 9.1 branch. --- src/mesa/drivers/dri/i965/brw_fs_cse.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp index 79169669e6a..2a8fd0be2e7 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp @@ -97,7 +97,7 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb) inst = (fs_inst *) inst->next) { /* Skip some cases. */ - if (is_expression(inst) && !inst->predicate && inst->mlen == 0 && + if (is_expression(inst) && !inst->predicate && !inst->force_uncompressed && !inst->force_sechalf && !inst->conditional_mod) { -- 2.30.2