xf86-video-intel: 2 commits - src/sna/compiler.h src/sna/sna_composite.c src/sna/sna_trapezoids.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Jun 5 03:05:28 PDT 2012


 src/sna/compiler.h       |    2 +-
 src/sna/sna_composite.c  |    7 +++++++
 src/sna/sna_trapezoids.c |    4 ++--
 3 files changed, 10 insertions(+), 3 deletions(-)

New commits:
commit 99df720216787c52d16a350dd25469e2dcea2c47
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Jun 5 10:24:34 2012 +0100

    sna: Add inline keyword in conjunction with attribute(always_inline)
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/compiler.h b/src/sna/compiler.h
index 653435f..ff80365 100644
--- a/src/sna/compiler.h
+++ b/src/sna/compiler.h
@@ -32,7 +32,7 @@
 #define likely(expr) (__builtin_expect (!!(expr), 1))
 #define unlikely(expr) (__builtin_expect (!!(expr), 0))
 #define noinline __attribute__((noinline))
-#define force_inline __attribute__((always_inline))
+#define force_inline inline __attribute__((always_inline))
 #define fastcall __attribute__((regparm(3)))
 #define must_check __attribute__((warn_unused_result))
 #define constant __attribute__((const))
diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c
index e2212b9..bfb4e0c 100644
--- a/src/sna/sna_trapezoids.c
+++ b/src/sna/sna_trapezoids.c
@@ -3672,14 +3672,14 @@ struct inplace {
 	};
 };
 
-static inline uint8_t
+static force_inline uint8_t
 mul_8_8(uint8_t a, uint8_t b)
 {
     uint16_t t = a * (uint16_t)b + 0x7f;
     return ((t >> 8) + t) >> 8;
 }
 
-static uint8_t coverage_opacity(int coverage, uint8_t opacity)
+static force_inline uint8_t coverage_opacity(int coverage, uint8_t opacity)
 {
 	coverage = coverage * 256 / FAST_SAMPLES_XY;
 	return mul_8_8(coverage - (coverage >> 8), opacity);
commit 47d7da5a986a9f133cd3dc8314ff243001586a36
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Jun 5 10:18:40 2012 +0100

    sna: Maintain the operation on the CPU if not completely replacing all-damaged
    
    We may as well continue the operation on the CPU if already bound to try to
    reduce needless migrations (where the cost of the upload will outweigh
    further use).
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index 973a657..8528217 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -790,6 +790,13 @@ sna_composite_rectangles(CARD8		 op,
 		goto fallback;
 	}
 
+	if (DAMAGE_IS_ALL(priv->cpu_damage) &&
+	    (region.extents.x2 - region.extents.x1 < pixmap->drawable.width ||
+	     region.extents.y2 - region.extents.y1 < pixmap->drawable.height)) {
+		DBG(("%s: fallback due to completely damaged CPU\n", __FUNCTION__));
+		goto fallback;
+	}
+
 	/* If we going to be overwriting any CPU damage with a subsequent
 	 * operation, then we may as well delete it without moving it
 	 * first to the GPU.


More information about the xorg-commit mailing list