OSDN Git Service

i965/vs: When asked to make a dst_reg for a src.xxxx, just write to src.x.
authorEric Anholt <eric@anholt.net>
Thu, 4 Apr 2013 23:30:49 +0000 (16:30 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 10 Apr 2013 16:45:21 +0000 (09:45 -0700)
commit3badbf7f7fa4898c69545fea3c60ea29cf61ae3b
treeac9a12a5cdf63dae3ca115d74139e08261740730
parent007a88ed24e783d38839e69ae07aa19ceabb6c93
i965/vs: When asked to make a dst_reg for a src.xxxx, just write to src.x.

We have several places in our pull constant handling where we make a
temporary src_reg for an int, and then turn it into a dst.  In doing so,
we were writing to the dst.xyzw, so we never register coalesced it with a
later mov from dst.x to real_dst.x.

These extra channels written would be removed if we had channel-wise DCE
in the backend, but we don't.  Fix it for now by just not writing these
extra channels that won't get used.

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_vec4.cpp