aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2019-08-08 19:16:32 -0700
committerMarge Bot <[email protected]>2020-06-23 17:43:53 +0000
commit2c762955d4157041f0624b8e485e822af1695c2a (patch)
tree89b667284f75cd7c354a6fd2d317a8c658c45661
parentecda98fbb2d27a9b6d2d3e1d30368b2b9b1cd027 (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.h22
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.