xf86-video-intel: 2 commits - src/sna/sna_display.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Jun 17 01:44:40 PDT 2011


 src/sna/sna_display.c |   28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

New commits:
commit de0286ed9f7814f903d56e488c7a4b3eb0ca56b0
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 17 09:40:53 2011 +0100

    sna/display: After copying the fbcon, tell the server that we have a background
    
    ... so that the core knows to skip the clear.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index c1913de..a0acea2 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -501,6 +501,7 @@ void sna_copy_fbcon(struct sna *sna)
 	struct sna_pixmap *priv;
 	struct kgem_bo *bo;
 	BoxRec box;
+	bool ok;
 	int i;
 
 	/* Scan the connectors for a framebuffer and assume that is the fbcon */
@@ -533,16 +534,18 @@ void sna_copy_fbcon(struct sna *sna)
 	priv = sna_pixmap(sna->front);
 	assert(priv && priv->gpu_bo);
 
-	sna->render.copy_boxes(sna, GXcopy,
-			       sna->front, bo, 0, 0,
-			       sna->front, priv->gpu_bo,
-			       (sna->front->drawable.width - fbcon->width)/2,
-			       (sna->front->drawable.height - fbcon->height)/2,
-			       &box, 1);
+	ok = sna->render.copy_boxes(sna, GXcopy,
+				    sna->front, bo, 0, 0,
+				    sna->front, priv->gpu_bo,
+				    (sna->front->drawable.width - fbcon->width)/2,
+				    (sna->front->drawable.height - fbcon->height)/2,
+				    &box, 1);
 	sna_damage_add_box(&priv->gpu_damage, &box);
 
 	kgem_bo_destroy(&sna->kgem, bo);
 
+	sna->scrn->pScreen->canDoBGNoneRoot = ok;
+
 cleanup_fbcon:
 	drmModeFreeFB(fbcon);
 }
commit f3869d60cc3bc349d1efba642baa011378f1c09b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 17 09:37:15 2011 +0100

    sna/display: Apply damage for the fbcon copy
    
    ... so that any immediate shadow usage will read back the fbcon
    contents.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index bab64ea..c1913de 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -498,7 +498,8 @@ void sna_copy_fbcon(struct sna *sna)
 {
 	xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(sna->scrn);
 	drmModeFBPtr fbcon;
-	struct kgem_bo *fbcon_bo;
+	struct sna_pixmap *priv;
+	struct kgem_bo *bo;
 	BoxRec box;
 	int i;
 
@@ -525,18 +526,22 @@ void sna_copy_fbcon(struct sna *sna)
 	box.x2 = fbcon->width;
 	box.y2 = fbcon->height;
 
-	fbcon_bo = sna_create_bo_for_fbcon(sna, fbcon);
-	if (fbcon_bo == NULL)
+	bo = sna_create_bo_for_fbcon(sna, fbcon);
+	if (bo == NULL)
 		goto cleanup_fbcon;
 
+	priv = sna_pixmap(sna->front);
+	assert(priv && priv->gpu_bo);
+
 	sna->render.copy_boxes(sna, GXcopy,
-			       sna->front, fbcon_bo, 0, 0,
-			       sna->front, sna_pixmap_get_bo(sna->front),
+			       sna->front, bo, 0, 0,
+			       sna->front, priv->gpu_bo,
 			       (sna->front->drawable.width - fbcon->width)/2,
 			       (sna->front->drawable.height - fbcon->height)/2,
 			       &box, 1);
+	sna_damage_add_box(&priv->gpu_damage, &box);
 
-	kgem_bo_destroy(&sna->kgem, fbcon_bo);
+	kgem_bo_destroy(&sna->kgem, bo);
 
 cleanup_fbcon:
 	drmModeFreeFB(fbcon);


More information about the xorg-commit mailing list