Re: [igt-dev] [HAX 3/5] lib/igt_fb: Use rendercopy for rendering into compressed buffers

Ville Syrjälä
2019-02-21T14:06:16Z

On Wed, Feb 20, 2019 at 06:41:21PM -0800, Dhinakaran Pandiyan wrote:
> @@ -2397,8 +2523,10 @@ cairo_surface_t *igt_get_cairo_surface(int fd, struct igt_fb *fb)
> ((f->cairo_id == CAIRO_FORMAT_INVALID) &&
> (f->pixman_id != PIXMAN_invalid)))
> create_cairo_surface__convert(fd, fb);
> + else if (is_ccs_modifier(fb->tiling))
> + create_cairo_surface__rendercopy(fd, fb);
> else if (fb->tiling == LOCAL_I915_FORMAT_MOD_Y_TILED ||
> - fb->tiling == LOCAL_I915_FORMAT_MOD_Yf_TILED)
> + fb->tiling == LOCAL_I915_FORMAT_MOD_Yf_TILED)
> create_cairo_surface__blit(fd, fb);
> else
> create_cairo_surface__gtt(fd, fb);

Oh, and this reminds me that we still have the <32k byte blitter stride
problem, which I tried to address a bit in
https://patchwork.freedesktop.org/patch/248543/
by using gtt mmaps instead. However that failed for Yf since fences can't
handle Yf. My initial idea was to cpu mmap and tile/detile manually,
but we could actually consider using rendercopy instead.

--
Ville Syrjälä
Intel