intel/compiler: add lsc_msg_desc_wcmask
authorMarcin Ślusarz <marcin.slusarz@intel.com>
Fri, 12 Aug 2022 14:00:38 +0000 (16:00 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 27 Sep 2023 23:57:25 +0000 (23:57 +0000)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25195>

src/intel/compiler/brw_eu.h

index cf70190..69eceb8 100644 (file)
@@ -1408,12 +1408,12 @@ lsc_vect_size(unsigned vect_size)
 }
 
 static inline uint32_t
-lsc_msg_desc(UNUSED const struct intel_device_info *devinfo,
+lsc_msg_desc_wcmask(UNUSED const struct intel_device_info *devinfo,
              enum lsc_opcode opcode, unsigned simd_size,
              enum lsc_addr_surface_type addr_type,
              enum lsc_addr_size addr_sz, unsigned num_coordinates,
              enum lsc_data_size data_sz, unsigned num_channels,
-             bool transpose, unsigned cache_ctrl, bool has_dest)
+             bool transpose, unsigned cache_ctrl, bool has_dest, unsigned cmask)
 {
    assert(devinfo->has_lsc);
 
@@ -1438,13 +1438,26 @@ lsc_msg_desc(UNUSED const struct intel_device_info *devinfo,
       SET_BITS(addr_type, 30, 29);
 
    if (lsc_opcode_has_cmask(opcode))
-      msg_desc |= SET_BITS(lsc_cmask(num_channels), 15, 12);
+      msg_desc |= SET_BITS(cmask ? cmask : lsc_cmask(num_channels), 15, 12);
    else
       msg_desc |= SET_BITS(lsc_vect_size(num_channels), 14, 12);
 
    return msg_desc;
 }
 
+static inline uint32_t
+lsc_msg_desc(UNUSED const struct intel_device_info *devinfo,
+             enum lsc_opcode opcode, unsigned simd_size,
+             enum lsc_addr_surface_type addr_type,
+             enum lsc_addr_size addr_sz, unsigned num_coordinates,
+             enum lsc_data_size data_sz, unsigned num_channels,
+             bool transpose, unsigned cache_ctrl, bool has_dest)
+{
+   return lsc_msg_desc_wcmask(devinfo, opcode, simd_size, addr_type, addr_sz,
+         num_coordinates, data_sz, num_channels, transpose, cache_ctrl,
+         has_dest, 0);
+}
+
 static inline enum lsc_opcode
 lsc_msg_desc_opcode(UNUSED const struct intel_device_info *devinfo,
                     uint32_t desc)