-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
https://gitlab.freedesktop.org/drm/amd/-/issues/3441#note_2535944
- Loading branch information
Showing
2 changed files
with
57 additions
and
1 deletion.
There are no files selected for viewing
54 changes: 54 additions & 0 deletions
54
PKGBUILD/linux/0051-drm-amd-display-let-update_planes_and_stream_state-d.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
From e061400d7b09c27ffa14fa160733043fa5e23733 Mon Sep 17 00:00:00 2001 | ||
From: Melissa Wen <[email protected]> | ||
Date: Tue, 20 Aug 2024 20:32:19 -0100 | ||
Subject: [PATCH] drm/amd/display: let update_planes_and_stream_state defines | ||
minimal state | ||
|
||
We see artifacts when using current state as the minimal one in a | ||
context where update_planes_and_stream_state set the update type as | ||
FULL. Therefore, instead of define the minimal state by adding or | ||
removing planes, let update_planes_and_stream_state define the proper | ||
state. | ||
|
||
Signed-off-by: Melissa Wen <[email protected]> | ||
--- | ||
drivers/gpu/drm/amd/display/dc/core/dc.c | 12 ++++-------- | ||
1 file changed, 4 insertions(+), 8 deletions(-) | ||
|
||
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c | ||
index c8dabb081b3d..599633649012 100644 | ||
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c | ||
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c | ||
@@ -4883,11 +4883,6 @@ static bool update_planes_and_stream_v2(struct dc *dc, | ||
surface_count, | ||
&is_plane_addition); | ||
|
||
- /* on plane addition, minimal state is the current one */ | ||
- if (force_minimal_pipe_splitting && is_plane_addition && | ||
- !commit_minimal_transition_state(dc, dc->current_state)) | ||
- return false; | ||
- | ||
if (!update_planes_and_stream_state( | ||
dc, | ||
srf_updates, | ||
@@ -4898,13 +4893,14 @@ static bool update_planes_and_stream_v2(struct dc *dc, | ||
&context)) | ||
return false; | ||
|
||
- /* on plane removal, minimal state is the new one */ | ||
- if (force_minimal_pipe_splitting && !is_plane_addition) { | ||
+ /* minimal state is the determined by update_planes_and_stream_state: current or new context */ | ||
+ if (force_minimal_pipe_splitting) { | ||
if (!commit_minimal_transition_state(dc, context)) { | ||
dc_state_release(context); | ||
return false; | ||
} | ||
- update_type = UPDATE_TYPE_FULL; | ||
+ if (!is_plane_addition) | ||
+ update_type = UPDATE_TYPE_FULL; | ||
} | ||
|
||
if (dc->hwss.is_pipe_topology_transition_seamless && | ||
-- | ||
2.43.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters