xf86-video-intel: 2 commits - configure.ac NEWS src/sna/kgem.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Oct 23 01:54:23 PDT 2013


 NEWS           |   29 +++++++++++++++++++++++++++++
 configure.ac   |    2 +-
 src/sna/kgem.c |   49 +++++++++++++++++--------------------------------
 3 files changed, 47 insertions(+), 33 deletions(-)

New commits:
commit 585340f75cb897e1293a887e8ef5a9552ea347cd
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Oct 23 09:50:24 2013 +0100

    2.99.905 snapshot

diff --git a/NEWS b/NEWS
index 3fb057e..79cdf86 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,32 @@
+Snapshot 2.99.905 (2013-10-23)
+==============================
+The highlight for this snapshot is the extension of TearFree to support
+transformed outputs, along with some polishing to eliminate its impact
+upon input and output latency. As always, thanks to everyone who have
+been testing, reporting bugs and helping to improve the stability before
+release.
+
+ * Prevent a crash when starting with a user specified mode or position
+
+ * Prevent some crashes in UXA after allocation failure
+
+ * Stop marking the user's preferred backlight value as 0 if the
+   backlight property is queried whilst the connector is disabled
+   https://bugs.freedesktop.org/show_bug.cgi?id=70406
+
+ * Pad GETCONNECTOR ioctl for compatability between 32/64-bit userspace
+   and kernel
+
+ * Handle long glyph runs correctly
+   https://bugs.freedesktop.org/show_bug.cgi?id=70541
+
+ * Fix clipping of stippled rectangles against clip regions
+   https://bugs.freedesktop.org/show_bug.cgi?id=67865
+
+ * Support TearFree rendering of rotated outputs
+   https://bugs.freedesktop.org/show_bug.cgi?id=22969
+
+
 Snapshot 2.99.904 (2013-10-09)
 ==============================
 There is one more feature planned to be completed for 3.0, so time for a
diff --git a/configure.ac b/configure.ac
index aa444a5..eb20807 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-intel],
-        [2.99.904],
+        [2.99.905],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-intel])
 AC_CONFIG_SRCDIR([Makefile.am])
commit aff67ada6cd2cb1f8adb5bec27a27fbc0f2884cc
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Oct 23 08:40:43 2013 +0100

    sna: Tidy opportunistic flushing
    
    Rearrange the common code so that it should be tail-call optimised.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 74af421..d60c430 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -4651,15 +4651,17 @@ static bool aperture_check(struct kgem *kgem, unsigned num_pages)
 static inline bool kgem_flush(struct kgem *kgem, bool flush)
 {
 	if (kgem->nreloc == 0)
-		return false;
+		return true;
 
 	if (container_of(kgem, struct sna, kgem)->flags & SNA_POWERSAVE)
-		return false;
+		return true;
 
 	if (kgem->flush == flush && kgem->aperture < kgem->aperture_low)
-		return false;
+		return true;
 
-	return kgem_ring_is_idle(kgem, kgem->ring);
+	DBG(("%s: opportunistic flushing? flush=%d,%d, aperture=%d/%d, idle?=%d\n",
+	     __FUNCTION__, kgem->flush, flush, kgem->aperture, kgem->aperture_low, kgem_ring_is_idle(kgem, kgem->ring)));
+	return !kgem_ring_is_idle(kgem, kgem->ring);
 }
 
 bool kgem_check_bo(struct kgem *kgem, ...)
@@ -4701,19 +4703,13 @@ bool kgem_check_bo(struct kgem *kgem, ...)
 		return false;
 	}
 
-	if (kgem_flush(kgem, flush)) {
-		DBG(("%s: opportunistic flushing, aperture %d/%d\n",
-		     __FUNCTION__, kgem->aperture, kgem->aperture_low));
-		return false;
-	}
-
 	if (num_pages + kgem->aperture > kgem->aperture_high) {
 		DBG(("%s: final aperture usage (%d) is greater than high water mark (%d)\n",
 		     __FUNCTION__, num_pages + kgem->aperture, kgem->aperture_high));
 		return aperture_check(kgem, num_pages);
 	}
 
-	return true;
+	return kgem_flush(kgem, flush);
 }
 
 bool kgem_check_bo_fenced(struct kgem *kgem, struct kgem_bo *bo)
@@ -4753,12 +4749,6 @@ bool kgem_check_bo_fenced(struct kgem *kgem, struct kgem_bo *bo)
 		return false;
 	}
 
-	if (kgem_flush(kgem, bo->flush)) {
-		DBG(("%s: opportunistic flushing, aperture %d/%d\n",
-		     __FUNCTION__, kgem->aperture, kgem->aperture_low));
-		return false;
-	}
-
 	if (kgem->aperture + num_pages(bo) > kgem->aperture_high) {
 		DBG(("%s: final aperture usage (%d) is greater than high water mark (%d)\n",
 		     __FUNCTION__, num_pages(bo) + kgem->aperture, kgem->aperture_high));
@@ -4780,7 +4770,7 @@ bool kgem_check_bo_fenced(struct kgem *kgem, struct kgem_bo *bo)
 			return false;
 	}
 
-	return true;
+	return kgem_flush(kgem, bo->flush);
 }
 
 bool kgem_check_many_bo_fenced(struct kgem *kgem, ...)
@@ -4840,24 +4830,19 @@ bool kgem_check_many_bo_fenced(struct kgem *kgem, ...)
 			return false;
 	}
 
-	if (num_pages) {
-		if (kgem->nexec + num_exec >= KGEM_EXEC_SIZE(kgem))
-			return false;
+	if (num_pages == 0)
+		return true;
 
-		if (kgem_flush(kgem, flush)) {
-			DBG(("%s: opportunistic flushing, aperture %d/%d\n",
-			     __FUNCTION__, kgem->aperture, kgem->aperture_low));
-			return false;
-		}
+	if (kgem->nexec + num_exec >= KGEM_EXEC_SIZE(kgem))
+		return false;
 
-		if (num_pages + kgem->aperture > kgem->aperture_high) {
-			DBG(("%s: final aperture usage (%d) is greater than high water mark (%d)\n",
-			     __FUNCTION__, num_pages + kgem->aperture, kgem->aperture_high));
-			return aperture_check(kgem, num_pages);
-		}
+	if (num_pages + kgem->aperture > kgem->aperture_high) {
+		DBG(("%s: final aperture usage (%d) is greater than high water mark (%d)\n",
+		     __FUNCTION__, num_pages + kgem->aperture, kgem->aperture_high));
+		return aperture_check(kgem, num_pages);
 	}
 
-	return true;
+	return kgem_flush(kgem, flush);
 }
 
 uint32_t kgem_add_reloc(struct kgem *kgem,


More information about the xorg-commit mailing list