summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2021-05-24 23:21:10 -0700
committerMarge Bot <eric+marge@anholt.net>2021-06-23 07:34:22 +0000
commit4dc42843423aa6b0771f863c3359c44810424d63 (patch)
tree28e45ed0a77a02b343eacad65c40ce6b800a1829 /src
parentc19cfa9dc22b805581ac5ed3ad835fed3c8506c2 (diff)
intel/fs: Implement Wa_14013745556 on TGL+.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
Diffstat (limited to 'src')
-rw-r--r--src/intel/compiler/brw_fs_generator.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp
index b0cabe48c42..a3f86e07992 100644
--- a/src/intel/compiler/brw_fs_generator.cpp
+++ b/src/intel/compiler/brw_fs_generator.cpp
@@ -1969,6 +1969,23 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width,
inst->dst.is_accumulator();
}
+ /* Wa_14013745556:
+ *
+ * Always use @1 SWSB for EOT.
+ */
+ if (inst->eot && devinfo->ver >= 12) {
+ if (tgl_swsb_src_dep(swsb).mode) {
+ brw_set_default_exec_size(p, BRW_EXECUTE_1);
+ brw_set_default_mask_control(p, BRW_MASK_DISABLE);
+ brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
+ brw_set_default_swsb(p, tgl_swsb_src_dep(swsb));
+ brw_SYNC(p, TGL_SYNC_NOP);
+ last_insn_offset = p->next_insn_offset;
+ }
+
+ swsb = tgl_swsb_dst_dep(swsb, 1);
+ }
+
if (unlikely(debug_flag))
disasm_annotate(disasm_info, inst, p->next_insn_offset);