[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