struct gen_device_info
{
int gen; /**< Generation number: 4, 5, 6, 7, ... */
+ int revision;
int gt;
bool is_g4x;
*/
uint64_t timestamp_frequency;
+ /**
+ * ID to put into the .aub files.
+ */
+ int simulator_id;
+
/** @} */
};
#define gen_device_info_is_9lp(devinfo) \
((devinfo)->is_broxton || (devinfo)->is_geminilake)
+static inline bool
+gen_device_info_subslice_available(const struct gen_device_info *devinfo,
+ int slice, int subslice)
+{
+ return (devinfo->subslice_masks[slice * devinfo->subslice_slice_stride +
+ subslice / 8] & (1U << (subslice % 8))) != 0;
+}
+
int gen_get_pci_device_id_override(void);
int gen_device_name_to_pci_device_id(const char *name);
bool gen_get_device_info(int devid, struct gen_device_info *devinfo);
void gen_device_info_update_from_topology(struct gen_device_info *devinfo,
const struct drm_i915_query_topology_info *topology);
+static inline uint64_t
+gen_device_info_timebase_scale(const struct gen_device_info *devinfo,
+ uint64_t gpu_timestamp)
+{
+ return (1000000000ull * gpu_timestamp) / devinfo->timestamp_frequency;
+}
+
#ifdef __cplusplus
}
#endif