[Intel-gfx] [PATCH] drm/i915: Support FP16 compressed formats on MTL
Lobo, Melanie
melanie.lobo at intel.com
Mon Jun 3 08:37:23 UTC 2024
> -----Original Message-----
> From: Roper, Matthew D <matthew.d.roper at intel.com>
> Sent: Saturday, December 2, 2023 5:38 AM
> To: Lobo, Melanie <melanie.lobo at intel.com>
> Cc: intel-gfx at lists.freedesktop.org; Heikkila, Juha-pekka <juha-
> pekka.heikkila at intel.com>
> Subject: Re: [Intel-gfx] [PATCH] drm/i915: Support FP16 compressed formats on
> MTL
>
> On Fri, Dec 01, 2023 at 02:41:33PM +0530, Melanie Lobo wrote:
> > Supports FP16 format which is a binary floating-point computer number
> > format that occupies 16 bits in computer memory.Platform shall render
> > compression in display engine to receive FP16 compressed formats.
>
> The explanation here is somewhat confusing and might also be missing a few
> words. What you're actually adding support for is an RGB64 format where each
> color component is a 16-bit floating point value, right?
>
> >
> > This kernel change was tested with IGT patch,
> > https://patchwork.freedesktop.org/patch/562014/
> >
> > Test-with: 20231011095520.10768-1-melanie.lobo at intel.com
> >
> > Credits: Juha-Pekka <juha-pekka.heikkila at intel.com>
> > Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> > Cc: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> > Cc: Swati Sharma <swati2.sharma at intel.com>
> > Reported-by: kernel test robot <lkp at intel.com>
> > Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
> > Closes:
> > https://lore.kernel.org/r/202310150454.S9QF86bl-lkp@intel.com/HEAD
> > detached at 29b1181aa95a
>
> I think you misunderstood the robot's directions on your earlier patch.
> It said that you should add these lines if you were fixing the mistakes "...in a
> separate patch/commit (i.e. not just a new version of the same patch/commit)..."
> Since you're just fixing this in the second version of the same patch you shouldn't
> add these lines, otherwise it implies that the whole patch (i.e., the need to add
> support for this new format) was something reported by the test robot.
>
> Instead you should pass the -v flat to git format-patch when creating a new
> version of your patch (e.g., "-v2" for the second revision) and also include an
> indication in the commit message about what has changed since the previous
> versions. E.g.,
>
> v2:
> - Added foo
> - Fixed bar
>
> Also, you seem to have some unintended text at the end of the Closes:
> line that didn't belong there anyway.
>
> > Signed-off-by: Melanie Lobo <melanie.lobo at intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_fb.c | 10 ++++++++++
> > drivers/gpu/drm/i915/display/skl_universal_plane.c | 2 +-
> > 2 files changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_fb.c
> > b/drivers/gpu/drm/i915/display/intel_fb.c
> > index e7678571b0d7..494baf20f76b 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fb.c
> > +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> > @@ -91,6 +91,8 @@ static const struct drm_format_info gen12_ccs_formats[]
> = {
> > { .format = DRM_FORMAT_P016, .num_planes = 4,
> > .char_per_block = { 2, 4, 1, 1 }, .block_w = { 1, 1, 2, 2 }, .block_h = { 1, 1,
> 1, 1 },
> > .hsub = 2, .vsub = 2, .is_yuv = true },
> > + { .format = DRM_FORMAT_XRGB16161616F, .depth = 64, .num_planes =
> 2,
> > + .char_per_block = { 8, 1}, .block_w = { 1, 4}, .block_h = { 1, 2},
> > +.hsub = 1, .vsub = 1 },
>
> Should there be an ARGB form of this supported as well?
>
> > };
> >
> > /*
> > @@ -394,6 +396,9 @@ static bool plane_has_modifier(struct
> drm_i915_private *i915,
> > u8 plane_caps,
> > const struct intel_modifier_desc *md) {
> > + const struct drm_format_info *info =
> > + lookup_format_info(md->formats, md->format_count,
> > +DRM_FORMAT_XRGB16161616F);
> > +
> > if (!IS_DISPLAY_VER(i915, md->display_ver.from, md->display_ver.until))
> > return false;
> >
> > @@ -408,6 +413,11 @@ static bool plane_has_modifier(struct
> drm_i915_private *i915,
> > HAS_FLAT_CCS(i915) != !md->ccs.packed_aux_planes)
> > return false;
> >
> > + /* Check if CSS modifier and FP16 format is supported on different
> platforms */
> > + if (intel_fb_is_ccs_modifier(md->modifier) && info &&
> > + info->format == DRM_FORMAT_XRGB16161616F &&
> DISPLAY_VER(i915) < 14)
> > + return false;
>
> When I look at bspec 49250 and 49251, it appears that this format can be
> supported with compression on display versions 12 and 13 as well. Is there some
> other reason (e.g., a hardware workaround) that requires us to restrict this to
> version 14 and higher?
>
>
> Matt
>
> > +
> > return true;
> > }
> >
> > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > index 245a64332cc7..f5e9be57a74b 100644
> > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > @@ -2091,6 +2091,7 @@ static bool
> gen12_plane_format_mod_supported(struct drm_plane *_plane,
> > case DRM_FORMAT_XBGR8888:
> > case DRM_FORMAT_ARGB8888:
> > case DRM_FORMAT_ABGR8888:
> > + case DRM_FORMAT_XRGB16161616F:
> > if (intel_fb_is_ccs_modifier(modifier))
> > return true;
> > fallthrough;
> > @@ -2115,7 +2116,6 @@ static bool
> gen12_plane_format_mod_supported(struct drm_plane *_plane,
> > case DRM_FORMAT_C8:
> > case DRM_FORMAT_XBGR16161616F:
> > case DRM_FORMAT_ABGR16161616F:
> > - case DRM_FORMAT_XRGB16161616F:
> > case DRM_FORMAT_ARGB16161616F:
> > case DRM_FORMAT_Y210:
> > case DRM_FORMAT_Y212:
> > --
> > 2.17.1
> >
>
> --
> Matt Roper
> Graphics Software Engineer
> Linux GPU Platform Enablement
> Intel Corporation
Thank you Matt.
I have addressed your comments in the next revision.
Ref: https://patchwork.freedesktop.org/patch/596756/?series=124957&rev=6
Regards,
Melanie Lobo
More information about the Intel-gfx
mailing list