Mesa (master): st/xorg: Simplify EXA ModifyPixmapHeader hook for pPixmap != NULL.

Michel Dänzer daenzer at kemper.freedesktop.org
Mon Aug 31 16:42:20 UTC 2009


Module: Mesa
Branch: master
Commit: 40e3148a81f93f590c7400b00a6c2d536a2258b0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=40e3148a81f93f590c7400b00a6c2d536a2258b0

Author: Michel Dänzer <daenzer at vmware.com>
Date:   Mon Aug 31 18:41:54 2009 +0200

st/xorg: Simplify EXA ModifyPixmapHeader hook for pPixmap != NULL.

Just let the upper layers handle it.

---

 src/gallium/state_trackers/xorg/xorg_exa.c |   21 ++++-----------------
 1 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
index 7b607cb..5d205dd 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -427,7 +427,7 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height,
     modesettingPtr ms = modesettingPTR(pScrn);
     struct exa_context *exa = ms->exa;
 
-    if (!priv)
+    if (!priv || pPixData)
 	return FALSE;
 
     if (depth <= 0)
@@ -476,24 +476,11 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height,
     }
 
 #ifdef DRM_MODE_FEATURE_DIRTYFB
-    if (!priv->tex) {
-	if (pPixData)
-	    pPixmap->devPrivate.ptr = pPixData;
-	else
+    if (!priv->tex)
 	    pPixmap->devPrivate.ptr = xalloc(pPixmap->drawable.height * pPixmap->devKind);
-    } else
 #endif
-    if (pPixData) {
-	struct pipe_transfer *transfer =
-	    exa->scrn->get_tex_transfer(exa->scrn, priv->tex, 0, 0, 0,
-					PIPE_TRANSFER_WRITE,
-					0, 0, width, height);
-        util_copy_rect(exa->scrn->transfer_map(exa->scrn, transfer),
-                       &priv->tex->block, transfer->stride, 0, 0,
-                       width, height, pPixData, pPixmap->devKind, 0, 0);
-        exa->scrn->transfer_unmap(exa->scrn, transfer);
-        exa->scrn->tex_transfer_destroy(transfer);
-    } else if (priv->tex && pPixmap->devPrivate.ptr) {
+
+    if (priv->tex && pPixmap->devPrivate.ptr) {
 	struct pipe_transfer *transfer;
 
 	if (priv->map_count != 0)




More information about the mesa-commit mailing list