xf86-video-intel: 2 commits - src/sna/sna_dri2.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Jun 12 06:51:37 PDT 2015
src/sna/sna_dri2.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
New commits:
commit 92a27732217b4d70f9af7d3dc12de7d69d5a6ab6
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Jun 12 14:29:42 2015 +0100
sna/dri2: Record fence bo by inspecting the dst_bo
As the backend may submit the batch as it completes the copy, we need to
look at what request the dst_bo is in rather than assuming it is the
next_request.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index 594b689..040aebb 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -1240,12 +1240,14 @@ __sna_dri2_copy_region(struct sna *sna, DrawablePtr draw, RegionPtr region,
boxes, n, hint);
if (flags & (DRI2_SYNC | DRI2_BO)) { /* STAT! */
- struct kgem_request *rq = sna->kgem.next_request;
- DBG(("%s: flushing\n", __FUNCTION__));
- kgem_submit(&sna->kgem);
- if (rq->bo) {
+ struct kgem_request *rq = RQ(dst_bo->rq);
+ if (rq != (void *)&sna->kgem) {
+ if (rq->bo == NULL)
+ kgem_submit(&sna->kgem);
+ assert(rq->bo);
bo = ref(rq->bo);
- DBG(("%s: recording sync fence handle=%d\n", __FUNCTION__, bo->handle));
+ DBG(("%s: recording sync fence handle=%d\n",
+ __FUNCTION__, bo->handle));
}
}
commit dc9ee01d1255faad81f7667b99b4871e5f08d8c7
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Jun 12 14:26:56 2015 +0100
sna/dri2: Correct a couple of DBG statements for copy_region
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index 187e53f..594b689 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -162,6 +162,7 @@ __sna_dri2_copy_region(struct sna *sna, DrawablePtr draw, RegionPtr region,
inline static void
__sna_dri2_copy_event(struct sna_dri2_event *info, unsigned flags)
{
+ DBG(("%s: flags = %x\n", __FUNCTION__, flags));
info->bo = __sna_dri2_copy_region(info->sna, info->draw, NULL,
info->back, info->front,
flags);
@@ -1238,9 +1239,9 @@ __sna_dri2_copy_region(struct sna *sna, DrawablePtr draw, RegionPtr region,
dst_draw, dst_bo, dx, dy,
boxes, n, hint);
- DBG(("%s: flushing? %d\n", __FUNCTION__, sync));
if (flags & (DRI2_SYNC | DRI2_BO)) { /* STAT! */
struct kgem_request *rq = sna->kgem.next_request;
+ DBG(("%s: flushing\n", __FUNCTION__));
kgem_submit(&sna->kgem);
if (rq->bo) {
bo = ref(rq->bo);
More information about the xorg-commit
mailing list