Module: Mesa Branch: staging/20.0 Commit: 9bd42de931f254e018910140df49fe6229906336 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9bd42de931f254e018910140df49fe6229906336
Author: Danylo Piliaiev <danylo.pilia...@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-sta...@lists.freedesktop.org> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2183 Signed-off-by: Danylo Piliaiev <danylo.pilia...@globallogic.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@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 2cf53e12c26..9a1aa42597e 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 _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit