[Mesa-dev] [PATCH 4/5] i965/fs: Only do CSE when the dst types match.

Eric Anholt eric at anholt.net
Fri Feb 15 22:26:21 PST 2013


We could potentially do some CSE even when the dst types aren't the same
on gen6 where there is no implicit dst type conversion iirc, or in the
case of uniform pull constant loads where the dst type doesn't impact
what's stored.  But it's not worth worrying about.
---
 src/mesa/drivers/dri/i965/brw_fs_cse.cpp |    3 ++-
 1 file changed, 2 insertions(+), 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 70c143a..a13ca36 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
@@ -105,7 +105,8 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
 	    /* Match current instruction's expression against those in AEB. */
 	    if (inst->opcode == entry->generator->opcode &&
 		inst->saturate == entry->generator->saturate &&
-		operands_match(entry->generator->src, inst->src)) {
+                inst->dst.type == entry->generator->dst.type &&
+                operands_match(entry->generator->src, inst->src)) {
 
 	       found = true;
 	       progress = true;
-- 
1.7.10.4



More information about the mesa-dev mailing list