[igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Fix a check in is_6bpc function

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Jul 14 14:27:14 UTC 2021


On Wed, Jul 14, 2021 at 01:22:26PM +0000, Srinivas, Vidya wrote:
> Hello Ville,
> 
> I am sorry, I don’t have a 6 bpc external panel. 

You don't need one. Just limit the bpp to 18 when computing the link
params.

> Juha-Pekka had suggested we use the set_lut table as being used in kms_flip_scaled_crc.c
> But when I tried that, max upto 0x7F it would pass (not with original 0xFF00). After that it would give back CRC mismatch.
> 
> Set_lut:
> uint16_t v  = (i * 0xffff / (lut_size - 1)) & 0x7f;
> lut[i].red = v;
> lut[i].green = v;
> lut[i].blue = v;
> 
> Other solutions which worked were:
> 1. Use alpha for primary plane https://patchwork.freedesktop.org/patch/440263/?series=90828&rev=6
> 
> 2. Adding this line before setting the primary gray
> 	igt_plane_set_prop_value(igt_pipe_get_plane_type(&display->pipes[pipe], DRM_PLANE_TYPE_PRIMARY), IGT_PLANE_ALPHA, 0);
> 
> 2. Remove primary plane https://patchwork.freedesktop.org/patch/436178/?series=90828&rev=1
> 
> 3. Use lower alpha values 0x7e for coverage, pre-multiplied and constant https://patchwork.freedesktop.org/patch/438831/?series=90828&rev=3
> 
> 4. Use an alpha buffer for primary commit https://patchwork.freedesktop.org/patch/440157/?series=90828&rev=5
> 
> 5. Use black_fb instead of gray_fb in coverage-vs-premult-vs-constant for primary https://patchwork.freedesktop.org/patch/441554/?series=90828&rev=7
> 
> Apart from these, I disabled dithering in kernel and that too did not help. Screen shows content correctly but CRC mismatch is seen.
> 
> Regards
> Vidya
> 
> 
> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala at linux.intel.com> 
> Sent: Wednesday, July 14, 2021 6:34 PM
> To: Srinivas, Vidya <vidya.srinivas at intel.com>
> Cc: igt-dev at lists.freedesktop.org
> Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Fix a check in is_6bpc function
> 
> On Wed, Jul 14, 2021 at 11:21:47AM +0000, Srinivas, Vidya wrote:
> > Hello Ville,
> > 
> > Apologies. I tried to turn off dithering from kernel itself. But still CRC mismatch came up.
> > This is on Jasperlake chromebook which is using 6bpc panel.
> > 
> > Same jasperlake with 8bpc panel is working fine. 
> > 
> > So, as last resort we did this ☹.
> 
> Well that's a bit unfortunate because now the commit messages are lying, and we still don't know what is going on.
> 
> Do the same failures happen with external DP @ 6bpc? I wouldn't really expect any crc differences since AFAIK nothing in the pipe should change before the dithering block, and with dithering disabled the port should just chop off the extra bits at the very end.
> 
> > 
> > Regards
> > Vidya
> > 
> > -----Original Message-----
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Sent: Wednesday, July 14, 2021 3:55 PM
> > To: Srinivas, Vidya <vidya.srinivas at intel.com>
> > Cc: igt-dev at lists.freedesktop.org
> > Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Fix 
> > a check in is_6bpc function
> > 
> > On Wed, Jul 14, 2021 at 01:30:02PM +0530, Vidya Srinivas wrote:
> > > Fixes commit 3bf28f9dffd41b85c262d4e6664ffbdf5b7d9a93.
> > > 
> > > is_6bpc is supposed to return false if connector is not eDP or DSI.
> > > The right check will be DRM_MODE_CONNECTOR_eDP && 
> > > DRM_MODE_CONNECTOR_DSI By mistake DRM_MODE_CONNECTOR_eDP || 
> > > DRM_MODE_CONNECTOR_DSI was being used.
> > 
> > Instead of these incomplete hacks why aren't we just turning off dithering when doing crc capture?
> > 
> > > 
> > > Credits-to: Ashutosh Dixit <ashutosh.dixit at intel.com>
> > > Signed-off-by: Vidya Srinivas <vidya.srinivas at intel.com>
> > > ---
> > >  tests/kms_plane_alpha_blend.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/tests/kms_plane_alpha_blend.c 
> > > b/tests/kms_plane_alpha_blend.c index a3529dc2190f..8020216c1594
> > > 100644
> > > --- a/tests/kms_plane_alpha_blend.c
> > > +++ b/tests/kms_plane_alpha_blend.c
> > > @@ -454,7 +454,7 @@ static bool is_6bpc(igt_display_t *display, enum pipe pipe) {
> > >  		return false;
> > >  
> > >  	c = output->config.connector;
> > > -	if (c->connector_type != DRM_MODE_CONNECTOR_eDP ||
> > > +	if (c->connector_type != DRM_MODE_CONNECTOR_eDP &&
> > >  		c->connector_type != DRM_MODE_CONNECTOR_DSI)
> > >  		return false;
> > >  
> > > --
> > > 2.32.0
> > > 
> > > _______________________________________________
> > > igt-dev mailing list
> > > igt-dev at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> > 
> > --
> > Ville Syrjälä
> > Intel
> 
> --
> Ville Syrjälä
> Intel

-- 
Ville Syrjälä
Intel


More information about the igt-dev mailing list