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

Pandiyan, Dhinakaran dhinakaran.pandiyan at intel.com
Fri Feb 22 17:29:36 UTC 2019



> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala at linux.intel.com]
> Sent: Friday, February 22, 2019 9:27 AM
> To: Pandiyan, Dhinakaran <dhinakaran.pandiyan at intel.com>
> Cc: igt-dev at 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


More information about the igt-dev mailing list