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

Author: Lionel Landwerlin <[email protected]>
Date:   Thu Oct  5 15:18:50 2023 +0300

Revert "intel/fs: limit register flag interaction of FIND_*LIVE_CHANNEL"

This reverts commit c9739e8912286a212359f3a5a4f958c6165ce2cc.

We don't have a full understanding of what is going on but reverting
definitely fixes a hang.

Signed-off-by: Lionel Landwerlin <[email protected]>
Fixes: c9739e8912 ("intel/fs: limit register flag interaction of 
FIND_*LIVE_CHANNEL")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9868
Tested-By: Valentin Geyer <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25563>

---

 src/intel/compiler/brw_fs.cpp | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index ba3404258bf..db67b332576 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -1013,9 +1013,6 @@ fs_inst::flags_written(const intel_device_info *devinfo) 
const
    /* On Gfx4 and Gfx5, sel.l (for min) and sel.ge (for max) are implemented
     * using a separate cmpn and sel instruction.  This lowering occurs in
     * fs_vistor::lower_minmax which is called very, very late.
-    *
-    * FIND_LIVE_CHANNEL & FIND_LAST_LIVE_CHANNEL are lowered in
-    * lower_find_live_channel() on Gfx8+ and do not use the flag registers.
     */
    if ((conditional_mod && ((opcode != BRW_OPCODE_SEL || devinfo->ver <= 5) &&
                             opcode != BRW_OPCODE_CSEL &&
@@ -1023,9 +1020,8 @@ fs_inst::flags_written(const intel_device_info *devinfo) 
const
                             opcode != BRW_OPCODE_WHILE)) ||
        opcode == FS_OPCODE_FB_WRITE) {
       return flag_mask(this, 1);
-   } else if ((devinfo->ver <= 7 &&
-               (opcode == SHADER_OPCODE_FIND_LIVE_CHANNEL ||
-                opcode == SHADER_OPCODE_FIND_LAST_LIVE_CHANNEL)) ||
+   } else if (opcode == SHADER_OPCODE_FIND_LIVE_CHANNEL ||
+              opcode == SHADER_OPCODE_FIND_LAST_LIVE_CHANNEL ||
               opcode == FS_OPCODE_LOAD_LIVE_CHANNELS) {
       return flag_mask(this, 32);
    } else {

Reply via email to