diff options
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/intel/compiler/brw_fs_generator.cpp | 10 |
2 files changed, 4 insertions, 8 deletions
diff --git a/.pick_status.json b/.pick_status.json index ae35b953bfc..bbb6d9df41c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1003,7 +1003,7 @@ "description": "intel/fs/gen12: Fixup/simplify SWSB annotations of SIMD32 scratch writes.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "15e3a0d9d264beccb914432ca749d7c0b8a5d43c" }, diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp index 61ac0893b9a..7b336d4e11d 100644 --- a/src/intel/compiler/brw_fs_generator.cpp +++ b/src/intel/compiler/brw_fs_generator.cpp @@ -1378,8 +1378,8 @@ fs_generator::generate_scratch_write(fs_inst *inst, struct brw_reg src) brw_set_default_group(p, inst->group + lower_size * i); if (i > 0) { - brw_set_default_swsb(p, tgl_swsb_null()); - brw_SYNC(p, TGL_SYNC_ALLRD); + assert(swsb.mode & TGL_SBID_SET); + brw_set_default_swsb(p, tgl_swsb_sbid(TGL_SBID_SRC, swsb.sbid)); } else { brw_set_default_swsb(p, tgl_swsb_src_dep(swsb)); } @@ -1387,11 +1387,7 @@ fs_generator::generate_scratch_write(fs_inst *inst, struct brw_reg src) brw_MOV(p, brw_uvec_mrf(lower_size, inst->base_mrf + 1, 0), retype(offset(src, block_size * i), BRW_REGISTER_TYPE_UD)); - if (i + 1 < inst->exec_size / lower_size) - brw_set_default_swsb(p, tgl_swsb_regdist(1)); - else - brw_set_default_swsb(p, tgl_swsb_dst_dep(swsb, 1)); - + brw_set_default_swsb(p, tgl_swsb_dst_dep(swsb, 1)); brw_oword_block_write_scratch(p, brw_message_reg(inst->base_mrf), block_size, inst->offset + block_size * REG_SIZE * i); |