From 773f41e3e42051aca5015a188a5c3cbf01a5ef1a Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Mon, 19 Jul 2021 12:33:26 +0300 Subject: [PATCH] intel/perf: disable sseu setting on Gfx12.5+ This is rejected by i915. Signed-off-by: Lionel Landwerlin Reviewed-by: Ian Romanick Part-of: --- src/intel/perf/intel_perf_query.c | 12 ++++++++++-- src/intel/vulkan/anv_perf.c | 6 +++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/intel/perf/intel_perf_query.c b/src/intel/perf/intel_perf_query.c index 03bad5854e3..6f4d5a50b22 100644 --- a/src/intel/perf/intel_perf_query.c +++ b/src/intel/perf/intel_perf_query.c @@ -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); } diff --git a/src/intel/vulkan/anv_perf.c b/src/intel/vulkan/anv_perf.c index cdea955b082..975b294b45d 100644 --- a/src/intel/vulkan/anv_perf.c +++ b/src/intel/vulkan/anv_perf.c @@ -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; }