anv: query CS timestamp frequency from the kernel
The reference value in gen_device_info isn't going to be acurate on Gen10+. We should query it from the kernel, which reads a couple of register to compute the actual value. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
This commit is contained in:
parent
b66e4b51bf
commit
2ead8f1690
|
@ -371,6 +371,19 @@ anv_physical_device_init(struct anv_physical_device *device,
|
|||
|
||||
bool swizzled = anv_gem_get_bit6_swizzle(fd, I915_TILING_X);
|
||||
|
||||
/* Starting with Gen10, the timestamp frequency of the command streamer may
|
||||
* vary from one part to another. We can query the value from the kernel.
|
||||
*/
|
||||
if (device->info.gen >= 10) {
|
||||
int timestamp_frequency =
|
||||
anv_gem_get_param(fd, I915_PARAM_CS_TIMESTAMP_FREQUENCY);
|
||||
|
||||
if (timestamp_frequency < 0)
|
||||
intel_logw("Kernel 4.16-rc1+ required to properly query CS timestamp frequency");
|
||||
else
|
||||
device->info.timestamp_frequency = timestamp_frequency;
|
||||
}
|
||||
|
||||
/* GENs prior to 8 do not support EU/Subslice info */
|
||||
if (device->info.gen >= 8) {
|
||||
device->subslice_total = anv_gem_get_param(fd, I915_PARAM_SUBSLICE_TOTAL);
|
||||
|
|
Loading…
Reference in New Issue