[PATCH] drm/amd/display: fix unnecessary pipe split playing NV12 1080p MPO video
Rodrigo Siqueira
Rodrigo.Siqueira at amd.com
Mon Jul 11 17:54:12 UTC 2022
On 7/8/22 14:56, Aurabindo Pillai wrote:
> From: Samson Tam <Samson.Tam at amd.com>
>
> [Why]
> When playing NV12 1080p MPO video, it is pipe splitting so
> we see two pipes in fullscreen and four pipes in windowed
> mode. Pipe split is happening because we are setting
> MaximumMPCCombine = 1
>
> [How]
> Algorithm for MaximumMPCCombine has extra conditions we do
> not need. Use DCN31 algorithm instead
>
> Signed-off-by: Samson Tam <Samson.Tam at amd.com>
> ---
> .../dc/dml/dcn32/display_mode_vba_32.c | 31 ++-----------------
> 1 file changed, 3 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c b/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
> index 04b13e765a52..c6c3a9e6731a 100644
> --- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
> +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
> @@ -3733,35 +3733,10 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
> mode_lib->vba.ModeIsSupported = mode_lib->vba.ModeSupport[i][0] == true
> || mode_lib->vba.ModeSupport[i][1] == true;
>
> - if ((mode_lib->vba.ModeSupport[i][0] == false && mode_lib->vba.ModeSupport[i][1] == true)
> - || MPCCombineMethodAsPossible
> - || (MPCCombineMethodAsNeededForPStateChangeAndVoltage
> - && mode_lib->vba.DRAMClockChangeRequirementFinal
> - && (((mode_lib->vba.DRAMClockChangeSupport[i][1] == dm_dram_clock_change_vactive
> - || mode_lib->vba.DRAMClockChangeSupport[i][1] ==
> - dm_dram_clock_change_vactive_w_mall_full_frame
> - || mode_lib->vba.DRAMClockChangeSupport[i][1] ==
> - dm_dram_clock_change_vactive_w_mall_sub_vp)
> - && !(mode_lib->vba.DRAMClockChangeSupport[i][0] == dm_dram_clock_change_vactive
> - || mode_lib->vba.DRAMClockChangeSupport[i][0] ==
> - dm_dram_clock_change_vactive_w_mall_full_frame
> - || mode_lib->vba.DRAMClockChangeSupport[i][0] ==
> - dm_dram_clock_change_vactive_w_mall_sub_vp))
> - || ((mode_lib->vba.DRAMClockChangeSupport[i][1] == dm_dram_clock_change_vblank
> - || mode_lib->vba.DRAMClockChangeSupport[i][1] ==
> - dm_dram_clock_change_vblank_w_mall_full_frame
> - || mode_lib->vba.DRAMClockChangeSupport[i][1] ==
> - dm_dram_clock_change_vblank_w_mall_sub_vp)
> - && mode_lib->vba.DRAMClockChangeSupport[i][0] == dm_dram_clock_change_unsupported)))
> - || (MPCCombineMethodAsNeededForPStateChangeAndVoltage &&
> - mode_lib->vba.FCLKChangeRequirementFinal
> - && ((mode_lib->vba.FCLKChangeSupport[i][1] == dm_fclock_change_vactive
> - && mode_lib->vba.FCLKChangeSupport[i][0] != dm_fclock_change_vactive)
> - || (mode_lib->vba.FCLKChangeSupport[i][1] == dm_fclock_change_vblank
> - && mode_lib->vba.FCLKChangeSupport[i][0] == dm_fclock_change_unsupported)))) {
> - MaximumMPCCombine = 1;
> - } else {
> + if (mode_lib->vba.ModeSupport[i][0] == true) {
> MaximumMPCCombine = 0;
> + } else {
> + MaximumMPCCombine = 1;
> }
> }
> }
LGTM,
Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
More information about the amd-gfx
mailing list