[igt-dev] [PATCH v2] lib/igt_fb: Support Tile Size for AMD non linear modifiers.

Petri Latvala petri.latvala at intel.com
Wed Jun 23 06:15:57 UTC 2021


On Tue, Jun 22, 2021 at 02:11:52PM -0400, Rodrigo Siqueira wrote:
> On 06/21, Mark Yacoub wrote:
> > From: Mark Yacoub <markyacoub at google.com>
> > 
> > Calculate the width and height of the tile on amdgpu when the modifier
> > is not linear.
> > 
> > v1:
> > Change width_ret to bytes not pixels.
> > 
> > Cc: bas at basnieuwenhuizen.nl
> > Cc: daniel.vetter at ffwll.ch
> > Signed-off-by: Mark Yacoub <markyacoub at chromium.org>
> > Change-Id: I30849ee1368fc626d1ce2826fb726cd76565a449
> > ---
> >  lib/igt_fb.c | 13 +++++++++++++
> >  1 file changed, 13 insertions(+)
> > 
> > diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> > index 71b89855..a3926dc9 100644
> > --- a/lib/igt_fb.c
> > +++ b/lib/igt_fb.c
> > @@ -396,6 +396,19 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int fb_bpp,
> >  		vc4_modifier_param = fourcc_mod_broadcom_param(modifier);
> >  		modifier = fourcc_mod_broadcom_mod(modifier);
> >  	}
> > +	// For all non-linear modifiers, AMD uses 64 KiB tiles
> > +	else if (IS_AMD_FMT_MOD(modifier)) {
> > +		igt_require_amdgpu(fd);
> > +		const int bytes_per_pixel = fb_bpp / 8;
> > +		const int format_log2 = log2(bytes_per_pixel);
> > +		const int pixel_log2 = log2(64 * 1024) - format_log2;
> > +		const int width_log2 = (pixel_log2 + 1) / 2;
> > +		const int height_log2 = pixel_log2 - width_log2;
> > +
> > +		*width_ret = bytes_per_pixel << width_log2;
> > +		*height_ret = 1 << height_log2;
> > +		return;
> > +	}
> 
> Hi Mark,
> 
> This patch lgtm,
> 
> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
> 
> However, let's check if Bas has any comment about it.
> 
> Btw, is the CI failure a false positive?

Looks like those results are caused by the regression in the kernel we
had for a bit. I queued this patch for a re-test.


-- 
Petri Latvala


More information about the igt-dev mailing list