[Mesa-dev] [PATCH 01/14] i965: Don't copy propagate sat MOVs into LOAD_PAYLOAD
Kristian Høgsberg
krh at bitplanet.net
Tue Oct 28 15:17:44 PDT 2014
The LOAD_PAYLOAD opcode can't saturate its sources, so skip
saturating MOVs. The register coalescing after lower_load_payload()
will clean up the extra MOVs.
Signed-off-by: Kristian Høgsberg <krh at bitplanet.net>
---
src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
index e1989cb..87ea9c2 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
@@ -454,8 +454,12 @@ fs_visitor::try_constant_propagate(fs_inst *inst, acp_entry *entry)
val.effective_width = inst->src[i].effective_width;
switch (inst->opcode) {
- case BRW_OPCODE_MOV:
case SHADER_OPCODE_LOAD_PAYLOAD:
+ /* LOAD_PAYLOAD can't sat its sources. */
+ if (entry->saturate)
+ break;
+ /* Otherwise, fall through */
+ case BRW_OPCODE_MOV:
inst->src[i] = val;
progress = true;
break;
--
2.1.0
More information about the mesa-dev
mailing list