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 <flora.cui@amd.com>
This commit is contained in:
Michel Dänzer
2019-06-06 11:22:09 +02:00
committed by Michel Dänzer
parent fb06fb8147
commit 3109f088fd

View File

@@ -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) &&