xserver-xorg-video-intel: Changes to 'debian-experimental'
ChangeLog | 540 ++++++++++
NEWS | 15
configure.ac | 2
debian/changelog | 7
debian/patches/0001-Fix-build-failure-when-passing-with-builderstring.patch | 33
debian/patches/series | 1
man/intel.man | 123 +-
src/intel_driver.c | 2
src/intel_module.c | 38
src/sna/blt.c | 5
src/sna/fb/fbbitmap.c | 4
src/sna/gen2_render.c | 17
src/sna/gen3_render.c | 83 -
src/sna/gen4_render.c | 25
src/sna/gen5_render.c | 33
src/sna/gen6_render.c | 42
src/sna/gen7_render.c | 43
src/sna/kgem.c | 107 +
src/sna/kgem.h | 22
src/sna/sna.h | 7
src/sna/sna_accel.c | 247 +++-
src/sna/sna_blt.c | 329 +++++-
src/sna/sna_composite.c | 7
src/sna/sna_damage.c | 46
src/sna/sna_driver.c | 2
src/sna/sna_render.c | 104 -
src/sna/sna_render.h | 3
src/sna/sna_render_inline.h | 26
src/sna/sna_trapezoids.c | 92 +
29 files changed, 1521 insertions(+), 484 deletions(-)
New commits:
commit 7f3d01107b05783c1c31266e405c93f55a333e43
Author: Julien Danjou <julien@danjou.info>
Date: Sun Aug 26 14:32:03 2012 +0200
Upload 2.20.5 to experimental
Signed-off-by: Julien Danjou <julien@danjou.info>
diff --git a/debian/changelog b/debian/changelog
index e9b8f0c..6d26eef 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-video-intel (2:2.20.5-1) UNRELEASED; urgency=low
+xserver-xorg-video-intel (2:2.20.5-1) experimental; urgency=low
* New upstream release.
- Remove patch to support passing a builder string, merged upstream
commit 07d10d30e38953bb5fcb2b0d1770194fdde4563b
Author: Julien Danjou <julien@danjou.info>
Date: Sun Aug 26 14:26:23 2012 +0200
New upstream release 2.20.5
Signed-off-by: Julien Danjou <julien@danjou.info>
diff --git a/ChangeLog b/ChangeLog
index a4f960f..c1223d4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,543 @@
+commit b5c77a6aaf520e331e82409b2592911cb1bb3100
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 26 12:48:18 2012 +0100
+
+ 2.20.5 release
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 454cc8453af1852758c3396dbe303c13c5c1be27
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Aug 24 08:48:12 2012 +0100
+
+ sna: Submit the partial batch before throttling
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 0e1e83ed4952f620e9422e58f955a5aea406e300
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Aug 24 00:59:31 2012 +0100
+
+ sna: Allow the batch to be flushed if the GPU is idle upon a context switch
+
+ Submit early, submit often in order to keep the GPU busy. As always we
+ trade off CPU overhead versus concurrency.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5059db0697c5516f1538f7062937664baf7b1c2e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Aug 24 00:21:07 2012 +0100
+
+ sna: Correct a pair of DBG messages
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c5b46e411a2c738c5ae55bffb9b3d460249f5c24
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 23 17:36:10 2012 +0100
+
+ sna: Tidy up users of __kgem_bo_is_busy()
+
+ A lot of callsites had not been converted to the common function.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 82e91327d57e03d2117638165f298a50b946fcaa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 23 15:59:00 2012 +0100
+
+ sna: Use a temporary userptr mapping for a large upload into a busy target
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b286ffa6beccb8fe341c464a4fb9f2af98541263
+Author: Eric S. Raymond <esr@thyrsus.com>
+Date: Thu Aug 23 12:42:18 2012 -0400
+
+ Fix seriously malformed list syntax on intel(4).
+
+ Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
+
+commit fc6b7f564df88ca773ae245b1b4e278b47dffd59
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 23 15:13:14 2012 +0100
+
+ sna: Flush the batch if it contains any DRI pixmaps
+
+ This fixes a regression from
+
+ commit 02963f489b177d0085006753e91e240545933387
+ Author: Chris Wilson <chris@chris-wilson.co.uk>
+ Date: Sun Aug 19 15:45:35 2012 +0100
+
+ sna: Only submit the batch if flushing a DRI client bo
+
+ which made the presumption that we called sna_add_flush_pixmap() for
+ every DRI pixmap that we used. However, that is only called for the
+ dirty pixmaps, any native exported pixmap only marks the batch as
+ requiring a flush. So in those cases we always need to submit the batch
+ if it contains an exported DRI pixmap.
+
+ Reported-by: chr.ohm@gmx.net
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53967
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit fd38f45ec5421802b426867a050c978a2feec937
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 23 12:11:48 2012 +0100
+
+ sna: Mark the CPU damage as needing flushing for DRI buffers
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ac6cb667546a82b865c959a1be32f52b2da7bf7d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 22 12:00:49 2012 +0100
+
+ sna: Flush before adding any SHM pixmap into the batch
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 785c1046b94fd9ca6f22b2a6d73639408a411cea
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 22 10:56:12 2012 +0100
+
+ sna: Only use the GPU for an active CPU bo unless forced
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8032f51859ce1928922edf6892f493a84d9c39f0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 22 10:40:53 2012 +0100
+
+ sna: If we cannot use the CPU bo along a render pathway, promote to GPU
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit cc967507bbf357e1d5ec3cd0f3c0c5ecfa8b867a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 22 10:36:04 2012 +0100
+
+ sna: Convert to using IGNORE_CPU flag rather than complicating the CPU damage
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5aa59ce7c012eb309c4f5a362ccf531c065bd7ff
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 22 10:10:33 2012 +0100
+
+ sna: Assert that the CPU bo is not used if the GPU is clear
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 273765033223024ff6a662195e0e4b96f8960463
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 22 00:48:08 2012 +0100
+
+ sna: Make sure the opposite damage is destroyed after reducing to all
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 31e398c9dbd8539e6fd2cc7398e97ee1df2f7f23
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 22 00:38:17 2012 +0100
+
+ sna: Discard a no-longer-used GPU bo after moving to the CPU domain
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8be15c37df9d9b34e0f21700673212bd19c772b2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 22 00:27:00 2012 +0100
+
+ sna: Balance CPU bo accounting for SHM pixmaps
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 262d57a5aaac46508d8e29860c7a567bcd5bc4d8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 21 23:36:12 2012 +0100
+
+ sna: Display still resident memory in inactive/snoop caches under DEBUG_MEMORY
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 304581cc02adeb865a24edde934b5b9ceba68d96
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 21 23:29:12 2012 +0100
+
+ sna: Add a DBG to log pixmap destruction
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 946d54238d90f5e31772f0df336ac9a5e7f2d62b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 21 21:02:00 2012 +0100
+
+ sna: Fix the assertion for tracking proxies in the batch
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 4ee2e227ddf61c87f08f55d4922d2562b563ca87
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 21 00:28:40 2012 +0100
+
+ sna: Mark all levels of a proxy as dirty
+
+ So that if we write to a surface through one view, we make sure that the
+ sample cache is invalidated for all future views.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit eee181e9d71273d94fe735805ed84e8f7b7b2180
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 21 00:19:10 2012 +0100
+
+ sna/gen6+: Only mark the dst as dirty again if it already is in the batch
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c86df17c1455a53cb52f33a25c8c362e5331621e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 22:54:06 2012 +0100
+
+ sna/gen3: Fix assertion to check the freshly allocated vertex bo
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 6aabe90587f4916a01a1cd2bbc577a1e7fa20eca
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 22:09:54 2012 +0100
+
+ sna: Allow target bo promotion to GPU even on old architectures
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 1a4b6fea7b1516de35e6800efa5b85f8401a5b2a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 22:08:23 2012 +0100
+
+ sna: Assign a unique id to snoopable CPU bo
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 892b1a1e431e8f27133825f8a27dde4955da0054
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 22:07:05 2012 +0100
+
+ sna/gen3: Convert to sna_drawable_use_bo()
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 3ca1bfb51ba522454433d58131e7dab7fcbe7e34
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 21:28:47 2012 +0100
+
+ sna: Trim a parameter from kgem_bo_mark_dirty() and add some assertions
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 16f3d3a9ae145a3af51d2c0c42c6c585d676a863
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 19:42:22 2012 +0100
+
+ sna: Keep a stash of the most recently allocated requests
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit fb349ced91e15ecaa025321bd37d1fe3cfdd2f44
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 17:35:44 2012 +0100
+
+ sna: A few more buffer cache management assertions
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ae6b3c7508d570af94f172d6a91d62d2987d654b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 17:03:16 2012 +0100
+
+ Check that the module that indeed i915 before using custom ioctls
+
+ Thanks to Adam Jackson for pointing me towards drmGetVersion() and
+ Julien Cristau for saying "Yuck!"
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 3c611087e8ae09fc3fe4271f16d912ac8ae89f6b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 16:09:25 2012 +0100
+
+ Only open the matching BusID and not the first named
+
+ If you pass a name to drmOpen() it will attempt to open any device
+ corresponding to that name if it first fails to open the device
+ corresponding to the BusID. Obviously we want the failure from opening
+ the specified device in order to prevent wrongly opening the first found
+ device multiple times.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit dd6c67b32f726b6ad7f12f3b83f6d8c868ff4dc1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 15:58:03 2012 +0100
+
+ sna: Add a couple of buffer cache management assertions
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 01ebdb4d7a8bb751167153554f9122d996e4ea91
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 15:33:26 2012 +0100
+
+ sna: Remove confusing is_cpu()
+
+ The only real user now has its own heuristics, so convert the remaining
+ users over to !is_gpu().
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 410316d20299b9ed3447d1d897f904af786ed097
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 14:56:12 2012 +0100
+
+ sna: Refine decision making for maybe-inplace trapezoids
+
+ In particular, we want to avoid preferentially taking the CPU paths
+ when it may force any migration (including clear).
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 91f1bf971f9cdc6498f513a5ddec1ad7a4e24b3d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 15:27:27 2012 +0100
+
+ sna: Correct ordering of calls to memcpy for BLT cpu composite paths
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 027569bf83fc6d67dca7cfd65fdfa37ef6b47204
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 12:55:20 2012 +0100
+
+ Missing includes for b5b76ad849b
+
+ The warnings of implicit function declarations were lost amongst the
+ noise.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit f1b259f627814c765ea93d8c839ee7533249974f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 12:51:51 2012 +0100
+
+ sna: Add a modicum of DBG for PolyFillRect
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b5b76ad849bfda1e75192d1cb3c6c0fcc623bb91
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 12:01:39 2012 +0100
+
+ Sanity check that the driver is an i915.ko GEM device before claiming it
+
+ This fixes an issue with us claiming Poulsbo and friends even though we
+ do not speak their language.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 74f998136bac441d782faf779616af6f7bdcadad
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 11:07:55 2012 +0100
+
+ sna: Avoid migrating the BLT composite src to the GPU if the dst is not
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit a05643eb670e91ab102465df799301def88faaf9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 10:46:14 2012 +0100
+
+ sna: Remove unneeded source bo unref after __sna_render_pixmap_bo()
+
+ As __sna_render_pixmap_bo() deliberately does not reference its returned
+ bo, we need to avoid unreferencing it else we cause explosions later.
+
+ Fixes regression from commit a13781d19defc97af6a279c11a85e33ef825020e
+ Author: Chris Wilson <chris@chris-wilson.co.uk>
+ Date: Sun Aug 19 09:45:12 2012 +0100
+
+ sna: Enable BLT composite functions to target CPU buffers
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c80db9bc2ef0a37a4abb78c9ef667c8b36ab6fba
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 20 10:45:36 2012 +0100
+
+ sna: Flush the batch before preparing for a FlushCallback
+
+ As we end up submitting and maybe synchronising upon a batch within
+ FlushCallback (or our client will) it is important that we start that
+ serialized batch as early as possible to minimise the impending stalls.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c39fe0253847f5a86e16b47ba420c8ba819c9110
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 20:42:55 2012 +0100
+
+ sna: Do not use the GPU to migrate to the CPU whilst wedged!
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit fe05268d70088c8cad5f4b5ef756e1ffe2069fca
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 19:28:42 2012 +0100
+
+ sna: Experiment with flushing the batch prior to rendering to a ShmPixmap
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit bbd7a825810cc9772e6d613df449cb5ecb0be3f6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 19:28:20 2012 +0100
+
+ sna: Don't promote a ShmPixmap to GPU for a CopyArea
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 7bf7a5ad1057f1aeb5b261da6dc501323c022287
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 19:17:35 2012 +0100
+
+ sna/gen3: Tidy vbo discard
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d1b808fd72b477bde96f7c6737a993bd1a20baf2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 17:53:24 2012 +0100
+
+ sna: Tweak is_cpu/is_gpu heuristics
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c682c1a37692021cbd9bfc1e3f1ccf2b648c73f9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 17:28:25 2012 +0100
+
+ sna: Discard GPU (and damage) after applying clear on migration to CPU
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit dc83ef49f9e8ff94ab77aa9d54fe29e32b9d7a3d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 17:20:45 2012 +0100
+
+ sna/trapezoids: Accept more operators for maybe-inplace
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 47d948f5df0cd0e975cfe5183b6ce79cd3fd27ee
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 17:09:21 2012 +0100
+
+ sna: Update maybe_inplace to recognise more types of handled pixel formats
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 02963f489b177d0085006753e91e240545933387
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 15:45:35 2012 +0100
+
+ sna: Only submit the batch if flushing a DRI client bo
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 13d1a105159222518800d3c5ad5660725864ec6b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 09:48:05 2012 +0100
+
+ sna: compare the correct trailing dword when skipping identical bitmap lines
+
+ Fixes regression in 2.20.4 from
+
+ commit 85192f00e345830541e3715e211b1f98154bbef4
+ Author: Chris Wilson <chris@chris-wilson.co.uk>
+ Date: Wed Aug 8 12:11:50 2012 +0100
+
+ sna: Ignore trailing bits when comparing lines inside the bitmap
+
+ Reported-by: Edward Sheldrake <ejsheldrake@gmail.com>
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53699
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit a13781d19defc97af6a279c11a85e33ef825020e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 19 09:45:12 2012 +0100
+
+ sna: Enable BLT composite functions to target CPU buffers
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit be940856c74fbedd27997dd61e2a85959b321193
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 18 21:23:03 2012 +0100
+
+ sna: Consider sample wraparound in each direction independently
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 110c7ef7f6c31929affa038918e6ce087bccddc6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 18 17:42:51 2012 +0100
+
+ sna/damage: Replace the damage with a larger box if subsumed
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 75a2fab766d8aed180ef795919e503db22c0e0fd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 18 17:28:08 2012 +0100
+
+ sna: Avoid forcing an upload for an unblittable bo unless on a fallback path
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 110d5519f3523b1e2c50db637cdc4c5bc44c960a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 18 16:39:52 2012 +0100
+
+ sna: Reduce subtracted damage earlier
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8812e8b6e89e6432a6a768a0566ce4c153e9b256
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 18 16:21:13 2012 +0100
+
+ sna: Reduce damage after a large composite operation
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit e361627b90ea6bf2f9a8c46cf8debe562fdf4f09
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 18 16:16:17 2012 +0100
+
+ sna/damage: Add some more sanity checks for creating empty regions
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 10f334872e9dd190e18c768219e60815acabe4d3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 18 15:49:02 2012 +0100
+
+ sna: Add damage for the whole unaligned trapezoid not per component
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
commit 5ff6198c9346d84717bac28980329b048f4406e8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sat Aug 18 11:59:56 2012 +0100
diff --git a/debian/changelog b/debian/changelog
index 7f0abd5..e9b8f0c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,10 @@
-xserver-xorg-video-intel (2:2.20.4-1) UNRELEASED; urgency=low
+xserver-xorg-video-intel (2:2.20.5-1) UNRELEASED; urgency=low
- [ Timo Aaltonen ]
* New upstream release.
+ - Remove patch to support passing a builder string, merged upstream
+ 0001-Fix-build-failure-when-passing-with-builderstring.patch
- -- Julien Cristau <jcristau@debian.org> Sat, 18 Aug 2012 18:26:47 +0200
+ -- Julien Danjou <acid@debian.org> Sun, 26 Aug 2012 14:25:55 +0200
xserver-xorg-video-intel (2:2.20.2-1) experimental; urgency=low
diff --git a/debian/patches/0001-Fix-build-failure-when-passing-with-builderstring.patch b/debian/patches/0001-Fix-build-failure-when-passing-with-builderstring.patch
deleted file mode 100644
index 6281d3a..0000000
--- a/debian/patches/0001-Fix-build-failure-when-passing-with-builderstring.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d96feed041266a7629e4839e1294f3074679891a Mon Sep 17 00:00:00 2001
-From: Cyril Brulebois <kibi@debian.org>
-Date: Mon, 7 Nov 2011 23:29:29 +0100
-Subject: [PATCH] Fix build failure when passing --with-builderstring.
-
-If --with-builderstring="foo" is passed to configure (and sna enabled):
- CC sna_driver.lo
-src/sna/sna_driver.c: In function 'sna_init_scrn':
-src/sna/sna_driver.c:1023:7: error: token ""foo"" is not valid in preprocessor expressions
-
-Fix the missing defined() around the BUILDER_DESCRIPTION variable.
-
-Signed-off-by: Cyril Brulebois <kibi@debian.org>
----
- src/sna/sna_driver.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
-index 770a5bd..763a5a3 100644
---- a/src/sna/sna_driver.c
-+++ b/src/sna/sna_driver.c
-@@ -1068,7 +1068,7 @@ void sna_init_scrn(ScrnInfoPtr scrn, int entity_num)
- #if defined(USE_GIT_DESCRIBE)
- xf86DrvMsg(scrn->scrnIndex, X_INFO,
- "SNA compiled from %s\n", git_version);
--#elif BUILDER_DESCRIPTION
-+#elif defined(BUILDER_DESCRIPTION)
- xf86DrvMsg(scrn->scrnIndex, X_INFO,
- "SNA compiled: %s\n", BUILDER_DESCRIPTION);
- #endif
---
-1.7.7.3
-
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index 3569ab4..0000000
--- a/debian/patches/series
+++ /dev/null
@@ -1 +0,0 @@
-0001-Fix-build-failure-when-passing-with-builderstring.patch
commit b5c77a6aaf520e331e82409b2592911cb1bb3100
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sun Aug 26 12:48:18 2012 +0100
2.20.5 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/NEWS b/NEWS
index 1ad769e..54f2caa 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,18 @@
+Release 2.20.5 (2012-08-26)
+===========================
+Another silly bug found, another small bugfix release. The goal was for
+the driver to bind to all Intel devices supported by the kernel.
+Unfortunately we were too successful and started claiming Pouslbo,
+Medfield and Cedarview devices which are still encumbered by propietary
+IP and not supported by this driver.
+
+Bugs fixed since 2.20.4:
+
+ * Only bind to Intel devices using the i915 kernel module
+
+ * Regression in the bitmap-to-region code, e.g. icewm window buttons
+ https://bugs.freedesktop.org/show_bug.cgi?id=53699
+
Release 2.20.4 (2012-08-18)
===========================
Continuing the small bugfix releases, the only real feature is initial
diff --git a/configure.ac b/configure.ac
index a9c6336..114e721 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-intel],
- [2.20.4],
+ [2.20.5],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-intel])
AC_CONFIG_SRCDIR([Makefile.am])
commit 454cc8453af1852758c3396dbe303c13c5c1be27
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Aug 24 08:48:12 2012 +0100
sna: Submit the partial batch before throttling
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 9bc8c48..fd9728c 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -13691,8 +13691,10 @@ static void sna_accel_throttle(struct sna *sna)
{
DBG(("%s (time=%ld)\n", __FUNCTION__, (long)TIME));
- if (sna->kgem.need_throttle)
+ if (sna->kgem.need_throttle) {
+ kgem_submit(&sna->kgem);
kgem_throttle(&sna->kgem);
+ }
if (!sna->kgem.need_retire)
sna_accel_disarm_timer(sna, THROTTLE_TIMER);
commit 0e1e83ed4952f620e9422e58f955a5aea406e300
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Aug 24 00:59:31 2012 +0100
sna: Allow the batch to be flushed if the GPU is idle upon a context switch
Submit early, submit often in order to keep the GPU busy. As always we
trade off CPU overhead versus concurrency.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index 9e51cb7..d2f6fe7 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -3124,8 +3124,16 @@ gen2_render_context_switch(struct kgem *kgem,
{
struct sna *sna = container_of(kgem, struct sna, kgem);
+ if (!kgem->mode)
+ return;
+
/* Reload BLT registers following a lost context */
sna->blt_state.fill_bo = 0;
+
+ if (kgem_is_idle(kgem)) {
+ DBG(("%s: GPU idle, flushing\n", __FUNCTION__));
+ _kgem_submit(kgem);
+ }
}
bool gen2_render_init(struct sna *sna)
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index 2894c58..aaf7e49 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -3509,6 +3509,9 @@ static void
gen5_render_context_switch(struct kgem *kgem,
int new_mode)
{
+ if (!kgem->mode)
+ return;
+
/* Ironlake has a limitation that a 3D or Media command can't
* be the first command after a BLT, unless it's
* non-pipelined.
@@ -3522,6 +3525,11 @@ gen5_render_context_switch(struct kgem *kgem,
__FUNCTION__));
sna->render_state.gen5.drawrect_limit = -1;
}
+
+ if (kgem_is_idle(kgem)) {
+ DBG(("%s: GPU idle, flushing\n", __FUNCTION__));
+ _kgem_submit(kgem);
+ }
}
static void
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 84e7902..bfbcfd8 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -2366,9 +2366,18 @@ static bool prefer_blt_ring(struct sna *sna)
return sna->kgem.ring != KGEM_RENDER;
}
-static bool can_switch_rings(struct sna *sna)
+static bool can_switch_to_blt(struct sna *sna)
{
- return sna->kgem.mode == KGEM_NONE && sna->kgem.has_semaphores && !NO_RING_SWITCH;
+ if (sna->kgem.ring == KGEM_BLT)
+ return true;
+
+ if (NO_RING_SWITCH)
+ return false;
+
+ if (!sna->kgem.has_semaphores)
+ return false;
+
+ return sna->kgem.mode == KGEM_NONE || kgem_is_idle(&sna->kgem);
}
static inline bool untiled_tlb_miss(struct kgem_bo *bo)
@@ -2397,7 +2406,7 @@ try_blt(struct sna *sna,
return true;
}
- if (can_switch_rings(sna) && sna_picture_is_solid(src, NULL))
+ if (can_switch_to_blt(sna) && sna_picture_is_solid(src, NULL))
return true;
return false;
@@ -3328,7 +3337,7 @@ fallback_blt:
if (too_large(extents.x2-extents.x1, extents.y2-extents.y1))
goto fallback_blt;
- if ((flags & COPY_LAST || can_switch_rings(sna)) &&
+ if ((flags & COPY_LAST || can_switch_to_blt(sna)) &&
sna_blt_compare_depth(&src->drawable, &dst->drawable) &&
sna_blt_copy_boxes(sna, alu,
src_bo, src_dx, src_dy,
@@ -3646,7 +3655,7 @@ static inline bool prefer_blt_fill(struct sna *sna,
if (PREFER_RENDER)
return PREFER_RENDER < 0;
- return (can_switch_rings(sna) ||
+ return (can_switch_to_blt(sna) ||
prefer_blt_ring(sna) ||
untiled_tlb_miss(bo));
}
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 99296fb..08ba6a0 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2455,9 +2455,18 @@ gen7_composite_set_target(struct sna *sna, struct sna_composite_op *op, PictureP
return true;
}
-inline static bool can_switch_rings(struct sna *sna)
+inline static bool can_switch_to_blt(struct sna *sna)
{
- return sna->kgem.mode == KGEM_NONE && sna->kgem.has_semaphores && !NO_RING_SWITCH;
+ if (sna->kgem.ring == KGEM_BLT)
+ return true;
+
+ if (NO_RING_SWITCH)
+ return false;
+
+ if (!sna->kgem.has_semaphores)
+ return false;
+
+ return sna->kgem.mode == KGEM_NONE || kgem_is_idle(&sna->kgem);
}
static inline bool untiled_tlb_miss(struct kgem_bo *bo)
@@ -2472,7 +2481,7 @@ static bool prefer_blt_bo(struct sna *sna, struct kgem_bo *bo)
inline static bool prefer_blt_ring(struct sna *sna)
{
- return sna->kgem.ring != KGEM_RENDER || can_switch_rings(sna);
+ return sna->kgem.ring != KGEM_RENDER || can_switch_to_blt(sna);
}
static bool
@@ -2491,7 +2500,7 @@ try_blt(struct sna *sna,
return true;
}
- if (can_switch_rings(sna)) {
+ if (can_switch_to_blt(sna)) {
if (sna_picture_is_solid(src, NULL))
return true;
@@ -3416,7 +3425,7 @@ fallback_blt:
if (too_large(extents.x2-extents.x1, extents.y2-extents.y1))
goto fallback_blt;
- if ((flags & COPY_LAST || can_switch_rings(sna)) &&
+ if ((flags & COPY_LAST || can_switch_to_blt(sna)) &&
sna_blt_compare_depth(&src->drawable, &dst->drawable) &&
sna_blt_copy_boxes(sna, alu,
src_bo, src_dx, src_dy,
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 1cf7957..825caa7 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -1158,8 +1158,6 @@ void _kgem_add_bo(struct kgem *kgem, struct kgem_bo *bo)
static uint32_t kgem_end_batch(struct kgem *kgem)
{
- kgem->context_switch(kgem, KGEM_NONE);
-
kgem->batch[kgem->nbatch++] = MI_BATCH_BUFFER_END;
if (kgem->nbatch & 1)
kgem->batch[kgem->nbatch++] = MI_NOOP;
@@ -1758,6 +1756,21 @@ bool kgem_retire(struct kgem *kgem)
return retired;
}
+bool __kgem_is_idle(struct kgem *kgem)
+{
+ struct kgem_request *rq;
+
+ assert(!list_is_empty(&kgem->requests));
+
+ rq = list_last_entry(&kgem->requests, struct kgem_request, list);
+ if (kgem_busy(kgem, rq->bo->handle))
+ return false;
+
+ kgem_retire__requests(kgem);
+ assert(list_is_empty(&kgem->requests));
+ return true;
+}
+
static void kgem_commit(struct kgem *kgem)
{
struct kgem_request *rq = kgem->next_request;
diff --git a/src/sna/kgem.h b/src/sna/kgem.h
index 583bafc..d085a2f 100644
--- a/src/sna/kgem.h
+++ b/src/sna/kgem.h
@@ -258,15 +258,13 @@ void kgem_bo_set_binding(struct kgem_bo *bo, uint32_t format, uint16_t offset);
void kgem_bo_retire(struct kgem *kgem, struct kgem_bo *bo);
bool kgem_retire(struct kgem *kgem);
+bool __kgem_is_idle(struct kgem *kgem);
static inline bool kgem_is_idle(struct kgem *kgem)
{
if (list_is_empty(&kgem->requests))
return true;
- if (!kgem_retire(kgem))
- return false;
-
- return list_is_empty(&kgem->requests);
+ return __kgem_is_idle(kgem);
}
struct kgem_bo *kgem_get_last_request(struct kgem *kgem);
diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c
index 8373890..0d4d706 100644
--- a/src/sna/sna_render.c
+++ b/src/sna/sna_render.c
@@ -246,6 +246,14 @@ static void
no_render_context_switch(struct kgem *kgem,
int new_mode)
{
+ if (!kgem->mode)
+ return;
+
+ if (kgem_is_idle(kgem)) {
+ DBG(("%s: GPU idle, flushing\n", __FUNCTION__));
+ _kgem_submit(kgem);
+ }
+
(void)kgem;
(void)new_mode;
}
commit 5059db0697c5516f1538f7062937664baf7b1c2e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Aug 24 00:21:07 2012 +0100
sna: Correct a pair of DBG messages
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 257dbc8..84e7902 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -1235,7 +1235,7 @@ gen6_bind_bo(struct sna *sna,
if (offset) {
DBG(("[%x] bo(handle=%d), format=%d, reuse %s binding\n",
offset, bo->handle, format,
- domains & 0xffff ? "render" : "sampler"));
+ is_dst ? "render" : "sampler"));
if (is_dst)
Reply to: