From: Kenneth Graunke Date: Fri, 9 Aug 2019 02:16:32 +0000 (-0700) Subject: intel/eu: Add a brw_urb_desc helper X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2c762955d4157041f0624b8e485e822af1695c2a;p=mesa.git intel/eu: Add a brw_urb_desc helper Reviewed-by: Jason Ekstrand Reviewed-by: Kristian H. Kristensen Part-of: --- diff --git a/src/intel/compiler/brw_eu.h b/src/intel/compiler/brw_eu.h index 9ed481e10e6..1d509eb026c 100644 --- a/src/intel/compiler/brw_eu.h +++ b/src/intel/compiler/brw_eu.h @@ -311,6 +311,28 @@ brw_message_ex_desc_ex_mlen(UNUSED const struct gen_device_info *devinfo, return GET_BITS(ex_desc, 9, 6); } +static inline uint32_t +brw_urb_desc(const struct gen_device_info *devinfo, + unsigned msg_type, + bool per_slot_offset_present, + bool channel_mask_present, + unsigned global_offset) +{ + if (devinfo->gen >= 8) { + return (SET_BITS(per_slot_offset_present, 17, 17) | + SET_BITS(channel_mask_present, 15, 15) | + SET_BITS(global_offset, 14, 4) | + SET_BITS(msg_type, 3, 0)); + } else if (devinfo->gen >= 7) { + assert(!channel_mask_present); + return (SET_BITS(per_slot_offset_present, 16, 16) | + SET_BITS(global_offset, 13, 3) | + SET_BITS(msg_type, 3, 0)); + } else { + unreachable("unhandled URB write generation"); + } +} + /** * Construct a message descriptor immediate with the specified sampler * function controls.