xserver-xorg-video-intel: Changes to 'debian-experimental'
ChangeLog | 1487 +++++++++++++++++++++++++++++++++++++++++++
debian/changelog | 7
src/intel.h | 1
src/intel_dri.c | 1
src/intel_module.c | 18
src/intel_video.c | 1
src/legacy/i810/i810.h | 1
src/legacy/i810/i810_dga.c | 1
src/legacy/i810/i810_dri.c | 1
src/legacy/i810/i810_hwmc.c | 1
src/legacy/i810/i810_video.c | 1
src/sna/Makefile.am | 2
src/sna/blt.c | 296 ++++++++
src/sna/gen2_render.c | 565 +++++++++++-----
src/sna/gen3_render.c | 354 ++++++----
src/sna/gen4_render.c | 265 +++++--
src/sna/gen5_render.c | 295 ++++++--
src/sna/gen6_render.c | 599 +++++++++++++----
src/sna/gen7_render.c | 400 +++++++++--
src/sna/kgem.c | 1189 ++++++++++++++++++++--------------
src/sna/kgem.h | 53 +
src/sna/kgem_debug_gen3.c | 8
src/sna/kgem_debug_gen4.c | 27
src/sna/kgem_debug_gen5.c | 25
src/sna/kgem_debug_gen6.c | 36 -
src/sna/kgem_debug_gen7.c | 36 -
src/sna/sna.h | 67 +
src/sna/sna_accel.c | 1210 +++++++++++++++++++++++-----------
src/sna/sna_blt.c | 527 ++++++++++++---
src/sna/sna_composite.c | 32
src/sna/sna_damage.c | 320 ++++-----
src/sna/sna_damage.h | 139 +++-
src/sna/sna_display.c | 7
src/sna/sna_dri.c | 28
src/sna/sna_glyphs.c | 52 -
src/sna/sna_gradient.c | 2
src/sna/sna_io.c | 552 +++++++++++++++
src/sna/sna_reg.h | 1
src/sna/sna_render.c | 176 ++---
src/sna/sna_render.h | 21
src/sna/sna_render_inline.h | 33
src/sna/sna_tiling.c | 101 ++
src/sna/sna_trapezoids.c | 282 +++++---
src/sna/sna_video.c | 2
test/.gitignore | 1
test/Makefile.am | 1
test/render-copy-alphaless.c | 285 ++++++++
47 files changed, 7277 insertions(+), 2232 deletions(-)
New commits:
commit 5c3a846cbd434f066d43bebc7175c6091acd1eba
Author: Cyril Brulebois <kibi@debian.org>
Date: Mon Jan 16 00:52:29 2012 +0100
Upload to experimental.
diff --git a/debian/changelog b/debian/changelog
index 7839ebf..f5241ea 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-video-intel (2:2.17.0+git20120115-1) UNRELEASED; urgency=low
+xserver-xorg-video-intel (2:2.17.0+git20120115-1) experimental; urgency=low
* New upstream snapshot:
- Merge from upstream master up to 5df7147b09.
- -- Cyril Brulebois <kibi@debian.org> Sun, 15 Jan 2012 19:25:06 +0100
+ -- Cyril Brulebois <kibi@debian.org> Mon, 16 Jan 2012 00:52:23 +0100
xserver-xorg-video-intel (2:2.17.0+git20120104-1) experimental; urgency=low
commit 0b22ea2d2e11a373d9ea397243331c228ae07315
Author: Cyril Brulebois <kibi@debian.org>
Date: Sun Jan 15 19:25:41 2012 +0100
Bump changelogs.
diff --git a/ChangeLog b/ChangeLog
index fe0fe2f..7f103ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1490 @@
+commit 5df7147b0934dadc63459c2c0f33e0663692425a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jan 15 10:28:00 2012 +0000
+
+ sna: Restore the kgem_create_map() symbol
+
+ As the stub is exported to the driver even in the absence of vmapping.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit be53740c6f0bb182e3d88f0597f127732c839316
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jan 15 10:16:13 2012 +0000
+
+ sna: Various DBG typos
+
+ Fix some mispellings inside the DBG messages
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 349e9a7b94199e759acaaccac3abf5e28f3c246f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jan 15 10:04:11 2012 +0000
+
+ sna: Prefer read-boxes inplace again
+
+ Using the gpu to do the detiling just incurs extra latency and an extra
+ copy, so go back to using a fence and GTT mapping for the common path.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 09dc8b1b358aa33836d511b75f92e8d096bc7e59
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 23:21:29 2012 +0000
+
+ sna/gen7: Check reused source for validity
+
+ Be sure the mask picture has a valid format even though it points to the
+ same pixels as the valid source. And also be wary if the source was
+ converted to a solid, but the mask is not.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d9871f01d8c4584c1f39eb09b51d5461863934e9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 23:21:29 2012 +0000
+
+ sna/gen6: Check reused source for validity
+
+ Be sure the mask picture has a valid format even though it points to the
+ same pixels as the valid source. And also be wary if the source was
+ converted to a solid, but the mask is not.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 1d6030322e2c3bae87a0173a32fb8d341dea560c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 23:21:29 2012 +0000
+
+ sna/gen5: Check reused source for validity
+
+ Be sure the mask picture has a valid format even though it points to the
+ same pixels as the valid source. And also be wary if the source was
+ converted to a solid, but the mask is not.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 0e4a24ef6c186909c99a501cb606994b5c10a813
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 23:21:29 2012 +0000
+
+ sna/gen4: Check reused source for validity
+
+ Be sure the mask picture has a valid format even though it points to the
+ same pixels as the valid source. And also be wary if the source was
+ converted to a solid, but the mask is not.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ea299f2523d5adeca84274bb7003cde8ec743a44
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 23:21:29 2012 +0000
+
+ sna/gen3: Check reused source for validity
+
+ Be sure the mask picture has a valid format even though it points to the
+ same pixels as the valid source. And also be wary if the source was
+ converted to a solid, but the mask is not.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 007da2f97894814eaded4d24e0481f950ca7bd00
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 23:21:29 2012 +0000
+
+ sna/gen2: Check reused source for validity
+
+ Be sure the mask picture has a valid format even though it points to the
+ same pixels as the valid source. And also be wary if the source was
+ converted to a solid, but the mask is not.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 1d55b42fbd77e85ab8930b78bb5a9e3bccbca49e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 23:44:23 2012 +0000
+
+ sna: Fix read back of partial mmapped buffers
+
+ Do not move a GTT mapped buffer into the CPU domain, it causes untold
+ pain for no benefit!
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 046e945173397e5fee36a231303b68a6bc9d809d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 23:25:52 2012 +0000
+
+ sna: Discard read buffers after use
+
+ Rather than pollute the cache with bo that are known not to be in the
+ GTT and are no longer useful, drop the bo after we read from it.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 421ee0bb53321e9fb2f17c850c51b80cc385bf57
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jan 15 00:46:47 2012 +0000
+
+ sna: Do not assume that the mappable aperture size is a power of two
+
+ And instead derive a power-of-two alignment value for partial buffer
+ sizes from the mappable aperture size and use that during
+ kgem_create_buffer()
+
+ Reported-by: Clemens Eisserer <linuxhippy@gmail.com>
+ References: https://bugs.freedesktop.org/show_bug.cgi?id=44682
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5d5da35c9fab4e7154921861ecbb83befb8840e5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 18:28:24 2012 +0000
+
+ sna/gen[23]: Check for room in the batch before emitting pipeline flushes
+
+ Use a single idiom and reuse the check built into the state emission,
+ for both spans/boxes paths.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit f7e4799687d5010ea0b56aeb6fbbb2e854b1b363
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 16:53:38 2012 +0000
+
+ sna/gen6: Allow greater use of BLT
+
+ Typically we will be bound to the RENDER ring as once engaged we try not
+ to switch. However, with semaphores enabled we may switch more freely
+ and there it is advantageous to use as much of the faster BLT as is
+ feasible.
+
+ The most contentious point here is the choice of whether to use BLT for
+ copies by default. microbenchmarks (compwinwin) benefit from the
+ coallescing performed in the render batch, but the more complex traces
+ seem to prefer utilizing the blitter. The debate will continue...
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c1ce34d4509a3f3e963d82ac0569a21706892f8e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 15:08:18 2012 +0000
+
+ sna/gen6: Tidy markup for when using the BLT is truly preferrable
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b64751dbdb1b88b91ad97aaf995b4261876cf860
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 13:50:50 2012 +0000
+
+ sna: Be more lenient wrt switching rings if the kernel supports semaphores
+
+ If the kernel uses GPU semaphores for its coherency mechanism between
+ rings rather than CPU waits, allow the ring to be chosen on the basis
+ of the subsequent operation following a submission of batch. (However,
+ since batches are likely to be submitted in the middle of a draw, then
+ the likelihood is for ddx to remain on one ring until forced to switch
+ for an operation or idle, which is the same situation as before and so
+ the difference is miniscule.)
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 295a22d2709b2442b5254968437f897dac22a0ec
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 14:12:25 2012 +0000
+
+ sna: Ensure that the batch mode is always declared before emitting dwords
+
+ Initially, the batch->mode was only set upon an actual mode switch,
+ batch submission would not reset the mode. However, to facilitate fast
+ ring switching with semaphores, reseting the mode upon batch submission
+ is desired which means that if we submit the batch in the middle of an
+ operation we must redeclare its mode before continuing.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 0d2a50772200d868d094f90dc1d30c1b4d7930ba
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 11:03:55 2012 +0000
+
+ sna/glyphs: Cache the glyph image on the fallback path as well
+
+ The glyph cache grew to accommodate the fallback pixman image for mask
+ generation, and is equally applicable along the full fallback path.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit f3e0ba4f65db2b85f89aa3868d153434bc41c811
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 10:17:27 2012 +0000
+
+ sna/gen5: Disable render glyphs_to_dst
+
+ Processing more than a single rectangle using the CA path on ILK is
+ extremely hit-or-miss, often resulting in the absence of the second
+ primitive (ie. the glyphs are cleared but not added.) This is
+ reminiscent of the complete breakage of the BRW shaders, none of which
+ can handle more than a single rectangle.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit fb92818ba4dc81ce62d58a87b5af6cb1e3a96708
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 01:48:11 2012 +0000
+
+ sna: Pass render operation to flush and avoid the implicit flush-on-batch-end
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit a62429a1f79b8fa4a5ddaf61b2bc80fc8dbe576c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 19:00:01 2012 +0000
+
+ sna: Upload continuation vertices into mmapped buffers
+
+ In the common case, we expect a very small number of vertices which will
+ fit into the batch along with the commands. However, in full flow we
+ overflow the on-stack buffer and likely several continuation buffers.
+ Streaming those straight into the GTT seems like a good idea, with the
+ usual caveats over aperture pressure. (Since these are linear we could
+ use snoopable bo for the architectures that support such for vertex
+ buffers and if we had kernel support.)
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 24df8ab9742f771cfeb6d30bd8a61a17a9e22ca7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 16:15:21 2012 +0000
+
+ sna: Reverse the chronological sort order of inactive vma entries
+
+ The goal is to reuse the most recently bound GTT mapping in the hope
+ that is still mappable at the time of reuse.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2f26bbe3dd55bfe26b6f93fc1f9e9813fc11f7c4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 15:59:51 2012 +0000
+
+ sna: Remove the short-circuiting of all-damage in move_to_cpu
+
+ To allow a replacement of the complete pixmap to be performed in place.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c81dba18e6a308d716a11b90da6e53ca7f5f8a02
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 14:21:13 2012 +0000
+
+ sna: Hint whether we prefer to use the GPU for a pixmap
+
+ This includes the condition where the pixmap is too large, as well as
+ being too small, to be allocatable on the GPU. It is only a hint set
+ during creation, and may be overridden if required.
+
+ This fixes the regression in ocitysmap which decided to render glyphs
+ into a GPU mask for a destination that does not fit into the aperture.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2bd942d55314426d7f429d7ccc0b62a622a79009
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 14:08:34 2012 +0000
+
+ sna/trapezoids: Quieten the debugging of the gory details of the rasteriser
+
+ Hide the noise under another level of debugging so that hopefully the
+ reason why it chose a particular path become clear.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5dbcfc2ee3af64846298dbcb20db27c93b3d57f2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 13:52:10 2012 +0000
+
+ sna: Be more lenient in not forcing to the GPU if the sources have CPU damage
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 20ff4a1d73cc10e1f53050b19b8799ccbb5c7d04
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 13:30:13 2012 +0000
+
+ sna: Use top_srcdir to detect .git rather than top_builddir
+
+ For srcdir != builddir builds, we need to be searching the source tree
+ for the git id.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit a4d5d725996b94e314ae7697c7a597ed2f60e8cd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 10:41:44 2012 +0000
+
+ sna: Experiment with GTT mmapped upload buffers
+
+ In a few places, we can stream the source into the GTT and so upload in
+ place through the WC mapping. Notably, in many other places we want to
+ rasterise on a partial in cacheable memory. So we need to notify the
+ backend of the intended usage for the buffer and when we think it is
+ appropriate we can allocate a GTT mapped pointer for zero-copy upload.
+
+ The biggest improvement tends to be in the PutComposite style of
+ microbenchmark, yet throughput for trapezoid masks seems to suffer (e.g.
+ swfdec-giant-steps on i3 and gen2 in general). As expected, the culprit
+ of the regression is the aperture pressure causing eviction stalls, which
+ the pwrite paths sidesteps by doing a cached copy when there is no GTT
+ space. This could be alleviated with an is-mappable ioctl predicting when
+ use of the buffer would block and so falling back in those cases to
+ pwrite. However, I suspect that this will improve dispatch latency in
+ the common idle case for which I have no good metric.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 252f3818250ecf4776f20afa8111d7f1f6f29c18
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 11:30:32 2012 +0000
+
+ sna: Relinquish the GTT mmap on inactive buffers if moved out of the aperture
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 9c73dd91e90810116c215060bac434c5e8174f5f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 14 17:00:01 2012 +0000
+
+ Include <xorgVersion.h> to repair build
+
+ intel_module.c:41:48: error: missing binary operator before token "("
+
+commit b213f6e876f29cbcaccffeeb733726be4c91529e
+Author: Stefan Dirsch <sndirsch@suse.de>
+Date: Sat Jan 14 05:43:33 2012 +0100
+
+ Make driver backwards compatible for server 1.6.x.
+
+ Signed-off-by: Stefan Dirsch <sndirsch@suse.de>
+
+commit 94217a4dd908f1368dfdef90797ce74a081663fb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 10:03:28 2012 +0000
+
+ sna: Decouple dirty pixmaps from list if we fail to upload them
+
+ Rather than iterate endlessly trying to upload the same pixmap when
+ failing to flush dirty CPU damage, try again on the next flush.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 65ef369c733ab45945a7d5fe4b76fe5c7167b51b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 13 09:58:40 2012 +0000
+
+ sna: Decouple from CPU dirty list after removing all CPU damage
+
+ In the paths where we discard CPU damage, we also need to remove it
+ from the dirty list so that we do not iterate over it during flush.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 0845fcef9e664eb100b55ad1cc20743844deee58
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 23:45:03 2012 +0000
+
+ sna: Correct iteration counter for stippled blits
+
+ ==7215== Invalid read of size 2
+ ==7215== at 0x51A72F3: sna_poly_fill_rect_stippled_8x8_blt
+ (sna_accel.c:7340)
+ ==7215== by 0x51A9CDF: sna_poly_fill_rect_stippled_blt
+ (sna_accel.c:8163)
+ ==7215== by 0x51A3878: sna_poly_segment (sna_accel.c:6090)
+ ==7215== by 0x216C02: damagePolySegment (damage.c:1096)
+ ==7215== by 0x13F6E8: ProcPolySegment (dispatch.c:1771)
+ ==7215== by 0x1436B4: Dispatch (dispatch.c:437)
+ ==7215== by 0x131279: main (main.c:287)
+ ==7215== Address 0x6f851e8 is 0 bytes after a block of size 32 alloc'd
+ ==7215== at 0x4825DEC: malloc (vg_replace_malloc.c:261)
+ ==7215== by 0x51A3558: sna_poly_segment (sna_accel.c:6049)
+ ==7215== by 0x216C02: damagePolySegment (damage.c:1096)
+ ==7215== by 0x13F6E8: ProcPolySegment (dispatch.c:1771)
+ ==7215== by 0x1436B4: Dispatch (dispatch.c:437)
+ ==7215== by 0x131279: main (main.c:287)
+
+ An example being the stippled outline in gimp, the yellow marching ants,
+ would randomly walk over the entire image.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5c2c6474efd4dbc5a0fc9c68ef4e5b5e5cfee415
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 23:11:05 2012 +0000
+
+ sna/dri: Hook up a compile option to switch colour buffers to Y-tiling
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 59b79e5952fdc40f8c50f74a72a19363cb426140
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 21:05:39 2012 +0000
+
+ sna: Reorder composite-done to destroy mask bo before source bo
+
+ Just in the unlikely event that we hit the delete-partial-upload path
+ which prefers destroying the last bo first.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 983b755313df8a0d256c59c32ec4106e35f237aa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 21:05:16 2012 +0000
+
+ sna/damage: Fix union of extents with dirty damage but no region
+
+ By failing to account for certain paths which would create a damage elt
+ without fully initialisating the damage region (only the damage extents),
+ we would later overwrite the damage extents with only the extents for
+ this operation (rather than the union of this operation with the current
+ damage). This fixes a regression from 098592ca5d,
+ (sna: Remove the independent tracking of elts from boxes).
+
+ Include the associated damage migration debugging code of the callers.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8d2f1eefe142b65db7d8821ba0f80fdb0902b2d5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 21:08:41 2012 +0000
+
+ sna: Pass a hint that we may like to perform the fallback in place
+
+ If we do not read back from the destination, we may prefer to utilize a
+ GTT mapping and perform the fallback inplace. For the rare event that we
+ wish to fallback and do not already have a shadow...
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 48ab72754d0069a3247c5fee8c353a6b593eaed9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 21:07:15 2012 +0000
+
+ sna: Use the GPU bo if it is all damaged
+
+ By marking the scratch upload pixmap as damaged in both domains, we
+ confused the texture upload path and made it upload the pixmap a second
+ time. If either bo is all-damaged, use it!
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 20a4d7181983c7fed289844be49ccaf3f56965c6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 21:05:51 2012 +0000
+
+ sna: Dump batch contents for debugging before modification
+
+ We need to dump the batch contents before the maps are made by the
+ construction of the batch itself.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 7932a2a259069bb7d19af8566f7b7704f6c2eade
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 14:06:22 2012 +0000
+
+ sna: Update for removal of backwards compatible miWideDash
+
+ miWideDash() no longer calls miZeroLineDash() when called with
+ gc->lineWidth==0, we need to do so ourselves.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b7cefddd467bfd0c100219969712a0133475004c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 13:17:43 2012 +0000
+
+ sna: Re-enable min-alignment workaround on pre-SNB hw
+
+ Confirmed as still being required for both gen3 and gen4. One day I will
+ get single-stream mode working, just not today apparently.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 978e1aeceab3c1a524f7d7a070fe04f37530c8d9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 11:38:56 2012 +0000
+
+ sna: Only shrink a partial buffer if it is no longer used.
+
+ The condition on being able to shrink a buffer is more severe than just
+ whether we are reading from the buffer, but also we cannot swap the
+ handles if the existing handle remains exposed via a proxy.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d3169154d18600e0d41db5f833fad52970e17b55
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 11:36:05 2012 +0000
+
+ sna: Improve a DBG message
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2a22990968aebd53a7bfeaf19e58ee609b980e5f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 11:22:06 2012 +0000
+
+ sna: Prevent 60Hz wakeups if the client stops in mid-render
+
+ Only continue to wake up if the scanout remains active.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 1c0e9916caef6594511009c8cb79071ac0d82090
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 11:12:56 2012 +0000
+
+ sna: Align the partial buffer contents to cachelines
+
+ To enable Daniel's faster pwrite paths. Only one step removed from using
+ whole page alignment...
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 1e4080318f58fd51f37792eefd367e2e4c813ea3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 10:47:19 2012 +0000
+
+ sna: Replace the open-coded bubble sort of the partial list
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 7290ced5791f9860b00901fa9a4545ab5a067fae
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 02:59:43 2012 +0000
+
+ sna/video: Fix for changes in damage api
+
+ We can avoid both calls to modify the damage with one simple check.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 87e6dcb3b06c274ecba5de56d4e86fec73e46dbb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 02:09:22 2012 +0000
+
+ sna: Don't call RegionIntersect for the trivial PutImage
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 1bd6665093574372248a0743e5630e68aac653ed
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 01:37:08 2012 +0000
+
+ sna: Disable the min alignment workaround
+
+ Allow all generations to use the minimum alignment of 4 bytes again as
+ it appears to be working for me... Or at least what remains broken seems
+ to be irrespective of this alignment.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 112b8959261712aaa82f92af0aca4b97fa7c7f03
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 01:38:18 2012 +0000
+
+ sna: Prevent shrinking a partial buffer stolen for a read
+
+ If we reuse a partial buffer for a read, we cannot shrink it during
+ upload to the device as we do not track how many bytes we actually need
+ for the read operation.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b09ae4c20313fea7af11f77cd673039635d4dcc7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 12 00:58:08 2012 +0000
+
+ sna: Don't drop expired partial bo immediately, wait until dispatch
+
+ As the partial bo may be coupled into the execlist, we may as well hang
+ onto the memory to service the next partial buffer request until it
+ expires in the next dispatch.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit a3c42565a8f557b2e7f7ff7bfa45b13b606f2968
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 16:39:45 2012 +0000
+
+ sna: Store damage-all in the low bit of the damage pointer
+
+ Avoid the function call overhead by inspecting the low bit to see if it
+ is all-damaged already.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c64a9d0683e047a7eb041df78db746f6dd387b5e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 19:51:42 2012 +0000
+
+ sna: Choose a stride for the indirect replacement
+
+ Don't blithely assume that the incoming bytes are appropriately aligned
+ for the destination buffer. Indeed we may be replacing the destination
+ bo with the shadow bytes out of another,larger, pixmap, in which case we
+ do need to create a stride that is appropriate for the upload an
+ perform the 2D copy.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b82851e74d5010ee08938ee42fa44c29fed633b1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 15:42:00 2012 +0000
+
+ sna: Mark upload pixmaps as being wholly GPU damaged
+
+ So that subsequent code resists performing CPU operations with them
+ (after they have been populated.)
+
+ Marking both sides as wholly damaged breaks the rules, but should work
+ out so long as we check whether we can perform the operation within the
+ target damage first.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2a5ab05f1690484c230e8f876a3f7aefb371af71
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 15:24:28 2012 +0000
+
+ sna: Use a minimum alignment of 64
+
+ We should be able to reduce this by disabling dual-stream mode of the
+ GPU (which we want to achieve any way for 2D performance). Artefacts
+ in small uploads demonstrate that we fail to do.
+
+ References: https://bugs.freedesktop.org/show_bug.cgi?id=44150
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit e94807759eb6cfb10bd2d372fa71cc64a730bc7c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 12:13:18 2012 +0000
+
+ sna/gen6: Special case spans with no transform
+
+ As the no transform is a special case of affine, we were attempting to
+ deference the NULL transform in order to determine if it was a simple
+ no-rotation matrix. As the operation is extremely simple, add a special
+ case vertex program to speed it up.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 0a5313900ec9a7c499eb5051f3a5f078a9b0bbde
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 12:09:13 2012 +0000
+
+ sna: Explicitly retire the bo following a serialisation point
+
+ This is to keep the sanity checks in order, but conceptually should be
+ useful as well.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2add5991a7d186d8271cb79ae4f62dad7b4ca243
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 11:33:19 2012 +0000
+
+ sna: Mark the bo as no longer in the GPU domain after clearing needs_flush
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit fec70985719eec75b7fa799bddc3115fb329ab86
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 10:57:57 2012 +0000
+
+ sna: Add assertions to track requests
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit a93c93be76f6d5d2b481971349aabd15f282c3e8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 11 00:05:20 2012 +0000
+
+ sna/gen6: Add a vertex program for a simple (affine, no rotation) spans
+
+ I long for the day when this code is obsolete... Until then, this gives
+ a nice boost in the fishtank.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 3cf5da1090ac777044912ec24619d349d1f6b521
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 23:32:29 2012 +0000
+
+ sna: Amalgamate small replacements into upload buffers
+
+ Similar for the standard io paths, try to reuse an upload buffer for a
+ small replacement pixmap.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit f0e3f6b5bebf7471d3e3e84bd9b2d8469eb64093
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 22:12:41 2012 +0000
+
+ sna: Check needs-flush status immediately upon destroy
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b4ae6dbaedd774f250b610b1e7323897c4abe23a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 21:25:28 2012 +0000
+
+ sna: Align the small upload buffers to 2 texels, and the pitch to dwords
+
+ References: https://bugs.freedesktop.org/show_bug.cgi?id=44150
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 46f6c6917effbc43305367581cc1bbaa962c0251
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 20:34:09 2012 +0000
+
+ sna: A partial read buffer is allowed to be in the GPU domain
+
+ As we can create the read buffer from an active cached bo, it may
+ already be in the GPU domain by the time we first finish it, so fix the
+ broken assertion.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 3c26055639f789b211f7db982e65ec0b86b23d4a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 20:06:51 2012 +0000
+
+ sna: Shrink the partial upload buffers before compacting the batch
+
+ So that the relocation entries point into the contiguous surface/batch
+ and can be trivially fixed up.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 7b077a4d3d549cde79d5b876289203788294493c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 18:40:53 2012 +0000
+
+ sna: Make the check for a single fill-rectangle clearer before modifying damage
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ca2a07adc45273dc1abeb4b3ba7f88461aaf9c00
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 17:13:38 2012 +0000
+
+ sna: Release the stale GTT mapping after recreating the bo with new tiling
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8dd913fd3a093b54fc024fea2b31a3db2518db8d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 10:38:43 2012 +0000
+
+ sna: Add reminder about possible future tiling optimisations
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 21948578d0d87f38447ef1ae44fada406949bca8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 03:19:16 2012 +0000
+
+ sna: Disable the inline xRGB to ARGB upload conversion
+
+ As we have to upload the dirty data anyway, setting the
+ alpha-channel to 0xff should be free. Not so for firefox-asteroids on
+ Atom at least.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 87f73b043426c47efa7670fb65bdcc7dfcf71fc3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 01:42:37 2012 +0000
+
+ sna/gen[23]: Tile render fill to oversized bo
+
+ If we are forced to perform a render operation to a bo too large to fit
+ in the pipeline, copy to an intermediate and split the operation into
+ tiles rather than fallback.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2ccb31c5a4120efb940168c5e52154add01b0586
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 01:41:09 2012 +0000
+
+ sna: Shrink upoads buffers
+
+ If we do not fill the whole upload buffer, we may be able to reuse a
+ smaller buffer that is currently bound in the GTT. Ideally, this will
+ keep our RSS trim.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 572cc76be5c78102166f2b3640640e21acdfa129
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 09:13:34 2012 +0000
+
+ sna: Destroy the counter damage after a reduction-to-all
+
+ If, for instance, we reduce the GPU damage to all we know that there can
+ be no CPU damage even though it may still have a region with a list of
+ subtractions. Take advantage of this knowledge and cheaply discard that
+ damage without having to evaluate it.
+
+ This should prevent a paranoid assertion that there is no cpu damage
+ when discarding the CPU bo for an active pixmap.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 4a255e13164440b797e5ac11dcbf72f0827a3094
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 16:34:23 2012 +0000
+
+ sna: Replace the free-inactive-gpu-bo with the generic code
+
+ The function was semantically equivalent to moving the pixmap to the CPU
+ for writing, so replace it with a call to the generic function.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c1d403266a611a68081690d19f6debb8e343095f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 00:41:05 2012 +0000
+
+ sna: Allow for xRGB uploads to replace their target bo
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 406776cd955c3c384d4a537300e21eebe4413666
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 10 00:25:14 2012 +0000
+
+ sna: Rearrange buffer allocation to prefer llc bo over vmaps
+
+ If we can create snoopable bo, we prefer to use those as creating a vmap
+ forces a new bo creation increasing GTT pressure.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b76865fa3deff2f44a1158914a124b9c81d67eca
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 9 22:11:21 2012 +0000
+
+ sna/gen2: Try to avoid creating a bo for solid colours
+
+ As we try to use the diffuse/specular and only resort to using a texture
+ operation for convenience in the rare case of a solid mask.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 981aae104a96b41db88cc381cc7592818f3e1298
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 9 22:02:40 2012 +0000
+
+ sna/gen2: Eliminate some switching between logic op and blend
+
+ If the new mode can be done either using a logic op or with the blend
+ unit, prefer the currently enabled unit.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d65b7f9cf46a48e3bfb37c0b75df55aa1e7bff41
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 9 21:58:03 2012 +0000
+
+ sna/blt: Rearrange to reduce a out-of-bounds copy to a clear
+
+ If we asked to use the BLT, try to avoid trigging a context switch for
+ a trivial case where we sample outside of a NONE source and so can
+ reduce the operation to a clear.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 09e54c553680cbc2f3b4319cdab0f3d1af1574a8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 9 14:04:41 2012 +0000
+
+ sna/gen2: Add poor-man's linear gradient support
Reply to: