xf86-video-intel: 3 commits - src/sna/kgem.c src/sna/sna_io.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Aug 7 09:21:39 PDT 2015


 src/sna/kgem.c   |    1 -
 src/sna/sna_io.c |   11 ++++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

New commits:
commit 611ec7d7d476c47eefc35e2857bc6b87af819e43
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Aug 7 17:19:25 2015 +0100

    sna: Remove incorrect assertion
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 34893d7..33c48fd 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -3997,7 +3997,6 @@ void _kgem_submit(struct kgem *kgem)
 	assert(kgem->nreloc <= ARRAY_SIZE(kgem->reloc));
 	assert(kgem->nexec < ARRAY_SIZE(kgem->exec));
 	assert(kgem->nfence <= kgem->fence_max);
-	assert(kgem->ring < ARRAY_SIZE(kgem->requests));
 
 	kgem_finish_buffers(kgem);
 
commit f324506f7da369222b6c5dd65dfddaea65b7cb41
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Aug 7 16:44:19 2015 +0100

    sna: Prefer direct writes if the target is LLC
    
    If we can use WB CPU writes into the target, prefer to do so.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index f6418cd..d32bd58 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -794,6 +794,9 @@ static bool __upload_inplace(struct kgem *kgem,
 	if (bo->flush)
 		return true;
 
+	if (kgem_bo_can_map__cpu(kgem, bo, true))
+		return true;
+
 	/* If we are writing through the GTT, check first if we might be
 	 * able to almagamate a series of small writes into a single
 	 * operation.
commit 095528e6c3ca6aba2b141f451d0e1f14f3e57a59
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Aug 7 16:29:54 2015 +0100

    sna: Tweak the semantics for small uploads into Damage tracked pixmaps
    
    Based on further study of behaviour under a compositing manager, always
    prefer to upload directly into the flushed bo, with a couple of
    exceptions.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index 6bf87ee..f6418cd 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -788,6 +788,12 @@ static bool __upload_inplace(struct kgem *kgem,
 	if (FORCE_INPLACE)
 		return FORCE_INPLACE > 0;
 
+	if (bo->exec)
+		return false;
+
+	if (bo->flush)
+		return true;
+
 	/* If we are writing through the GTT, check first if we might be
 	 * able to almagamate a series of small writes into a single
 	 * operation.
@@ -797,7 +803,7 @@ static bool __upload_inplace(struct kgem *kgem,
 		bytes += (box->x2 - box->x1) * (box->y2 - box->y1);
 		box++;
 	}
-	if (!bo->flush && __kgem_bo_is_busy(kgem, bo))
+	if (__kgem_bo_is_busy(kgem, bo))
 		return bytes * bpp >> 12 >= kgem->half_cpu_cache_pages;
 	else
 		return bytes * bpp >> 12;


More information about the xorg-commit mailing list