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 {
