[PATCH] drm/amd/display: Enable fast plane updates when state->allow_modeset = true

Mike Lothian mike at fireburn.co.uk
Thu Jun 20 08:10:18 UTC 2019


Hi

This patch causes warnings for me in a continuous loop

https://bugs.freedesktop.org/show_bug.cgi?id=110949

Let me know if you'd like any more detail

Cheers

Mike

On Fri, 7 Jun 2019 at 16:42, Francis, David <David.Francis at amd.com> wrote:
>
> Patch is
>
> Reviewed-by: David Francis <David.Francis at amd.com>
>
> ________________________________
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> on behalf of Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> Sent: June 7, 2019 11:16:55 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Francis, David; Wentland, Harry; Kazlauskas, Nicholas
> Subject: [PATCH] drm/amd/display: Enable fast plane updates when state->allow_modeset = true
>
> [Why]
> Whenever the a modeset is allowed (but not neccessarily required) we
> currently recreate all the planes in the state. Most IGT tests and
> legacy IOCTLs create atomic commits with this flag set, so the pipes
> are often unnecessarily reprogrammed.
>
> Poor performance and stuttering can occur when many of these commits
> are frequently issued.
>
> This flag was needed when the appropriate conditions for checking
> whether the planes needed a reset were not in place, but
> should_reset_plane should cover everything needed now.
>
> [How]
> Drop the check for state->allow_modeset in should_reset_plane.
>
> All planes on a CRTC should reset in the following conditions:
> - The CRTC needs a modeset
> - The CRTC degamma changes
> - Planes are added or removed to the CRTC
>
> These conditions are all covered in should_reset_plane.
>
> We still can't drop the format change check in should_reset_plane since
> fill_dc_plane_info_and_addr isn't called when validating the state, so
> we can't tell if a FULL update is needed or not.
>
> Cc: David Francis <david.francis at amd.com>
> Cc: Harry Wentland <harry.wentland at amd.com>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 --------
>  1 file changed, 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index a698c8f272ed..45f0d5b6c468 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -6446,14 +6446,6 @@ static bool should_reset_plane(struct drm_atomic_state *state,
>          struct drm_crtc_state *new_crtc_state;
>          int i;
>
> -       /*
> -        * TODO: Remove this hack once the checks below are sufficient
> -        * enough to determine when we need to reset all the planes on
> -        * the stream.
> -        */
> -       if (state->allow_modeset)
> -               return true;
> -
>          /* Exit early if we know that we're adding or removing the plane. */
>          if (old_plane_state->crtc != new_plane_state->crtc)
>                  return true;
> --
> 2.17.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list