intel/perf: disable sseu setting on Gfx12.5+

This is rejected by i915.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144>
This commit is contained in:
Lionel Landwerlin 2021-07-19 12:33:26 +03:00 committed by Marge Bot
parent d2834dd626
commit 773f41e3e4
2 changed files with 15 additions and 3 deletions

View File

@ -382,8 +382,16 @@ intel_perf_open(struct intel_perf_context *perf_ctx,
properties[p++] = DRM_I915_PERF_PROP_OA_EXPONENT;
properties[p++] = period_exponent;
/* SSEU configuration */
if (intel_perf_has_global_sseu(perf_ctx->perf)) {
/* If global SSEU is available, pin it to the default. This will ensure on
* Gfx11 for instance we use the full EU array. Initially when perf was
* enabled we would use only half on Gfx11 because of functional
* requirements.
*
* Temporary disable this option on Gfx12.5+, kernel doesn't appear to
* support it.
*/
if (intel_perf_has_global_sseu(perf_ctx->perf) &&
perf_ctx->devinfo->verx10 < 125) {
properties[p++] = DRM_I915_PERF_PROP_GLOBAL_SSEU;
properties[p++] = to_user_pointer(&perf_ctx->perf->sseu);
}

View File

@ -144,8 +144,12 @@ anv_device_perf_open(struct anv_device *device, uint64_t metric_id)
* Gfx11 for instance we use the full EU array. Initially when perf was
* enabled we would use only half on Gfx11 because of functional
* requirements.
*
* Temporary disable this option on Gfx12.5+, kernel doesn't appear to
* support it.
*/
if (intel_perf_has_global_sseu(device->physical->perf)) {
if (intel_perf_has_global_sseu(device->physical->perf) &&
device->info.verx10 < 125) {
properties[p++] = DRM_I915_PERF_PROP_GLOBAL_SSEU;
properties[p++] = (uintptr_t) &device->physical->perf->sseu;
}