[igt-dev] [PATCH i-g-t 6/6] lib/i915: Add ADL-P plane offset restriction for CCS framebuffers

Souza, Jose jose.souza at intel.com
Sat Jun 5 00:46:14 UTC 2021


On Fri, 2021-06-04 at 13:39 -0700, Matt Roper wrote:
> From: Imre Deak <imre.deak at intel.com>
> 
> All DPT FB plane offsets must be 2MB-aligned. The kernel takes care of
> aligning the offset for non-CCS framebuffers.  Make sure that the
> allocated CCS FB layout meets the alignment requirement.
> 

Reviewed-by: José Roberto de Souza <jose.souza at intel.com>

> Signed-off-by: Imre Deak <imre.deak at intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
>  lib/igt_fb.c | 26 ++++++++++++++++++++++++--
>  1 file changed, 24 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index ce2aa6ce..ab52ea9f 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -804,11 +804,23 @@ static uint64_t calc_plane_size(struct igt_fb *fb, int plane)
>  		return (uint64_t) fb->strides[plane] *
>  			ALIGN(fb->plane_height[plane], tile_height);
>  	} else if (is_gen12_ccs_plane(fb, plane)) {
> +		uint64_t size;
> +
>  		/* The AUX CCS surface must be page aligned */
> -		return (uint64_t)fb->strides[plane] *
> +		size = (uint64_t)fb->strides[plane] *
>  			ALIGN(fb->plane_height[plane], 64);
> +
> +		/*
> +		 * On ADL_P CCS color planes must be 2MB aligned, until remapping
> +		 * support is added for CCS FBs.
> +		 */
> +		if (IS_ALDERLAKE_P(intel_get_drm_devid(fb->fd)))
> +			size = ALIGN(size, 2 * 1024 * 1024);
> +
> +		return size;
>  	} else {
>  		unsigned int tile_width, tile_height;
> +		uint64_t size;
>  
>  		igt_get_fb_tile_size(fb->fd, fb->modifier, fb->plane_bpp[plane],
>  				     &tile_width, &tile_height);
> @@ -817,8 +829,18 @@ static uint64_t calc_plane_size(struct igt_fb *fb, int plane)
>  		if (is_gen12_ccs_modifier(fb->modifier))
>  			tile_height *= 4;
>  
> -		return (uint64_t) fb->strides[plane] *
> +		size = (uint64_t)fb->strides[plane] *
>  			ALIGN(fb->plane_height[plane], tile_height);
> +
> +		/*
> +		 * On ADL_P CCS color planes must be 2MB aligned, until remapping
> +		 * support is added for CCS FBs.
> +		 */
> +		if (IS_ALDERLAKE_P(intel_get_drm_devid(fb->fd)) &&
> +		    is_ccs_modifier(fb->modifier))
> +			size = ALIGN(size, 2 * 1024 * 1024);
> +
> +		return size;
>  	}
>  }
>  



More information about the igt-dev mailing list