intel/compiler: mask GS URB handles at thread payload construction
authorMarcin Ślusarz <marcin.slusarz@intel.com>
Mon, 20 Mar 2023 10:32:07 +0000 (11:32 +0100)
committerMarge Bot <emma+marge@anholt.net>
Wed, 27 Sep 2023 23:57:25 +0000 (23:57 +0000)
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25195>

src/intel/compiler/brw_fs_thread_payload.cpp

index 3bd7d11..5197639 100644 (file)
@@ -108,7 +108,9 @@ gs_thread_payload::gs_thread_payload(const fs_visitor &v)
    unsigned r = reg_unit(v.devinfo);
 
    /* R1: output URB handles. */
-   urb_handles = brw_ud8_grf(r, 0);
+   urb_handles = v.bld.vgrf(BRW_REGISTER_TYPE_UD);
+   v.bld.AND(urb_handles, brw_ud8_grf(r, 0),
+         v.devinfo->ver >= 20 ? brw_imm_ud(0xFFFFFF) : brw_imm_ud(0xFFFF));
    r += reg_unit(v.devinfo);
 
    if (gs_prog_data->include_primitive_id) {