Mesa (mesa_7_7_branch): st/xorg: Flush any pending operations on upload

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Fri Nov 20 21:28:54 UTC 2009


Module: Mesa
Branch: mesa_7_7_branch
Commit: 5109484bd9cd79ed88af59280bd0be5a4150f37c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5109484bd9cd79ed88af59280bd0be5a4150f37c

Author: Jakob Bornecrantz <jakob at vmware.com>
Date:   Wed Nov 18 17:45:39 2009 +0100

st/xorg: Flush any pending operations on upload

---

 src/gallium/state_trackers/xorg/xorg_exa.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
index 3a51ad2..3d83b57 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -230,6 +230,11 @@ ExaUploadToScreen(PixmapPtr pPix, int x, int y, int w, int h, char *src,
     if (!priv || !priv->tex)
 	return FALSE;
 
+    /* make sure that any pending operations are flushed to hardware */
+    if (exa->pipe->is_texture_referenced(exa->pipe, priv->tex, 0, 0) &
+	(PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE))
+	xorg_exa_flush(exa, 0, NULL);
+
     transfer = exa->scrn->get_tex_transfer(exa->scrn, priv->tex, 0, 0, 0,
 					   PIPE_TRANSFER_WRITE, x, y, w, h);
     if (!transfer)




More information about the mesa-commit mailing list