On 2019-01-10 3:12 p.m., Nicholas Kazlauskas wrote:
> [Why]
> This fixes a stuttering issue that occurs when moving a hardware cursor
> when VRR is enabled.
>
> Previously when VRR is enabled atomic check will grab the connector
> state for every atomic update. This has to lock the connector in order
> to do so. The locking is bad enough by itself for performance, but
> it gets worse with what we do just below that - add all the planes
> for the CRTC to the commit.
>
> This prevents the cursor fast path from working - there's more than one
> plane now. With state->allow_modeset = true on top of this, it also
> adds and removes all the planes from the DC context triggering a full
> (very slow) update in DC.
>
> [How]
> We need the connector state to get the VRR min/max capbilities, but we
> only need them when there's a CRTC mode change or when VRR is toggled.
>
> The condition has been updated accordingly.
>
> Fixes: 3cc22f281318 ("drm/amdgpu: Set FreeSync state using drm VRR
> properties")
>
> Cc: Harry Wentland <[email protected]>
> Cc: Leo Li <[email protected]>
> Signed-off-by: Nicholas Kazlauskas <[email protected]>
Reviewed-by: Leo Li <[email protected]>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> 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 48777739d2dc..b7867ec166f3 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -6083,7 +6083,7 @@ static int amdgpu_dm_atomic_check(struct drm_device
> *dev,
> for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state,
> new_crtc_state, i) {
> if (!drm_atomic_crtc_needs_modeset(new_crtc_state) &&
> !new_crtc_state->color_mgmt_changed &&
> - !new_crtc_state->vrr_enabled)
> + old_crtc_state->vrr_enabled == new_crtc_state->vrr_enabled)
> continue;
>
> if (!new_crtc_state->enable)
>
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx