summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-03-05 15:53:24 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-03-05 15:55:01 +0000
commitbc5f81901f1b4451e4187b97f65a8be4c03b2494 (patch)
tree4ba138a22e47f35cff8af7ecb0f0a17b76aa01e9 /src
parent43e3886c6de3ab89e3629c98287ede77ae2f6876 (diff)
sna: The GPU bo submit is still required before mapping for inplace operations
As we may choose to force the stall as we would be doing a read-back in any event... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/sna/sna_accel.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 76ec3b8f..e12cb073 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -1614,6 +1614,8 @@ skip_inplace_map:
sna_pixmap_create_mappable_gpu(pixmap, (flags & MOVE_READ) == 0)) {
DBG(("%s: try to operate inplace (GTT)\n", __FUNCTION__));
assert((flags & MOVE_READ) == 0 || priv->cpu == false);
+ /* XXX only sync for writes? */
+ kgem_bo_submit(&sna->kgem, priv->gpu_bo);
assert(priv->gpu_bo->exec == NULL);
pixmap->devPrivate.ptr = kgem_bo_map(&sna->kgem, priv->gpu_bo);
@@ -1971,6 +1973,8 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
region_inplace(sna, pixmap, region, priv, (flags & MOVE_READ) == 0) &&
sna_pixmap_create_mappable_gpu(pixmap, false)) {
DBG(("%s: try to operate inplace\n", __FUNCTION__));
+ /* XXX only sync for writes? */
+ kgem_bo_submit(&sna->kgem, priv->gpu_bo);
assert(priv->gpu_bo->exec == NULL);
pixmap->devPrivate.ptr = kgem_bo_map(&sna->kgem, priv->gpu_bo);