mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 06:53:04 +00:00
drm/amd/display: Fix overlay with pre-blend color processing
[WHY] Overlay works similarly to MPO, but uses global alpha on both planes and sets the desktop as the rear plane instead of the front plane [HOW] Ensure that top plane isn't overlay by checking global alpha before applying the previously added MPO fix Reviewed-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Signed-off-by: Michael Strauss <michael.strauss@amd.com> Signed-off-by: Wayne Lin <wayne.lin@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
db65eb46de
commit
507293b1b2
|
@ -2586,8 +2586,11 @@ static bool dcn10_is_rear_mpo_fix_required(struct pipe_ctx *pipe_ctx, enum dc_co
|
|||
|
||||
while (top->top_pipe)
|
||||
top = top->top_pipe; // Traverse to top pipe_ctx
|
||||
if (top->plane_state && top->plane_state->layer_index == 0)
|
||||
return true; // Front MPO plane not hidden
|
||||
if (top->plane_state && top->plane_state->layer_index == 0 && !top->plane_state->global_alpha)
|
||||
// Global alpha used by top plane for PIP overlay
|
||||
// Pre-multiplied/per-pixel alpha used by MPO
|
||||
// Check top plane's global alpha to ensure layer_index > 0 not caused by PIP
|
||||
return true; // MPO in use and front plane not hidden
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue
Block a user