[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: