From 3109f088fdbd89c2ee8078625d4f073852492656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Thu, 6 Jun 2019 11:22:09 +0200 Subject: [PATCH] dri2: Re-use previous CRTC when possible if pick_best_crtc returns NULL This way, the MSC will continue ticking at the rate of (the last mode which was enabled for) that CRTC, instead of the client running unthrottled. Reviewed-and-tested-by: Flora Cui --- src/amdgpu_dri2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/amdgpu_dri2.c b/src/amdgpu_dri2.c index d205428..824b1f6 100644 --- a/src/amdgpu_dri2.c +++ b/src/amdgpu_dri2.c @@ -422,10 +422,12 @@ xf86CrtcPtr amdgpu_dri2_drawable_crtc(DrawablePtr pDraw, Bool consider_disabled) pDraw->x, pDraw->x + pDraw->width, pDraw->y, pDraw->y + pDraw->height); - if (crtc && pDraw->type == DRAWABLE_WINDOW) { + if (pDraw->type == DRAWABLE_WINDOW) { struct dri2_window_priv *priv = get_dri2_window_priv((WindowPtr)pDraw); - if (priv->crtc && priv->crtc != crtc) { + if (!crtc) { + crtc = priv->crtc; + } else if (priv->crtc && priv->crtc != crtc) { CARD64 ust, mscold, mscnew; if (amdgpu_dri2_get_crtc_msc(priv->crtc, &ust, &mscold) &&