* [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes
@ 2026-08-07 11:56 Melissa Wen
2026-08-07 12:12 ` sashiko-bot
2026-08-10 18:40 ` Alex Deucher
0 siblings, 2 replies; 4+ messages in thread
From: Melissa Wen @ 2026-08-07 11:56 UTC (permalink / raw)
To: Dave Airlie, Alex Deucher, Harry Wentland, sunpeng.li, siqueira,
christian.koenig, airlied, simona
Cc: kernel-dev, amd-gfx, dri-devel
This is a resubmission of d79716401a95 ("drm/amd/display: use plane
color_mgmt_changed to track colorop changes") whose change was reverted
by 0461ba9a7994 ("Merge tag 'amd-drm-next-7.3-2026-07-02' of
https://gitlab.freedesktop.org/agd5f/linux into drm-next") during a
merge conflict resolution.
Original commit message:
```
Ensure the driver tracks changes in any colorop property of a plane
color pipeline by using the same mechanism of CRTC color management and
update plane color blocks when any colorop property changes. It fixes an
issue observed on gamescope settings for night mode which is done via
shaper/3D-LUT updates.
```
Fixes: 0461ba9a7994 ("Merge tag 'amd-drm-next-7.3-2026-07-02' of https://gitlab.freedesktop.org/agd5f/linux into drm-next")
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
Hey,
I noticed this problem in the resolution of a merge conflict after
testing drm-misc-next on SteamDeck with KMS colorop API support and
verifying the issue of missing updates in nightlight-mode was back.
Let me know what are the right steps to address it.
Thanks,
Melissa
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 67b825cbb88f..d0e612371c8f 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -4202,7 +4202,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_commit *state,
continue;
bundle->surface_updates[planes_count].surface = dc_plane;
- if (new_pcrtc_state->color_mgmt_changed) {
+ if (new_pcrtc_state->color_mgmt_changed || new_plane_state->color_mgmt_changed) {
bundle->surface_updates[planes_count].gamma = &dc_plane->gamma_correction;
bundle->surface_updates[planes_count].in_transfer_func = &dc_plane->in_transfer_func;
bundle->surface_updates[planes_count].gamut_remap_matrix = &dc_plane->gamut_remap_matrix;
@@ -6012,6 +6012,10 @@ static bool should_reset_plane(struct drm_atomic_commit *state,
if (new_crtc_state->color_mgmt_changed)
return true;
+ /* Plane color pipeline or its colorop changes. */
+ if (new_plane_state->color_mgmt_changed)
+ return true;
+
/*
* On zpos change, planes need to be reordered by removing and re-adding
* them one by one to the dc state, in order of descending zpos.
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes
2026-08-07 11:56 [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes Melissa Wen
@ 2026-08-07 12:12 ` sashiko-bot
2026-08-10 18:40 ` Alex Deucher
1 sibling, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-08-07 12:12 UTC (permalink / raw)
To: Melissa Wen; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Plane color management changes (via `color_mgmt_changed`) force a reset for the modified plane but fail to trigger a reset of all other planes on the same CRTC, violating the AMD DC descending z-order requirement.
--
--- Patch [1]: [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes ---
commit 3d974c5531b17eb9dc9b94714b129841cee1a82c
Author: Melissa Wen <mwen@igalia.com>
drm/amd/display: use plane color_mgmt_changed to track colorop changes
This commit ensures the driver tracks changes in any colorop property
of a plane color pipeline. It updates plane color blocks when any
colorop property changes, which fixes missing updates observed in
night mode settings via Gamescope.
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index e421c3c81778d..e10937217ad41 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
[ ... ]
> @@ -5675,6 +5675,10 @@ static bool should_reset_plane(struct drm_atomic_commit *state,
> if (new_crtc_state->color_mgmt_changed)
> return true;
>
> + /* Plane color pipeline or its colorop changes. */
> + if (new_plane_state->color_mgmt_changed)
> + return true;
> +
[Severity: High]
Does this change require a corresponding update to the cross-plane dependency
loop further down in should_reset_plane()?
If one plane resets due to new_plane_state->color_mgmt_changed, the AMD DC
architecture requires all other planes on the CRTC to be recreated to preserve
descending z-order.
Currently, the loop over for_each_oldnew_plane_in_state() checks legacy
properties like dm_new_other_state->degamma_tf, but doesn't check
new_other_state->color_mgmt_changed.
Will this omission cause a plane with color_mgmt_changed to be removed and
re-added while other planes remain, corrupting the hardware z-order?
> /*
> * On zpos change, planes need to be reordered by removing and re-adding
> * them one by one to the dc state, in order of descending zpos.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260807115712.22423-1-mwen@igalia.com?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes
2026-08-07 11:56 [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes Melissa Wen
2026-08-07 12:12 ` sashiko-bot
@ 2026-08-10 18:40 ` Alex Deucher
2026-08-27 10:24 ` Melissa Wen
1 sibling, 1 reply; 4+ messages in thread
From: Alex Deucher @ 2026-08-10 18:40 UTC (permalink / raw)
To: Melissa Wen
Cc: Dave Airlie, Alex Deucher, Harry Wentland, sunpeng.li, siqueira,
christian.koenig, airlied, simona, kernel-dev, amd-gfx, dri-devel
On Fri, Aug 7, 2026 at 8:08 AM Melissa Wen <mwen@igalia.com> wrote:
>
> This is a resubmission of d79716401a95 ("drm/amd/display: use plane
> color_mgmt_changed to track colorop changes") whose change was reverted
> by 0461ba9a7994 ("Merge tag 'amd-drm-next-7.3-2026-07-02' of
> https://gitlab.freedesktop.org/agd5f/linux into drm-next") during a
> merge conflict resolution.
>
> Original commit message:
>
> ```
> Ensure the driver tracks changes in any colorop property of a plane
> color pipeline by using the same mechanism of CRTC color management and
> update plane color blocks when any colorop property changes. It fixes an
> issue observed on gamescope settings for night mode which is done via
> shaper/3D-LUT updates.
> ```
>
> Fixes: 0461ba9a7994 ("Merge tag 'amd-drm-next-7.3-2026-07-02' of https://gitlab.freedesktop.org/agd5f/linux into drm-next")
> Signed-off-by: Melissa Wen <mwen@igalia.com>
>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
> ---
>
> Hey,
>
> I noticed this problem in the resolution of a merge conflict after
> testing drm-misc-next on SteamDeck with KMS colorop API support and
> verifying the issue of missing updates in nightlight-mode was back.
>
> Let me know what are the right steps to address it.
>
> Thanks,
>
> Melissa
>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 67b825cbb88f..d0e612371c8f 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -4202,7 +4202,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_commit *state,
> continue;
>
> bundle->surface_updates[planes_count].surface = dc_plane;
> - if (new_pcrtc_state->color_mgmt_changed) {
> + if (new_pcrtc_state->color_mgmt_changed || new_plane_state->color_mgmt_changed) {
> bundle->surface_updates[planes_count].gamma = &dc_plane->gamma_correction;
> bundle->surface_updates[planes_count].in_transfer_func = &dc_plane->in_transfer_func;
> bundle->surface_updates[planes_count].gamut_remap_matrix = &dc_plane->gamut_remap_matrix;
> @@ -6012,6 +6012,10 @@ static bool should_reset_plane(struct drm_atomic_commit *state,
> if (new_crtc_state->color_mgmt_changed)
> return true;
>
> + /* Plane color pipeline or its colorop changes. */
> + if (new_plane_state->color_mgmt_changed)
> + return true;
> +
> /*
> * On zpos change, planes need to be reordered by removing and re-adding
> * them one by one to the dc state, in order of descending zpos.
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes
2026-08-10 18:40 ` Alex Deucher
@ 2026-08-27 10:24 ` Melissa Wen
0 siblings, 0 replies; 4+ messages in thread
From: Melissa Wen @ 2026-08-27 10:24 UTC (permalink / raw)
To: Dave Airlie
Cc: Alex Deucher, Harry Wentland, sunpeng.li, siqueira,
christian.koenig, airlied, simona, kernel-dev, amd-gfx, dri-devel,
Thomas Zimmermann, Maxime Ripard, Maarten Lankhorst
On 10/08/2026 20:40, Alex Deucher wrote:
> On Fri, Aug 7, 2026 at 8:08 AM Melissa Wen <mwen@igalia.com> wrote:
>> This is a resubmission of d79716401a95 ("drm/amd/display: use plane
>> color_mgmt_changed to track colorop changes") whose change was reverted
>> by 0461ba9a7994 ("Merge tag 'amd-drm-next-7.3-2026-07-02' of
>> https://gitlab.freedesktop.org/agd5f/linux into drm-next") during a
>> merge conflict resolution.
>>
>> Original commit message:
>>
>> ```
>> Ensure the driver tracks changes in any colorop property of a plane
>> color pipeline by using the same mechanism of CRTC color management and
>> update plane color blocks when any colorop property changes. It fixes an
>> issue observed on gamescope settings for night mode which is done via
>> shaper/3D-LUT updates.
>> ```
>>
>> Fixes: 0461ba9a7994 ("Merge tag 'amd-drm-next-7.3-2026-07-02' of https://gitlab.freedesktop.org/agd5f/linux into drm-next")
>> Signed-off-by: Melissa Wen <mwen@igalia.com>
>>
> Acked-by: Alex Deucher <alexander.deucher@amd.com>
Hey Dave,
Can you apply it to drm-next?
This a regression from
https://lists.freedesktop.org/archives/amd-gfx/2026-July/148126.html
And AFAIU drm-misc's branches are not the right place.
Best Regards,
Melissa
>
>
>> ---
>>
>> Hey,
>>
>> I noticed this problem in the resolution of a merge conflict after
>> testing drm-misc-next on SteamDeck with KMS colorop API support and
>> verifying the issue of missing updates in nightlight-mode was back.
>>
>> Let me know what are the right steps to address it.
>>
>> Thanks,
>>
>> Melissa
>>
>> ---
>> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index 67b825cbb88f..d0e612371c8f 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -4202,7 +4202,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_commit *state,
>> continue;
>>
>> bundle->surface_updates[planes_count].surface = dc_plane;
>> - if (new_pcrtc_state->color_mgmt_changed) {
>> + if (new_pcrtc_state->color_mgmt_changed || new_plane_state->color_mgmt_changed) {
>> bundle->surface_updates[planes_count].gamma = &dc_plane->gamma_correction;
>> bundle->surface_updates[planes_count].in_transfer_func = &dc_plane->in_transfer_func;
>> bundle->surface_updates[planes_count].gamut_remap_matrix = &dc_plane->gamut_remap_matrix;
>> @@ -6012,6 +6012,10 @@ static bool should_reset_plane(struct drm_atomic_commit *state,
>> if (new_crtc_state->color_mgmt_changed)
>> return true;
>>
>> + /* Plane color pipeline or its colorop changes. */
>> + if (new_plane_state->color_mgmt_changed)
>> + return true;
>> +
>> /*
>> * On zpos change, planes need to be reordered by removing and re-adding
>> * them one by one to the dc state, in order of descending zpos.
>> --
>> 2.53.0
>>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-27 10:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-07 11:56 [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes Melissa Wen
2026-08-07 12:12 ` sashiko-bot
2026-08-10 18:40 ` Alex Deucher
2026-08-27 10:24 ` Melissa Wen
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.