intel/fs: Work around dual-source blending hangs in combination with SIMD16
authorDanylo Piliaiev <danylo.piliaiev@globallogic.com>
Thu, 14 May 2020 12:29:36 +0000 (15:29 +0300)
committerDanylo Piliaiev <danylo.piliaiev@globallogic.com>
Wed, 27 May 2020 11:35:13 +0000 (14:35 +0300)
It was found that dual-source blending hangs with SIMD16 dispatch in some
specific but unknown situation. Which in the wild happen when rgba
anti-aliasing is enabled for fonts.

Cc: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2183
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5037>

src/intel/compiler/brw_fs_visitor.cpp

index 7b315693e4acf1b68f64a474f3b694b5f8d04ed8..22e83f1adb92dea2db61a06c459102c56dff501d 100644 (file)
@@ -548,9 +548,13 @@ fs_visitor::emit_fb_writes()
        * XXX - Emit an extra single-source NULL RT-write marked LastRT in
        *       order to release the thread dependency without disabling
        *       SIMD32.
+       *
+       * The dual-source RT write messages may lead to hangs with SIMD16
+       * dispatch on ICL due some unknown reasons, see
+       * https://gitlab.freedesktop.org/mesa/mesa/-/issues/2183
        */
-      limit_dispatch_width(16, "Dual source blending unsupported "
-                           "in SIMD32 mode.\n");
+      limit_dispatch_width(8, "Dual source blending unsupported "
+                           "in SIMD16 and SIMD32 modes.\n");
    }
 }