intel/fs: Implement Wa_14013745556 on TGL+.
authorFrancisco Jerez <currojerez@riseup.net>
Tue, 25 May 2021 06:21:10 +0000 (23:21 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 23 Jun 2021 07:34:22 +0000 (07:34 +0000)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>

src/intel/compiler/brw_fs_generator.cpp

index b0cabe4..a3f86e0 100644 (file)
@@ -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);