AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Harry Wentland <harry.wentland@amd.com>
To: Alex Goins <agoins@nvidia.com>
Cc: "Xaver Hugl" <xaver.hugl@gmail.com>,
	dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
	wayland-devel@lists.freedesktop.org,
	"Ville Syrjala" <ville.syrjala@linux.intel.com>,
	"Pekka Paalanen" <pekka.paalanen@collabora.com>,
	"Simon Ser" <contact@emersion.fr>,
	"Melissa Wen" <mwen@igalia.com>,
	"Jonas Ådahl" <jadahl@redhat.com>,
	"Sebastian Wick" <sebastian.wick@redhat.com>,
	"Shashank Sharma" <shashank.sharma@amd.com>,
	"Joshua Ashton" <joshua@froggi.es>,
	"Michel Dänzer" <mdaenzer@redhat.com>,
	"Aleix Pol" <aleixpol@kde.org>,
	"Victoria Brekenfeld" <victoria@system76.com>,
	Sima <daniel@ffwll.ch>, "Uma Shankar" <uma.shankar@intel.com>,
	"Naseer Ahmed" <quic_naseer@quicinc.com>,
	"Christopher Braga" <quic_cbraga@quicinc.com>,
	"Abhinav Kumar" <quic_abhinavk@quicinc.com>,
	"Arthur Grillo" <arthurgrillo@riseup.net>,
	"Hector Martin" <marcan@marcan.st>,
	"Liviu Dudau" <Liviu.Dudau@arm.com>,
	"Sasha McIntosh" <sashamcintosh@google.com>,
	"Chaitanya Kumar Borah" <chaitanya.kumar.borah@intel.com>
Subject: Re: [PATCH v5 00/44] Color Pipeline API w/ VKMS
Date: Thu, 3 Oct 2024 16:00:45 -0400	[thread overview]
Message-ID: <e9ee5afb-e1e0-409c-9af8-143217370f11@amd.com> (raw)
In-Reply-To: <3a6a5a7e-ea86-74b6-788b-b7d76651fd8@nvidia.com>

On 2024-09-10 16:37, Alex Goins wrote:
> Hi Harry,
>
> Thanks for this. I just want to remind about a few things that would be required
> for NVIDIA hardware, as discussed at the Display Next Hackfest -- fully
> understand that they aren't currently included in this series because they
> aren't required on AMD hardware. Allowing color ops to be non-bypassable is a
> big improvement in this direction.
>

Thanks for your feedback.

> In each of these cases, it should be possible to represent NVIDIA's color
> pipeline using the existing color ops, but it would rely on rejecting invalid
> configurations in atomic check, with no way to communicate the limitations to
> clients.
>
> - Tag IN_FORMATS for a color pipeline (as you have mentioned).
>     + Required to communicate that the first NVIDIA pre-blending LUT is
>       incompatible with FP16 inputs.
>

I have a sketch in a branch [1] but the work was a bit larger than
I anticipated so I parked it for now.

> - Introduce a single-channel 1DLUT color op, or add the ability to flag
>   individual channels of an ordinary 1DLUT as read-only.
>     + Required to handle NVIDIA's 1D tone-mapping LUT designed to operate only
>       on the intensity component of ICtCp.
>

I'm reluctant to add a new single-channel colorop type without having the
ability to test it. Though I guess VKMS could serve as a stand-in but that
would mean an implementation for it in VKMS.

> - Allow marking color ops as read-only and non-bypassable (halfway there)
>   and/or allow marking a color op as requiring a modeset to update.
>     + Required to handle specific LUTs that can't have their entries changed
>       while in use without visible glitches/tearing, yet must be enabled to
>       support tone-mapping and pre-blend scaling.
>     + In lieu of the first option, it may be suitable to just use the existing
>       1D curve colorop with only a single curve supported, marked as
>       non-bypassable. Allowing modesets as in the second option would allow for
>       the possibility of selecting different curves, however.
>

Flags should be easy to add to a colorop because a colorop is just a DRM
object, so we can extend it with new properties. I envision this to be a
FLAGS bitmask property, so the implementation can probably look similar
to the rotation property [2]. And the flags can be REQUIRES_MODESET and
SINGLE_CHANNEL, or something like that.

[1] https://gitlab.freedesktop.org/hwentland/linux/-/tree/amd-color-pipeline-v6-in-formats
[2] https://drmdb.emersion.fr/properties/3435973836/rotation

