diff options
Diffstat (limited to 'src/intel/dev/gen_device_info.h')
-rw-r--r-- | src/intel/dev/gen_device_info.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/intel/dev/gen_device_info.h b/src/intel/dev/gen_device_info.h index 793ce094850..4d08f0dfedd 100644 --- a/src/intel/dev/gen_device_info.h +++ b/src/intel/dev/gen_device_info.h @@ -34,6 +34,8 @@ extern "C" { #endif +struct drm_i915_query_topology_info; + #define GEN_DEVICE_MAX_SLICES (6) /* Maximum on gen10 */ #define GEN_DEVICE_MAX_SUBSLICES (8) /* Maximum on gen11 */ #define GEN_DEVICE_MAX_EUS_PER_SUBSLICE (10) /* Maximum on Haswell */ @@ -121,7 +123,9 @@ struct gen_device_info unsigned num_subslices[GEN_DEVICE_MAX_SUBSLICES]; /** - * Number of EU per subslice. + * Upper bound of number of EU per subslice (some SKUs might have just 1 EU + * fused across all subslices, like 47 EUs, in which case this number won't + * be acurate for one subslice). */ unsigned num_eu_per_subslice; @@ -248,6 +252,15 @@ int gen_device_name_to_pci_device_id(const char *name); bool gen_get_device_info(int devid, struct gen_device_info *devinfo); const char *gen_get_device_name(int devid); +/* Used with SLICE_MASK/SUBSLICE_MASK values from DRM_I915_GETPARAM. */ +void gen_device_info_update_from_masks(struct gen_device_info *devinfo, + uint32_t slice_mask, + uint32_t subslice_mask, + uint32_t n_eus); +/* Used with DRM_IOCTL_I915_QUERY & DRM_I915_QUERY_TOPOLOGY_INFO. */ +void gen_device_info_update_from_topology(struct gen_device_info *devinfo, + const struct drm_i915_query_topology_info *topology); + #ifdef __cplusplus } #endif |