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 <jul...@danjou.info> Date: Sun Aug 26 14:32:03 2012 +0200 Upload 2.20.5 to experimental Signed-off-by: Julien Danjou <jul...@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 <jul...@danjou.info> Date: Sun Aug 26 14:26:23 2012 +0200 New upstream release 2.20.5 Signed-off-by: Julien Danjou <jul...@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 <ch...@chris-wilson.co.uk> +Date: Sun Aug 26 12:48:18 2012 +0100 + + 2.20.5 release + + Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +commit 454cc8453af1852758c3396dbe303c13c5c1be27 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 0e1e83ed4952f620e9422e58f955a5aea406e300 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 5059db0697c5516f1538f7062937664baf7b1c2e +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit c5b46e411a2c738c5ae55bffb9b3d460249f5c24 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 82e91327d57e03d2117638165f298a50b946fcaa +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit b286ffa6beccb8fe341c464a4fb9f2af98541263 +Author: Eric S. Raymond <e...@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 <e...@thyrsus.com> + +commit fc6b7f564df88ca773ae245b1b4e278b47dffd59 +Author: Chris Wilson <ch...@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 <ch...@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....@gmx.net + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53967 + Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +commit fd38f45ec5421802b426867a050c978a2feec937 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit ac6cb667546a82b865c959a1be32f52b2da7bf7d +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 785c1046b94fd9ca6f22b2a6d73639408a411cea +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 8032f51859ce1928922edf6892f493a84d9c39f0 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit cc967507bbf357e1d5ec3cd0f3c0c5ecfa8b867a +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 5aa59ce7c012eb309c4f5a362ccf531c065bd7ff +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 273765033223024ff6a662195e0e4b96f8960463 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 31e398c9dbd8539e6fd2cc7398e97ee1df2f7f23 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 8be15c37df9d9b34e0f21700673212bd19c772b2 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 262d57a5aaac46508d8e29860c7a567bcd5bc4d8 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 304581cc02adeb865a24edde934b5b9ceba68d96 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 946d54238d90f5e31772f0df336ac9a5e7f2d62b +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 4ee2e227ddf61c87f08f55d4922d2562b563ca87 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit eee181e9d71273d94fe735805ed84e8f7b7b2180 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit c86df17c1455a53cb52f33a25c8c362e5331621e +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 6aabe90587f4916a01a1cd2bbc577a1e7fa20eca +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 1a4b6fea7b1516de35e6800efa5b85f8401a5b2a +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 892b1a1e431e8f27133825f8a27dde4955da0054 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 3ca1bfb51ba522454433d58131e7dab7fcbe7e34 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 16f3d3a9ae145a3af51d2c0c42c6c585d676a863 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit fb349ced91e15ecaa025321bd37d1fe3cfdd2f44 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit ae6b3c7508d570af94f172d6a91d62d2987d654b +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 3c611087e8ae09fc3fe4271f16d912ac8ae89f6b +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit dd6c67b32f726b6ad7f12f3b83f6d8c868ff4dc1 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 01ebdb4d7a8bb751167153554f9122d996e4ea91 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 410316d20299b9ed3447d1d897f904af786ed097 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 91f1bf971f9cdc6498f513a5ddec1ad7a4e24b3d +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 027569bf83fc6d67dca7cfd65fdfa37ef6b47204 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit f1b259f627814c765ea93d8c839ee7533249974f +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit b5b76ad849bfda1e75192d1cb3c6c0fcc623bb91 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 74f998136bac441d782faf779616af6f7bdcadad +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit a05643eb670e91ab102465df799301def88faaf9 +Author: Chris Wilson <ch...@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 <ch...@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 <ch...@chris-wilson.co.uk> + +commit c80db9bc2ef0a37a4abb78c9ef667c8b36ab6fba +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit c39fe0253847f5a86e16b47ba420c8ba819c9110 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit fe05268d70088c8cad5f4b5ef756e1ffe2069fca +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit bbd7a825810cc9772e6d613df449cb5ecb0be3f6 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 7bf7a5ad1057f1aeb5b261da6dc501323c022287 +Author: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Sun Aug 19 19:17:35 2012 +0100 + + sna/gen3: Tidy vbo discard + + Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +commit d1b808fd72b477bde96f7c6737a993bd1a20baf2 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit c682c1a37692021cbd9bfc1e3f1ccf2b648c73f9 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit dc83ef49f9e8ff94ab77aa9d54fe29e32b9d7a3d +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 47d948f5df0cd0e975cfe5183b6ce79cd3fd27ee +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 02963f489b177d0085006753e91e240545933387 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 13d1a105159222518800d3c5ad5660725864ec6b +Author: Chris Wilson <ch...@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 <ch...@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 <ejsheldr...@gmail.com> + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53699 + Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +commit a13781d19defc97af6a279c11a85e33ef825020e +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit be940856c74fbedd27997dd61e2a85959b321193 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 110c7ef7f6c31929affa038918e6ce087bccddc6 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 75a2fab766d8aed180ef795919e503db22c0e0fd +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 110d5519f3523b1e2c50db637cdc4c5bc44c960a +Author: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Sat Aug 18 16:39:52 2012 +0100 + + sna: Reduce subtracted damage earlier + + Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +commit 8812e8b6e89e6432a6a768a0566ce4c153e9b256 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit e361627b90ea6bf2f9a8c46cf8debe562fdf4f09 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + +commit 10f334872e9dd190e18c768219e60815acabe4d3 +Author: Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> + commit 5ff6198c9346d84717bac28980329b048f4406e8 Author: Chris Wilson <ch...@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 <jcris...@debian.org> Sat, 18 Aug 2012 18:26:47 +0200 + -- Julien Danjou <a...@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 <k...@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 <k...@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 <ch...@chris-wilson.co.uk> Date: Sun Aug 26 12:48:18 2012 +0100 2.20.5 release Signed-off-by: Chris Wilson <ch...@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 <ch...@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 <ch...@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 <ch...@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 <ch...@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 <ch...@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 <ch...@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) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1t5cth-0001oo...@vasks.debian.org