[Intel-gfx] [PATCH] drm/i915/selftests: Detect unknown swizzling correctly

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Jul 5 18:35:48 UTC 2018


On Thu, Jul 05, 2018 at 06:15:23PM +0100, Chris Wilson wrote:
> i915_gem_detect_bit_6_swizzle() tries to hide unknown swizzling from
> userspace (and ourselves) leaving us with the only clue inside
> i915->quirks & QUIRK_PIN_SWIZZLED_PAGES. If we see this bit set, it
> means that we really have no clue as to what the swizzle pattern is
> being used in any one page and so cannot compute what the reference
> value should be in our tiling selftests. We have to skip the test.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107133
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

i915_gem_detect_bit_6_swizzle() indeed seems to lie.

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

> ---
>  drivers/gpu/drm/i915/selftests/i915_gem_object.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_object.c b/drivers/gpu/drm/i915/selftests/i915_gem_object.c
> index 77dd7a510ea6..885153268968 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_gem_object.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_gem_object.c
> @@ -347,6 +347,14 @@ static int igt_partial_tiling(void *arg)
>  		unsigned int pitch;
>  		struct tile tile;
>  
> +		if (i915->quirks & QUIRK_PIN_SWIZZLED_PAGES)
> +			/*
> +			 * The swizzling pattern is actually unknown as it
> +			 * varies based on physical address of each page.
> +			 * See i915_gem_detect_bit_6_swizzle().
> +			 */
> +			break;
> +
>  		tile.tiling = tiling;
>  		switch (tiling) {
>  		case I915_TILING_X:
> @@ -357,8 +365,8 @@ static int igt_partial_tiling(void *arg)
>  			break;
>  		}
>  
> -		if (tile.swizzle == I915_BIT_6_SWIZZLE_UNKNOWN ||
> -		    tile.swizzle == I915_BIT_6_SWIZZLE_9_10_17)
> +		GEM_BUG_ON(tile.swizzle == I915_BIT_6_SWIZZLE_UNKNOWN);
> +		if (tile.swizzle == I915_BIT_6_SWIZZLE_9_10_17)
>  			continue;
>  
>  		if (INTEL_GEN(i915) <= 2) {
> -- 
> 2.18.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list