From: Sebastian Wick <sebastian.wick@redhat.com>
To: Melissa Wen <mwen@igalia.com>
Cc: Pekka Paalanen <pekka.paalanen@collabora.com>,
kernel-dev@igalia.com, Shashank Sharma <Shashank.Sharma@amd.com>,
sunpeng.li@amd.com, airlied@gmail.com, Xinhui.Pan@amd.com,
Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>,
Xaver Hugl <xaver.hugl@gmail.com>,
dri-devel@lists.freedesktop.org,
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>,
Alex Hung <alex.hung@amd.com>,
amd-gfx@lists.freedesktop.org, daniel@ffwll.ch,
Simon Ser <contact@emersion.fr>,
Alex Deucher <alexander.deucher@amd.com>,
Harry Wentland <harry.wentland@amd.com>,
christian.koenig@amd.com, Joshua Ashton <joshua@froggi.es>,
sungjoon.kim@amd.com
Subject: Re: [PATCH v4 09/32] drm/amd/display: add plane 3D LUT driver-specific properties
Date: Fri, 6 Oct 2023 11:09:48 +0200 [thread overview]
Message-ID: <20231006090948.GA400742@toolbox> (raw)
In-Reply-To: <20231005171527.203657-10-mwen@igalia.com>
On Thu, Oct 05, 2023 at 04:15:04PM -0100, Melissa Wen wrote:
> Add 3D LUT property for plane color transformations using a 3D lookup
> table. 3D LUT allows for highly accurate and complex color
> transformations and is suitable to adjust the balance between color
> channels. It's also more complex to manage and require more
> computational resources.
>
> Since a 3D LUT has a limited number of entries in each dimension we want
> to use them in an optimal fashion. This means using the 3D LUT in a
> colorspace that is optimized for human vision, such as sRGB, PQ, or
> another non-linear space. Therefore, userpace may need one 1D LUT
> (shaper) before it to delinearize content and another 1D LUT after 3D
> LUT (blend) to linearize content again for blending. The next patches
> add these 1D LUTs to the plane color mgmt pipeline.
>
> v3:
> - improve commit message about 3D LUT
> - describe the 3D LUT entries and size (Harry)
>
> v4:
> - advertise 3D LUT max size as the size of a single-dimension
>
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 18 +++++++++++++++
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 9 ++++++++
> .../amd/display/amdgpu_dm/amdgpu_dm_color.c | 14 +++++++++++
> .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 23 +++++++++++++++++++
> 4 files changed, 64 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> index 62044d41da75..f7adaa52c23f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> @@ -363,6 +363,24 @@ struct amdgpu_mode_info {
> * @plane_hdr_mult_property:
> */
> struct drm_property *plane_hdr_mult_property;
> + /**
> + * @plane_lut3d_property: Plane property for color transformation using
> + * a 3D LUT (pre-blending), a three-dimensional array where each
> + * element is an RGB triplet. Each dimension has a size of the cubed
> + * root of lut3d_size. The array contains samples from the approximated
This should be "Each dimension has a size of lut3d_size" now.
> + * function. On AMD, values between samples are estimated by
> + * tetrahedral interpolation. The array is accessed with three indices,
> + * one for each input dimension (color channel), blue being the
> + * outermost dimension, red the innermost.
> + */
> + struct drm_property *plane_lut3d_property;
> + /**
> + * @plane_degamma_lut_size_property: Plane property to define the max
> + * size of 3D LUT as supported by the driver (read-only). The max size
> + * is the max size of one dimension and, therefore, the max number of
> + * entries for 3D LUT array is the 3D LUT size cubed;
> + */
> + struct drm_property *plane_lut3d_size_property;
> };
>
> #define AMDGPU_MAX_BL_LEVEL 0xFF
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> index bb2ce843369d..7a2350c62cf1 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> @@ -784,6 +784,11 @@ struct dm_plane_state {
> * TF is needed for any subsequent linear-to-non-linear transforms.
> */
> __u64 hdr_mult;
> + /**
> + * @lut3d: 3D lookup table blob. The blob (if not NULL) is an array of
> + * &struct drm_color_lut.
> + */
> + struct drm_property_blob *lut3d;
> };
>
> struct dm_crtc_state {
> @@ -869,6 +874,10 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
>
> void amdgpu_dm_trigger_timing_sync(struct drm_device *dev);
>
> +/* 3D LUT max size is 17x17x17 (4913 entries) */
> +#define MAX_COLOR_3DLUT_SIZE 17
> +#define MAX_COLOR_3DLUT_BITDEPTH 12
> +/* 1D LUT size */
> #define MAX_COLOR_LUT_ENTRIES 4096
> /* Legacy gamm LUT users such as X doesn't like large LUT sizes */
> #define MAX_COLOR_LEGACY_LUT_ENTRIES 256
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> index caf49a044ab4..011f2f9ec890 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> @@ -230,6 +230,20 @@ amdgpu_dm_create_color_properties(struct amdgpu_device *adev)
> return -ENOMEM;
> adev->mode_info.plane_hdr_mult_property = prop;
>
> + prop = drm_property_create(adev_to_drm(adev),
> + DRM_MODE_PROP_BLOB,
> + "AMD_PLANE_LUT3D", 0);
> + if (!prop)
> + return -ENOMEM;
> + adev->mode_info.plane_lut3d_property = prop;
> +
> + prop = drm_property_create_range(adev_to_drm(adev),
> + DRM_MODE_PROP_IMMUTABLE,
> + "AMD_PLANE_LUT3D_SIZE", 0, UINT_MAX);
> + if (!prop)
> + return -ENOMEM;
> + adev->mode_info.plane_lut3d_size_property = prop;
> +
> return 0;
> }
> #endif
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> index ae64d4b73360..068798ffdd56 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> @@ -1359,6 +1359,8 @@ dm_drm_plane_duplicate_state(struct drm_plane *plane)
>
> if (dm_plane_state->degamma_lut)
> drm_property_blob_get(dm_plane_state->degamma_lut);
> + if (dm_plane_state->lut3d)
> + drm_property_blob_get(dm_plane_state->lut3d);
>
> dm_plane_state->degamma_tf = old_dm_plane_state->degamma_tf;
> dm_plane_state->hdr_mult = old_dm_plane_state->hdr_mult;
> @@ -1432,6 +1434,8 @@ static void dm_drm_plane_destroy_state(struct drm_plane *plane,
>
> if (dm_plane_state->degamma_lut)
> drm_property_blob_put(dm_plane_state->degamma_lut);
> + if (dm_plane_state->lut3d)
> + drm_property_blob_put(dm_plane_state->lut3d);
>
> if (dm_plane_state->dc_state)
> dc_plane_state_release(dm_plane_state->dc_state);
> @@ -1462,6 +1466,14 @@ dm_atomic_plane_attach_color_mgmt_properties(struct amdgpu_display_manager *dm,
> drm_object_attach_property(&plane->base,
> dm->adev->mode_info.plane_hdr_mult_property,
> AMDGPU_HDR_MULT_DEFAULT);
> +
> + if (dpp_color_caps.hw_3d_lut) {
> + drm_object_attach_property(&plane->base,
> + mode_info.plane_lut3d_property, 0);
> + drm_object_attach_property(&plane->base,
> + mode_info.plane_lut3d_size_property,
> + MAX_COLOR_3DLUT_SIZE);
> + }
> }
>
> static int
> @@ -1493,6 +1505,14 @@ dm_atomic_plane_set_property(struct drm_plane *plane,
> dm_plane_state->hdr_mult = val;
> dm_plane_state->base.color_mgmt_changed = 1;
> }
> + } else if (property == adev->mode_info.plane_lut3d_property) {
> + ret = drm_property_replace_blob_from_id(plane->dev,
> + &dm_plane_state->lut3d,
> + val, -1,
> + sizeof(struct drm_color_lut),
> + &replaced);
> + dm_plane_state->base.color_mgmt_changed |= replaced;
> + return ret;
> } else {
> drm_dbg_atomic(plane->dev,
> "[PLANE:%d:%s] unknown property [PROP:%d:%s]]\n",
> @@ -1520,6 +1540,9 @@ dm_atomic_plane_get_property(struct drm_plane *plane,
> *val = dm_plane_state->degamma_tf;
> } else if (property == adev->mode_info.plane_hdr_mult_property) {
> *val = dm_plane_state->hdr_mult;
> + } else if (property == adev->mode_info.plane_lut3d_property) {
> + *val = (dm_plane_state->lut3d) ?
> + dm_plane_state->lut3d->base.id : 0;
> } else {
> return -EINVAL;
> }
> --
> 2.40.1
>
WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Wick <sebastian.wick@redhat.com>
To: Melissa Wen <mwen@igalia.com>
Cc: Pekka Paalanen <pekka.paalanen@collabora.com>,
kernel-dev@igalia.com, Shashank Sharma <Shashank.Sharma@amd.com>,
sunpeng.li@amd.com, Xinhui.Pan@amd.com,
Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>,
Xaver Hugl <xaver.hugl@gmail.com>,
dri-devel@lists.freedesktop.org,
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>,
Alex Hung <alex.hung@amd.com>,
amd-gfx@lists.freedesktop.org,
Alex Deucher <alexander.deucher@amd.com>,
christian.koenig@amd.com, Joshua Ashton <joshua@froggi.es>,
sungjoon.kim@amd.com
Subject: Re: [PATCH v4 09/32] drm/amd/display: add plane 3D LUT driver-specific properties
Date: Fri, 6 Oct 2023 11:09:48 +0200 [thread overview]
Message-ID: <20231006090948.GA400742@toolbox> (raw)
In-Reply-To: <20231005171527.203657-10-mwen@igalia.com>
On Thu, Oct 05, 2023 at 04:15:04PM -0100, Melissa Wen wrote:
> Add 3D LUT property for plane color transformations using a 3D lookup
> table. 3D LUT allows for highly accurate and complex color
> transformations and is suitable to adjust the balance between color
> channels. It's also more complex to manage and require more
> computational resources.
>
> Since a 3D LUT has a limited number of entries in each dimension we want
> to use them in an optimal fashion. This means using the 3D LUT in a
> colorspace that is optimized for human vision, such as sRGB, PQ, or
> another non-linear space. Therefore, userpace may need one 1D LUT
> (shaper) before it to delinearize content and another 1D LUT after 3D
> LUT (blend) to linearize content again for blending. The next patches
> add these 1D LUTs to the plane color mgmt pipeline.
>
> v3:
> - improve commit message about 3D LUT
> - describe the 3D LUT entries and size (Harry)
>
> v4:
> - advertise 3D LUT max size as the size of a single-dimension
>
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 18 +++++++++++++++
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 9 ++++++++
> .../amd/display/amdgpu_dm/amdgpu_dm_color.c | 14 +++++++++++
> .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 23 +++++++++++++++++++
> 4 files changed, 64 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> index 62044d41da75..f7adaa52c23f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> @@ -363,6 +363,24 @@ struct amdgpu_mode_info {
> * @plane_hdr_mult_property:
> */
> struct drm_property *plane_hdr_mult_property;
> + /**
> + * @plane_lut3d_property: Plane property for color transformation using
> + * a 3D LUT (pre-blending), a three-dimensional array where each
> + * element is an RGB triplet. Each dimension has a size of the cubed
> + * root of lut3d_size. The array contains samples from the approximated
This should be "Each dimension has a size of lut3d_size" now.
> + * function. On AMD, values between samples are estimated by
> + * tetrahedral interpolation. The array is accessed with three indices,
> + * one for each input dimension (color channel), blue being the
> + * outermost dimension, red the innermost.
> + */
> + struct drm_property *plane_lut3d_property;
> + /**
> + * @plane_degamma_lut_size_property: Plane property to define the max
> + * size of 3D LUT as supported by the driver (read-only). The max size
> + * is the max size of one dimension and, therefore, the max number of
> + * entries for 3D LUT array is the 3D LUT size cubed;
> + */
> + struct drm_property *plane_lut3d_size_property;
> };
>
> #define AMDGPU_MAX_BL_LEVEL 0xFF
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> index bb2ce843369d..7a2350c62cf1 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> @@ -784,6 +784,11 @@ struct dm_plane_state {
> * TF is needed for any subsequent linear-to-non-linear transforms.
> */
> __u64 hdr_mult;
> + /**
> + * @lut3d: 3D lookup table blob. The blob (if not NULL) is an array of
> + * &struct drm_color_lut.
> + */
> + struct drm_property_blob *lut3d;
> };
>
> struct dm_crtc_state {
> @@ -869,6 +874,10 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
>
> void amdgpu_dm_trigger_timing_sync(struct drm_device *dev);
>
> +/* 3D LUT max size is 17x17x17 (4913 entries) */
> +#define MAX_COLOR_3DLUT_SIZE 17
> +#define MAX_COLOR_3DLUT_BITDEPTH 12
> +/* 1D LUT size */
> #define MAX_COLOR_LUT_ENTRIES 4096
> /* Legacy gamm LUT users such as X doesn't like large LUT sizes */
> #define MAX_COLOR_LEGACY_LUT_ENTRIES 256
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> index caf49a044ab4..011f2f9ec890 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> @@ -230,6 +230,20 @@ amdgpu_dm_create_color_properties(struct amdgpu_device *adev)
> return -ENOMEM;
> adev->mode_info.plane_hdr_mult_property = prop;
>
> + prop = drm_property_create(adev_to_drm(adev),
> + DRM_MODE_PROP_BLOB,
> + "AMD_PLANE_LUT3D", 0);
> + if (!prop)
> + return -ENOMEM;
> + adev->mode_info.plane_lut3d_property = prop;
> +
> + prop = drm_property_create_range(adev_to_drm(adev),
> + DRM_MODE_PROP_IMMUTABLE,
> + "AMD_PLANE_LUT3D_SIZE", 0, UINT_MAX);
> + if (!prop)
> + return -ENOMEM;
> + adev->mode_info.plane_lut3d_size_property = prop;
> +
> return 0;
> }
> #endif
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> index ae64d4b73360..068798ffdd56 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> @@ -1359,6 +1359,8 @@ dm_drm_plane_duplicate_state(struct drm_plane *plane)
>
> if (dm_plane_state->degamma_lut)
> drm_property_blob_get(dm_plane_state->degamma_lut);
> + if (dm_plane_state->lut3d)
> + drm_property_blob_get(dm_plane_state->lut3d);
>
> dm_plane_state->degamma_tf = old_dm_plane_state->degamma_tf;
> dm_plane_state->hdr_mult = old_dm_plane_state->hdr_mult;
> @@ -1432,6 +1434,8 @@ static void dm_drm_plane_destroy_state(struct drm_plane *plane,
>
> if (dm_plane_state->degamma_lut)
> drm_property_blob_put(dm_plane_state->degamma_lut);
> + if (dm_plane_state->lut3d)
> + drm_property_blob_put(dm_plane_state->lut3d);
>
> if (dm_plane_state->dc_state)
> dc_plane_state_release(dm_plane_state->dc_state);
> @@ -1462,6 +1466,14 @@ dm_atomic_plane_attach_color_mgmt_properties(struct amdgpu_display_manager *dm,
> drm_object_attach_property(&plane->base,
> dm->adev->mode_info.plane_hdr_mult_property,
> AMDGPU_HDR_MULT_DEFAULT);
> +
> + if (dpp_color_caps.hw_3d_lut) {
> + drm_object_attach_property(&plane->base,
> + mode_info.plane_lut3d_property, 0);
> + drm_object_attach_property(&plane->base,
> + mode_info.plane_lut3d_size_property,
> + MAX_COLOR_3DLUT_SIZE);
> + }
> }
>
> static int
> @@ -1493,6 +1505,14 @@ dm_atomic_plane_set_property(struct drm_plane *plane,
> dm_plane_state->hdr_mult = val;
> dm_plane_state->base.color_mgmt_changed = 1;
> }
> + } else if (property == adev->mode_info.plane_lut3d_property) {
> + ret = drm_property_replace_blob_from_id(plane->dev,
> + &dm_plane_state->lut3d,
> + val, -1,
> + sizeof(struct drm_color_lut),
> + &replaced);
> + dm_plane_state->base.color_mgmt_changed |= replaced;
> + return ret;
> } else {
> drm_dbg_atomic(plane->dev,
> "[PLANE:%d:%s] unknown property [PROP:%d:%s]]\n",
> @@ -1520,6 +1540,9 @@ dm_atomic_plane_get_property(struct drm_plane *plane,
> *val = dm_plane_state->degamma_tf;
> } else if (property == adev->mode_info.plane_hdr_mult_property) {
> *val = dm_plane_state->hdr_mult;
> + } else if (property == adev->mode_info.plane_lut3d_property) {
> + *val = (dm_plane_state->lut3d) ?
> + dm_plane_state->lut3d->base.id : 0;
> } else {
> return -EINVAL;
> }
> --
> 2.40.1
>
next prev parent reply other threads:[~2023-10-06 9:10 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-05 17:14 [PATCH v4 00/32] drm/amd/display: add AMD driver-specific properties for color mgmt Melissa Wen
2023-10-05 17:14 ` Melissa Wen
2023-10-05 17:14 ` [PATCH v4 01/32] drm/drm_mode_object: increase max objects to accommodate new color props Melissa Wen
2023-10-05 17:14 ` Melissa Wen
2023-10-05 17:14 ` [PATCH v4 02/32] drm/drm_property: make replace_property_blob_from_id a DRM helper Melissa Wen
2023-10-05 17:14 ` Melissa Wen
2023-10-05 17:14 ` [PATCH v4 03/32] drm/drm_plane: track color mgmt changes per plane Melissa Wen
2023-10-05 17:14 ` Melissa Wen
2023-10-05 17:14 ` [PATCH v4 04/32] drm/amd/display: add driver-specific property for plane degamma LUT Melissa Wen
2023-10-05 17:14 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 05/32] drm/amd/display: add plane degamma TF driver-specific property Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 06/32] drm/amd/display: explicitly define EOTF and inverse EOTF Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-11-15 18:25 ` Harry Wentland
2023-11-15 18:25 ` Harry Wentland
2023-10-05 17:15 ` [PATCH v4 07/32] drm/amd/display: document AMDGPU pre-defined transfer functions Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-11-15 18:26 ` Harry Wentland
2023-11-15 18:26 ` Harry Wentland
2023-10-05 17:15 ` [PATCH v4 08/32] drm/amd/display: add plane HDR multiplier driver-specific property Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-11-15 18:26 ` Harry Wentland
2023-11-15 18:26 ` Harry Wentland
2023-10-05 17:15 ` [PATCH v4 09/32] drm/amd/display: add plane 3D LUT driver-specific properties Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-06 9:09 ` Sebastian Wick [this message]
2023-10-06 9:09 ` Sebastian Wick
2023-11-06 18:46 ` Melissa Wen
2023-11-06 18:46 ` Melissa Wen
2023-11-02 3:48 ` Joshua Ashton
2023-11-02 3:48 ` Joshua Ashton
2023-11-02 7:31 ` Joshua Ashton
2023-11-02 7:31 ` Joshua Ashton
2023-11-06 18:52 ` Melissa Wen
2023-11-06 18:52 ` Melissa Wen
2023-11-06 18:49 ` Melissa Wen
2023-11-06 18:49 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 10/32] drm/amd/display: add plane shaper LUT and TF " Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-11-15 18:27 ` Harry Wentland
2023-11-15 18:27 ` Harry Wentland
2023-10-05 17:15 ` [PATCH v4 11/32] drm/amd/display: add plane blend " Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-11-15 18:27 ` Harry Wentland
2023-11-15 18:27 ` Harry Wentland
2023-10-05 17:15 ` [PATCH v4 12/32] drm/amd/display: add CRTC gamma TF driver-specific property Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-11-15 18:27 ` Harry Wentland
2023-11-15 18:27 ` Harry Wentland
2023-10-05 17:15 ` [PATCH v4 13/32] drm/amd/display: add comments to describe DM crtc color mgmt behavior Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 14/32] drm/amd/display: encapsulate atomic regamma operation Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 15/32] drm/amd/display: add CRTC gamma TF support Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 16/32] drm/amd/display: set sdr_ref_white_level to 80 for out_transfer_func Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 17/32] drm/amd/display: mark plane as needing reset if color props change Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 18/32] drm/amd/display: decouple steps for mapping CRTC degamma to DC plane Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 19/32] drm/amd/display: add plane degamma TF and LUT support Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 20/32] drm/amd/display: reject atomic commit if setting both plane and CRTC degamma Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 21/32] drm/amd/display: add dc_fixpt_from_s3132 helper Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 22/32] drm/amd/display: add HDR multiplier support Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 23/32] drm/amd/display: add plane shaper LUT support Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 24/32] drm/amd/display: add plane shaper TF support Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 25/32] drm/amd/display: add plane 3D LUT support Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 26/32] drm/amd/display: handle empty LUTs in __set_input_tf Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 27/32] drm/amd/display: add plane blend LUT and TF support Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 28/32] drm/amd/display: allow newer DC hardware to use degamma ROM for PQ/HLG Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 29/32] drm/amd/display: copy 3D LUT settings from crtc state to stream_update Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 30/32] drm/amd/display: add plane CTM driver-specific property Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 31/32] drm/amd/display: add plane CTM support Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-05 17:15 ` [PATCH v4 32/32] drm/amd/display: Add 3x4 CTM support for plane CTM Melissa Wen
2023-10-05 17:15 ` Melissa Wen
2023-10-06 9:28 ` [PATCH v4 00/32] drm/amd/display: add AMD driver-specific properties for color mgmt Sebastian Wick
2023-10-06 9:28 ` Sebastian Wick
2023-11-06 19:33 ` Melissa Wen
2023-11-06 19:33 ` Melissa Wen
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=20231006090948.GA400742@toolbox \
--to=sebastian.wick@redhat.com \
--cc=Rodrigo.Siqueira@amd.com \
--cc=Shashank.Sharma@amd.com \
--cc=Xinhui.Pan@amd.com \
--cc=airlied@gmail.com \
--cc=alex.hung@amd.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=contact@emersion.fr \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=harry.wentland@amd.com \
--cc=joshua@froggi.es \
--cc=kernel-dev@igalia.com \
--cc=mwen@igalia.com \
--cc=nicholas.kazlauskas@amd.com \
--cc=pekka.paalanen@collabora.com \
--cc=sungjoon.kim@amd.com \
--cc=sunpeng.li@amd.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.