Revert "intel/fs: limit register flag interaction of FIND_*LIVE_CHANNEL"
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 5 Oct 2023 12:18:50 +0000 (15:18 +0300)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 13 Oct 2023 05:37:28 +0000 (08:37 +0300)
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 <lionel.g.landwerlin@intel.com>
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 <trayshar@t-online.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25563>

src/intel/compiler/brw_fs.cpp

index ba34042..db67b33 100644 (file)
@@ -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 {