Harry

> Thanks,
> Alex Goins
> NVIDIA

  reply	other threads:[~2024-10-03 20:00 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-19 20:56 [PATCH v5 00/44] Color Pipeline API w/ VKMS Harry Wentland
2024-08-19 20:56 ` [PATCH v5 01/44] drm: Add helper for conversion from signed-magnitude Harry Wentland
2024-08-19 20:56 ` [PATCH v5 02/44] drm/vkms: Round fixp2int conversion in lerp_u16 Harry Wentland
2024-08-27 17:49   ` Louis Chauvet
2024-08-19 20:56 ` [PATCH v5 03/44] drm/vkms: Add kunit tests for VKMS LUT handling Harry Wentland
2024-08-21  1:05   ` Jeff Johnson
2024-08-27 17:49   ` Louis Chauvet
2024-08-28 13:36     ` Harry Wentland
2024-08-19 20:56 ` [PATCH v5 04/44] drm/doc/rfc: Describe why prescriptive color pipeline is needed Harry Wentland
2024-08-19 20:56 ` [PATCH v5 05/44] drm/colorop: Introduce new drm_colorop mode object Harry Wentland
2024-08-27 17:49   ` Louis Chauvet
2024-08-19 20:56 ` [PATCH v5 06/44] drm/colorop: Add TYPE property Harry Wentland
2024-08-19 20:56 ` [PATCH v5 07/44] drm/colorop: Add 1D Curve subtype Harry Wentland
2024-08-19 20:56 ` [PATCH v5 08/44] Documentation/gpu: document drm_colorop Harry Wentland
2024-08-19 20:56 ` [PATCH v5 09/44] drm/colorop: Add BYPASS property Harry Wentland
2024-08-19 20:56 ` [PATCH v5 10/44] drm/colorop: Add NEXT property Harry Wentland
2024-08-19 20:56 ` [PATCH v5 11/44] drm/colorop: Add atomic state print for drm_colorop Harry Wentland
2024-08-19 20:56 ` [PATCH v5 12/44] drm/plane: Add COLOR PIPELINE property Harry Wentland
2024-08-19 20:56 ` [PATCH v5 13/44] drm/colorop: Add NEXT to colorop state print Harry Wentland
2024-08-19 20:56 ` [PATCH v5 14/44] drm/vkms: Add enumerated 1D curve colorop Harry Wentland
2024-08-27 17:49   ` Louis Chauvet
2024-08-19 20:56 ` [PATCH v5 15/44] drm/vkms: Add kunit tests for linear and sRGB LUTs Harry Wentland
2024-08-19 20:56 ` [PATCH v5 16/44] drm/colorop: Introduce DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE Harry Wentland
2024-08-19 20:56 ` [PATCH v5 17/44] drm/colorop: Add 3x4 CTM type Harry Wentland
2024-08-19 20:56 ` [PATCH v5 18/44] drm/vkms: Use s32 for internal color pipeline precision Harry Wentland
2024-08-27 17:49   ` Louis Chauvet
2024-08-19 20:56 ` [PATCH v5 19/44] drm/vkms: add 3x4 matrix in color pipeline Harry Wentland
2024-08-27 17:49   ` Louis Chauvet
2024-09-06 17:08     ` Harry Wentland
2024-08-19 20:56 ` [PATCH v5 20/44] drm/tests: Add a few tests around drm_fixed.h Harry Wentland
2024-08-21  1:07   ` Jeff Johnson
2024-08-21  4:00   ` kernel test robot
2024-08-22 14:55   ` kernel test robot
2024-08-19 20:56 ` [PATCH v5 21/44] drm/vkms: Add tests for CTM handling Harry Wentland
2024-08-19 20:56 ` [PATCH v5 22/44] drm/colorop: pass plane_color_pipeline client cap to atomic check Harry Wentland
2024-08-19 20:56 ` [PATCH v5 23/44] drm/colorop: define a new macro for_each_new_colorop_in_state Harry Wentland
2024-08-19 20:56 ` [PATCH v5 24/44] drm/amd/display: Ignore deprecated props when plane_color_pipeline set Harry Wentland
2024-08-19 20:56 ` [PATCH v5 25/44] drm/amd/display: Add bypass COLOR PIPELINE Harry Wentland
2024-08-19 20:56 ` [PATCH v5 26/44] drm/amd/display: Skip color pipeline initialization for cursor plane Harry Wentland
2024-08-19 20:56 ` [PATCH v5 27/44] drm/amd/display: Add support for sRGB EOTF in DEGAM block Harry Wentland
2024-08-19 20:56 ` [PATCH v5 28/44] drm/amd/display: Add support for sRGB Inverse EOTF in SHAPER block Harry Wentland
2024-08-21  4:52   ` kernel test robot
2024-08-19 20:56 ` [PATCH v5 29/44] drm/amd/display: Add support for sRGB EOTF in BLND block Harry Wentland
2024-08-19 20:56 ` [PATCH v5 30/44] drm/colorop: Add PQ 125 EOTF and its inverse Harry Wentland
2024-08-19 20:56 ` [PATCH v5 31/44] drm/amd/display: Enable support for PQ 125 EOTF and Inverse Harry Wentland
2024-08-19 20:56 ` [PATCH v5 32/44] drm/colorop: add BT2020/BT709 OETF and Inverse OETF Harry Wentland
2024-08-19 20:57 ` [PATCH v5 33/44] drm/amd/display: Add support for BT.709 and BT.2020 TFs Harry Wentland
2024-08-19 20:57 ` [PATCH v5 34/44] drm/colorop: Add 1D Curve Custom LUT type Harry Wentland
2024-08-19 20:57 ` [PATCH v5 35/44] drm/amd/display: add shaper and blend colorops for 1D Curve Custom LUT Harry Wentland
2024-08-19 20:57 ` [PATCH v5 36/44] drm/amd/display: add 3x4 matrix colorop Harry Wentland
2024-08-21  3:19   ` kernel test robot
2024-08-21  9:22   ` kernel test robot
2024-08-19 20:57 ` [PATCH v5 37/44] drm/colorop: Add mutliplier type Harry Wentland
2024-08-19 20:57 ` [PATCH v5 38/44] drm/amd/display: add multiplier colorop Harry Wentland
2024-08-19 20:57 ` [PATCH v5 39/44] drm/amd/display: Swap matrix and multiplier Harry Wentland
2024-08-19 20:57 ` [PATCH v5 40/44] drm/colorop: Define LUT_1D interpolation Harry Wentland
2024-08-19 20:57 ` [PATCH v5 41/44] drm/colorop: allow non-bypass colorops Harry Wentland
2024-08-27 17:49   ` Louis Chauvet
2024-08-19 20:57 ` [PATCH v5 42/44] drm/colorop: Add 3D LUT supports to color pipeline Harry Wentland
2024-08-19 20:57 ` [PATCH v5 43/44] drm/amd/display: add 3D LUT colorop Harry Wentland
2024-08-19 20:57 ` [PATCH v5 44/44] drm/amd/display: Add AMD color pipeline doc Harry Wentland
2024-08-27 17:49 ` [PATCH v5 00/44] Color Pipeline API w/ VKMS Louis Chauvet
2024-10-03 20:09   ` Harry Wentland
2024-08-29 14:55 ` Xaver Hugl
2024-09-09 18:40   ` Harry Wentland
2024-09-10 20:37     ` Alex Goins
2024-10-03 20:00       ` Harry Wentland [this message]
2024-09-10 19:24   ` [PATCH] drm/colorop: get DATA blob ref at duplicate_state Harry Wentland
2024-09-13  0:17     ` Xaver Hugl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e9ee5afb-e1e0-409c-9af8-143217370f11@amd.com \
    --to=harry.wentland@amd.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=agoins@nvidia.com \
    --cc=aleixpol@kde.org \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=arthurgrillo@riseup.net \
    --cc=chaitanya.kumar.borah@intel.com \
    --cc=contact@emersion.fr \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jadahl@redhat.com \
    --cc=joshua@froggi.es \
    --cc=marcan@marcan.st \
    --cc=mdaenzer@redhat.com \
    --cc=mwen@igalia.com \
    --cc=pekka.paalanen@collabora.com \
    --cc=quic_abhinavk@quicinc.com \
    --cc=quic_cbraga@quicinc.com \
    --cc=quic_naseer@quicinc.com \
    --cc=sashamcintosh@google.com \
    --cc=sebastian.wick@redhat.com \
    --cc=shashank.sharma@amd.com \
    --cc=uma.shankar@intel.com \
    --cc=victoria@system76.com \
    --cc=ville.syrjala@linux.intel.com \
    --cc=wayland-devel@lists.freedesktop.org \
    --cc=xaver.hugl@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox