On 2026-03-18 12:12, Melissa Wen wrote: > 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. > > Signed-off-by: Melissa Wen <[email protected]>
Reviewed-by: Harry Wentland <[email protected]> Harry > --- > 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 dfe95c9b8746..dc3f284d0834 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -9955,7 +9955,7 @@ static void amdgpu_dm_commit_planes(struct > drm_atomic_state *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; > @@ -11695,6 +11695,10 @@ static bool should_reset_plane(struct > drm_atomic_state *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.
