diff options
author | Kenneth Graunke <[email protected]> | 2019-08-08 19:16:32 -0700 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-06-23 17:43:53 +0000 |
commit | 2c762955d4157041f0624b8e485e822af1695c2a (patch) | |
tree | 89b667284f75cd7c354a6fd2d317a8c658c45661 | |
parent | ecda98fbb2d27a9b6d2d3e1d30368b2b9b1cd027 (diff) |
intel/eu: Add a brw_urb_desc helper
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Kristian H. Kristensen <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5596>
-rw-r--r-- | src/intel/compiler/brw_eu.h | 22 |
1 files changed, 22 insertions, 0 deletions
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. |