Module: Mesa
Branch: main
Commit: ac30c402112558f4b7f6af3c8bdd5a92f5c0fd9b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ac30c402112558f4b7f6af3c8bdd5a92f5c0fd9b

Author: Gert Wollny <[email protected]>
Date:   Sat Jan 21 11:17:58 2023 +0100

r600/sfn: Fix opcode and result dest slot mask for variable size dot

Fixes: commit 2df023a1f1990aad6c20eca85af19c7d21a43203
    r600/sfn: pre-evaluate allowed dest mask in Alu instructions

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8120

Signed-off-by: Gert Wollny <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20826>

---

 src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp 
b/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp
index ceeb90ea035..d778a3465a5 100644
--- a/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp
@@ -71,7 +71,8 @@ AluInstr::AluInstr(EAluOp opcode,
 
    if (dest && slots > 1) {
       switch (m_opcode) {
-      case op2_dot: m_allowed_desk_mask = (1 << (4 - slots)) - 1; break;
+      case op2_dot_ieee: m_allowed_desk_mask = (1 << (5 - slots)) - 1;
+         break;
       default:
          if (has_alu_flag(alu_is_cayman_trans)) {
             m_allowed_desk_mask = (1 << slots) - 1;

Reply via email to