On Mon, 2026-04-13 at 09:50 +0300, Jani Nikula wrote:
> On Mon, 13 Apr 2026, Jay Liu <jay.liu@mediatek.com> wrote:
> > 1. Add 10-bit color depth flow to gamma test for MediaTek devices,
> > which only
> > support bit-true results with 10-bit data. The test now selects 8-
> > bit or
> > 10-bit color depth and framebuffer format based on device type.
> > 
> > 2. To satisfy the legacy gamma test requirements, the MTK Gamma LUT
> > limit
> > should be set to 4092, in the current 16-bit LUT design, setting
> > the entry
> >  to 0xffd0 ensures the driver maps it correctly to 4092.
> > 
> > Signed-off-by: Jay Liu <jay.liu@mediatek.com>
> > ---
> >  tests/kms_color.c | 35 +++++++++++++++++++++++++++--------
> >  1 file changed, 27 insertions(+), 8 deletions(-)
> > 
> > diff --git a/tests/kms_color.c b/tests/kms_color.c
> > index 565edb2dc..033207368 100644
> > --- a/tests/kms_color.c
> > +++ b/tests/kms_color.c
> > @@ -288,7 +288,7 @@ static bool test_pipe_legacy_gamma(data_t
> > *data,
> >  fb_id = igt_create_fb(data->drm_fd,
> >        mode->hdisplay,
> >        mode->vdisplay,
> > -      DRM_FORMAT_XRGB8888,
> > +      data->drm_format,
> >        DRM_FORMAT_MOD_LINEAR,
> >        &fb);
> >  igt_assert(fb_id);
> > @@ -296,7 +296,7 @@ static bool test_pipe_legacy_gamma(data_t
> > *data,
> >  fb_modeset_id = igt_create_fb(data->drm_fd,
> >        mode->hdisplay,
> >        mode->vdisplay,
> > -      DRM_FORMAT_XRGB8888,
> > +      data->drm_format,
> >        DRM_FORMAT_MOD_LINEAR,
> >        &fb_modeset);
> >  igt_assert(fb_modeset_id);
> > @@ -322,9 +322,20 @@ static bool test_pipe_legacy_gamma(data_t
> > *data,
> >  igt_plane_set_fb(primary, &fb);
> >  
> >  red_lut[0] = green_lut[0] = blue_lut[0] = 0;
> > -for (i = 1; i < legacy_lut_size; i++)
> > -red_lut[i] = green_lut[i] = blue_lut[i] = 0xffff;
> > -igt_assert_eq(drmModeCrtcSetGamma(data->drm_fd, primary->crtc-
> > >crtc_id,
> > +for (i = 1; i < legacy_lut_size; i++) {
> > +/*
> > + * The Medaitek Gamma LUT maps 10bit input data to
> > 12bit output.
> > + * In this test case, the maximum input value is 1023.
> > + * When the Gamma function is disabled, the data
> > defaults to a 4092 output.
> > + * To achieve bit true results, the Gamma LUT maximum
> > must be set to 4092.
> > + * Note that 0xFFFD0 represents 16-bit,which maps to
> > 4092 in 12-bit depth.
> > + */
> > +if (is_mtk_device(data->drm_fd))
> > +red_lut[i] = green_lut[i] = blue_lut[i] =
> > 0xffd0;
> > +else
> > +red_lut[i] = green_lut[i] = blue_lut[i] =
> > 0xffff;
> > +}
> > +igt_assert_eq(drmModeCrtcSetGamma(data->drm_fd, primary->pipe-
> > >crtc_id,
> >    legacy_lut_size, red_lut,
> > green_lut, blue_lut), 0);
> 
> This does not compile.
I am very sorry about this. I will fix this issue in the next version
and be extra careful with the verification to ensure no additional bugs
are introduced
> 
> >  igt_display_commit(&data->display);
> >  igt_wait_for_vblank(primary->crtc);
> > @@ -752,14 +763,22 @@ static void
> >  run_gamma_degamma_tests_for_crtc(data_t *data, igt_crtc_t *crtc,
> >   bool (*test_t)(data_t*, igt_plane_t*))
> >  {
> > +bool is_mtk = false;
> > +
> >  test_setup(data, crtc);
> >  
> > +/* MediaTek requires 10-bit pipeline for accurate (bit true)
> > color processing */
> > +if (is_mtk_device(data->drm_fd))
> > +is_mtk = true;
> > +
> >  /*
> > - * We assume an 8bits depth per color for degamma/gamma LUTs
> > + * We assume an 8bits or 10bits depth per color for
> > degamma/gamma LUTs
> >   * for CRC checks with framebuffer references.
> >   */
> > -data->color_depth = 8;
> > -data->drm_format = DRM_FORMAT_XRGB8888;
> > +
> > +/* MediaTek requires 10-bit pipeline for accurate (bit true)
> > color processing */
> > +data->color_depth = is_mtk ? 10 : 8;
> > +data->drm_format = is_mtk ? DRM_FORMAT_XRGB2101010 :
> > DRM_FORMAT_XRGB8888;
> >  data->mode = igt_output_get_mode(data->output);
> >  
> >  igt_require(crtc_output_combo_valid(data, crtc));
> 
> 

************* MEDIATEK Confidentiality Notice
 ********************
The information contained in this e-mail message (including any 
attachments) may be confidential, proprietary, privileged, or otherwise
exempt from disclosure under applicable laws. It is intended to be 
conveyed only to the designated recipient(s). Any use, dissemination, 
distribution, printing, retaining or copying of this e-mail (including its 
attachments) by unintended recipient(s) is strictly prohibited and may 
be unlawful. If you are not an intended recipient of this e-mail, or believe
 
that you have received this e-mail in error, please notify the sender 
immediately (by replying to this e-mail), delete any and all copies of 
this e-mail (including any attachments) from your system, and do not
disclose the content of this e-mail to any other person. Thank you!