[igt-dev] [PATCH i-g-t 2/3] lib/igt_fb: Use render copy/blit for tiled formats on platforms w/o HW detiling

Dixit, Ashutosh ashutosh.dixit at intel.com
Wed Jan 22 06:02:06 UTC 2020


On Mon, 20 Jan 2020 14:03:19 -0800, Imre Deak wrote:
>
> On platforms without HW detiling use render copy or blitting to convert
> between a tiled and a linear framebuffer.
>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  lib/igt_fb.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index c81b9de8..b5b1750e 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -1975,17 +1975,27 @@ static bool blitter_ok(const struct igt_fb *fb)
>	return true;
>  }
>
> +static bool hw_can_detile(const struct igt_fb *fb)
> +{
> +	if (fb->modifier == DRM_FORMAT_MOD_NONE)
> +		return true;

The problem with doing this afais is that the code will next try to
mmap_gtt() (i.e. do a linear copy via the aperture) which will also fail
(see igt_get_cairo_surface()). So we may need to use the blitter even for
linear copies (DRM_FORMAT_MOD_NONE).

May want to look at this:

https://patchwork.freedesktop.org/patch/345926/?series=71083&rev=2


More information about the igt-dev mailing list