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

Pandiyan, Dhinakaran
2019-02-22T17:29:38Z

> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> Sent: Friday, February 22, 2019 9:27 AM
> To: Pandiyan, Dhinakaran <dhinakaran.pandiyan@intel.com>
> Cc: igt-dev@lists.freedesktop.org
> Subject: Re: [igt-dev] [HAX 3/5] lib/igt_fb: Use rendercopy for rendering into
> compressed buffers
>
> On Thu, Feb 21, 2019 at 03:20:35PM -0800, Dhinakaran Pandiyan wrote:
> > On Thu, 2019-02-21 at 16:06 +0200, Ville Syrjälä wrote:
> > > 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);
> > All BGR formats will take this path and it somehow results in Yf-CCS
> > tests specifically failing.
>
> Hmm. Should be a matter of
>
> if (...
> + is_ccs) {
> setup_linear_mapping();
> } else {
> ...
>
> no? Or was that already in there?

I added that in the second version I sent - https://patchwork.freedesktop.org/patch/287379/

-DK
>
> It is slightly suboptimal since in theory we could just use rendercopy to do the
> full conversion for us, skipping the expensive software step. IIRC I briefly
> mentioned this option when Maarten was adding the !32bpp support to
> rendercopy. Anyways, we could consider doing that in the future if we are
> willing to expand our use of rendercopy. The counter argument is that it's one
> more extra thing that could fail.
>
> >
> >
> > > > + 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.
> > Wonder if this has got something to do with BGR format failures.
> >
> > > My initial idea was to cpu mmap and tile/detile manually, but we
> > > could actually consider using rendercopy instead.
> > >
> >
> > More work for Yf then.
> > -DK
>
> --
> Ville Syrjälä
> Intel