Mesa (staging/20.0): intel/fs: Work around dual-source blending hangs in combination with SIMD16
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jun 1 21:38:30 UTC 2020
Module: Mesa
Branch: staging/20.0
Commit: 9f32f5faa75164e8447bf8d3127bdc9cf8e7f3f5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f32f5faa75164e8447bf8d3127bdc9cf8e7f3f5
Author: Danylo Piliaiev <danylo.piliaiev at globallogic.com>
Date: Thu May 14 15:29:36 2020 +0300
intel/fs: Work around dual-source blending hangs in combination with SIMD16
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 at lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2183
Signed-off-by: Danylo Piliaiev <danylo.piliaiev at globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5037>
(cherry picked from commit 296c04d78c9840f83e7fcaf9b45a4cee96752348)
---
.pick_status.json | 2 +-
src/intel/compiler/brw_fs_visitor.cpp | 17 +++++++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/.pick_status.json b/.pick_status.json
index de6f2cca903..caf3fccab5c 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -1543,7 +1543,7 @@
"description": "intel/fs: Work around dual-source blending hangs in combination with SIMD16",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": null
},
diff --git a/src/intel/compiler/brw_fs_visitor.cpp b/src/intel/compiler/brw_fs_visitor.cpp
index 96e213bd886..a7e31dbcc98 100644
--- a/src/intel/compiler/brw_fs_visitor.cpp
+++ b/src/intel/compiler/brw_fs_visitor.cpp
@@ -538,6 +538,23 @@ fs_visitor::emit_fb_writes()
inst->last_rt = true;
inst->eot = true;
+
+ if (devinfo->gen >= 11 && devinfo->gen <= 12 &&
+ prog_data->dual_src_blend) {
+ /* The dual-source RT write messages fail to release the thread
+ * dependency on ICL and TGL with SIMD32 dispatch, leading to hangs.
+ *
+ * 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(8, "Dual source blending unsupported "
+ "in SIMD16 and SIMD32 modes.\n");
+ }
}
void
More information about the mesa-commit
mailing list