* [PATCH] drm/amd/display: fix unnecessary pipe split playing NV12 1080p MPO video
@ 2022-07-08 18:56 Aurabindo Pillai
2022-07-11 17:54 ` Rodrigo Siqueira
0 siblings, 1 reply; 2+ messages in thread
From: Aurabindo Pillai @ 2022-07-08 18:56 UTC (permalink / raw)
To: amd-gfx
Cc: alexdeucher, Rodrigo.Siqueira, aurabindo.pillai, Harry.Wentland,
Samson Tam
From: Samson Tam <Samson.Tam@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@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;
}
}
}
--
2.37.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] drm/amd/display: fix unnecessary pipe split playing NV12 1080p MPO video
2022-07-08 18:56 [PATCH] drm/amd/display: fix unnecessary pipe split playing NV12 1080p MPO video Aurabindo Pillai
@ 2022-07-11 17:54 ` Rodrigo Siqueira
0 siblings, 0 replies; 2+ messages in thread
From: Rodrigo Siqueira @ 2022-07-11 17:54 UTC (permalink / raw)
To: Aurabindo Pillai, amd-gfx; +Cc: alexdeucher, Harry.Wentland, Samson Tam
On 7/8/22 14:56, Aurabindo Pillai wrote:
> From: Samson Tam <Samson.Tam@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@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@amd.com>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-07-11 17:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-08 18:56 [PATCH] drm/amd/display: fix unnecessary pipe split playing NV12 1080p MPO video Aurabindo Pillai
2022-07-11 17:54 ` Rodrigo Siqueira
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox