2022-11-09 18:36:44

by Hamza Mahfooz

[permalink] [raw]
Subject: [PATCH v2] drm/amd/display: only fill dirty rectangles when PSR is enabled

Currently, we are calling fill_dc_dirty_rects() even if PSR isn't
supported by the relevant link in amdgpu_dm_commit_planes(), this is
undesirable especially because when drm.debug is enabled we are printing
messages in fill_dc_dirty_rects() that are only useful for debugging PSR
(and confusing otherwise). So, we can instead limit the filling of dirty
rectangles to only when PSR is enabled.

Signed-off-by: Hamza Mahfooz <[email protected]>
---
v2: give a more concrete reason.
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

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 66eb16fbe09f..956a6e494709 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -7697,9 +7697,10 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
bundle->surface_updates[planes_count].plane_info =
&bundle->plane_infos[planes_count];

- fill_dc_dirty_rects(plane, old_plane_state, new_plane_state,
- new_crtc_state,
- &bundle->flip_addrs[planes_count]);
+ if (acrtc_state->stream->link->psr_settings.psr_feature_enabled)
+ fill_dc_dirty_rects(plane, old_plane_state,
+ new_plane_state, new_crtc_state,
+ &bundle->flip_addrs[planes_count]);

/*
* Only allow immediate flips for fast updates that don't
--
2.38.1



2022-11-09 19:33:08

by Leo Li

[permalink] [raw]
Subject: Re: [PATCH v2] drm/amd/display: only fill dirty rectangles when PSR is enabled



On 11/9/22 13:20, Hamza Mahfooz wrote:
> Currently, we are calling fill_dc_dirty_rects() even if PSR isn't
> supported by the relevant link in amdgpu_dm_commit_planes(), this is
> undesirable especially because when drm.debug is enabled we are printing
> messages in fill_dc_dirty_rects() that are only useful for debugging PSR
> (and confusing otherwise). So, we can instead limit the filling of dirty
> rectangles to only when PSR is enabled.
>
> Signed-off-by: Hamza Mahfooz <[email protected]>

Reviewed-by: Leo Li <[email protected]>
Thanks

> ---
> v2: give a more concrete reason.
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> 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 66eb16fbe09f..956a6e494709 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -7697,9 +7697,10 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
> bundle->surface_updates[planes_count].plane_info =
> &bundle->plane_infos[planes_count];
>
> - fill_dc_dirty_rects(plane, old_plane_state, new_plane_state,
> - new_crtc_state,
> - &bundle->flip_addrs[planes_count]);
> + if (acrtc_state->stream->link->psr_settings.psr_feature_enabled)
> + fill_dc_dirty_rects(plane, old_plane_state,
> + new_plane_state, new_crtc_state,
> + &bundle->flip_addrs[planes_count]);
>
> /*
> * Only allow immediate flips for fast updates that don't