[igt-dev] [PATCH i-g-t] test/perf: respect gen11 restriction in disable subslices
Chris Wilson
chris at chris-wilson.co.uk
Mon Mar 30 14:03:48 UTC 2020
Quoting Lionel Landwerlin (2020-03-30 13:48:45)
> In particular don't try to enable more than half the subslices.
>
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1543
> Fixes: 779d43cda49c ("tests/perf: add global sseu parameter tests")
> ---
> tests/perf.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/tests/perf.c b/tests/perf.c
> index 086fdac4..0f65f247 100644
> --- a/tests/perf.c
> +++ b/tests/perf.c
> @@ -5040,7 +5040,19 @@ test_global_sseu_config(void)
> igt_drop_root();
>
> sseu_param = default_sseu;
> - sseu_param.subslice_mask = mask_minus_one(sseu_param.subslice_mask);
> +
> + if (intel_gen(devid) == 11) {
> + /*
> + * On Gen11 there are restrictions on what
> + * subslices can be disabled, notably we're
> + * not able to enable more than half the
> + * subslice. So disable half subslices only.
> + */
> + for (int i = 0; __builtin_popcount(default_sseu.subslice_mask) / 2; i++)
> + sseu_param.subslice_mask = mask_minus_one(sseu_param.subslice_mask);
Oh. This reduces the mask each time, by removing the lowest bit set. So
the for loop removes the first half the set bits.
And icl being special rings a bell, so
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris
More information about the igt-dev
mailing list