xf86-video-amdgpu: Branch 'master' - 2 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jun 14 09:15:39 UTC 2019


 src/amdgpu_dri2.c |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

New commits:
commit ea19a5207054bb159fc7fb6d88e0ceb10c3da010
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Jun 6 11:02:15 2019 +0200

    Remove dri2_drawable_crtc parameter consider_disabled
    
    All callers were passing TRUE.
    
    Reviewed-and-tested-by: Flora Cui <flora.cui at amd.com>

diff --git a/src/amdgpu_dri2.c b/src/amdgpu_dri2.c
index 824b1f6..a77e4e3 100644
--- a/src/amdgpu_dri2.c
+++ b/src/amdgpu_dri2.c
@@ -414,11 +414,11 @@ static Bool amdgpu_dri2_get_crtc_msc(xf86CrtcPtr crtc, CARD64 *ust, CARD64 *msc)
 }
 
 static
-xf86CrtcPtr amdgpu_dri2_drawable_crtc(DrawablePtr pDraw, Bool consider_disabled)
+xf86CrtcPtr amdgpu_dri2_drawable_crtc(DrawablePtr pDraw)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
 	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-	xf86CrtcPtr crtc = amdgpu_pick_best_crtc(pScrn, consider_disabled,
+	xf86CrtcPtr crtc = amdgpu_pick_best_crtc(pScrn, TRUE,
 						 pDraw->x, pDraw->x + pDraw->width,
 						 pDraw->y, pDraw->y + pDraw->height);
 
@@ -833,7 +833,7 @@ CARD32 amdgpu_dri2_extrapolate_msc_delay(xf86CrtcPtr crtc, CARD64 * target_msc,
  */
 static int amdgpu_dri2_get_msc(DrawablePtr draw, CARD64 * ust, CARD64 * msc)
 {
-	xf86CrtcPtr crtc = amdgpu_dri2_drawable_crtc(draw, TRUE);
+	xf86CrtcPtr crtc = amdgpu_dri2_drawable_crtc(draw);
 
 	/* Drawable not displayed, make up a value */
 	if (!crtc) {
@@ -948,7 +948,7 @@ static int amdgpu_dri2_schedule_wait_msc(ClientPtr client, DrawablePtr draw,
 	ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
 	DRI2FrameEventPtr wait_info = NULL;
 	uintptr_t drm_queue_seq = 0;
-	xf86CrtcPtr crtc = amdgpu_dri2_drawable_crtc(draw, TRUE);
+	xf86CrtcPtr crtc = amdgpu_dri2_drawable_crtc(draw);
 	uint32_t msc_delta;
 	uint32_t seq;
 	CARD64 current_msc;
@@ -1098,7 +1098,7 @@ static int amdgpu_dri2_schedule_swap(ClientPtr client, DrawablePtr draw,
 {
 	ScreenPtr screen = draw->pScreen;
 	ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
-	xf86CrtcPtr crtc = amdgpu_dri2_drawable_crtc(draw, TRUE);
+	xf86CrtcPtr crtc = amdgpu_dri2_drawable_crtc(draw);
 	uint32_t msc_delta;
 	drmVBlankSeqType type;
 	uint32_t seq;
commit 3109f088fdbd89c2ee8078625d4f073852492656
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Jun 6 11:22:09 2019 +0200

    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 at amd.com>

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


More information about the xorg-commit mailing list