Module: Mesa
Branch: master
Commit: 79674066b6f98be96cb63a0332ac421858544a20
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=79674066b6f98be96cb63a0332ac421858544a20

Author: Marek Olšák <marek.ol...@amd.com>
Date:   Mon Aug 28 23:28:33 2017 +0200

st/mesa: fix XPD lowering - don't read dst

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102461

Reviewed-by: Brian Paul <bri...@vmware.com>

---

 src/mesa/state_tracker/st_mesa_to_tgsi.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c 
b/src/mesa/state_tracker/st_mesa_to_tgsi.c
index 916f7fa2e8..fa9fa440ef 100644
--- a/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -562,8 +562,10 @@ compile_instruction(
                ureg_scalar(src[0], TGSI_SWIZZLE_X));
       break;
 
-   case OPCODE_XPD:
-      ureg_MUL(ureg, ureg_writemask(dst[0], TGSI_WRITEMASK_XYZ),
+   case OPCODE_XPD: {
+      struct ureg_dst tmp = ureg_DECL_temporary(ureg);
+
+      ureg_MUL(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_XYZ),
                ureg_swizzle(src[0], TGSI_SWIZZLE_Y, TGSI_SWIZZLE_Z,
                             TGSI_SWIZZLE_X, 0),
                ureg_swizzle(src[1], TGSI_SWIZZLE_Z, TGSI_SWIZZLE_X,
@@ -573,8 +575,9 @@ compile_instruction(
                             TGSI_SWIZZLE_Y, 0),
                ureg_negate(ureg_swizzle(src[1], TGSI_SWIZZLE_Y,
                                         TGSI_SWIZZLE_Z, TGSI_SWIZZLE_X, 0)),
-               ureg_src(dst[0]));
+               ureg_src(tmp));
       break;
+   }
 
    case OPCODE_RSQ:
       ureg_RSQ( ureg, dst[0], ureg_abs(src[0]) );

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to