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

xserver-xorg-video-intel: Changes to 'debian-experimental'



 ChangeLog                    | 2146 ++++++++++++++++++++++++
 configure.ac                 |    1 
 debian/changelog             |    7 
 src/intel_dri.c              |   90 -
 src/intel_glamor.c           |    2 
 src/intel_shadow.c           |   24 
 src/intel_uxa.c              |    6 
 src/sna/blt.c                |    2 
 src/sna/gen2_render.c        |  121 -
 src/sna/gen3_render.c        |  230 +-
 src/sna/gen4_render.c        |  175 +-
 src/sna/gen5_render.c        |  201 +-
 src/sna/gen6_render.c        |  418 +++-
 src/sna/gen6_render.h        |   19 
 src/sna/gen7_render.c        |  456 +++--
 src/sna/gen7_render.h        |    2 
 src/sna/kgem.c               | 1133 ++++++++-----
 src/sna/kgem.h               |  122 +
 src/sna/kgem_debug_gen5.c    |    2 
 src/sna/sna.h                |   43 
 src/sna/sna_accel.c          | 3701 +++++++++++++++++++++++++++++++------------
 src/sna/sna_blt.c            |  112 -
 src/sna/sna_composite.c      |   30 
 src/sna/sna_damage.c         |  218 +-
 src/sna/sna_damage.h         |   27 
 src/sna/sna_dri.c            |   41 
 src/sna/sna_driver.c         |    3 
 src/sna/sna_glyphs.c         |   28 
 src/sna/sna_gradient.c       |    8 
 src/sna/sna_io.c             |  557 +++++-
 src/sna/sna_render.c         |  655 +++++--
 src/sna/sna_render.h         |    9 
 src/sna/sna_render_inline.h  |   13 
 src/sna/sna_tiling.c         |  120 +
 src/sna/sna_trapezoids.c     |    9 
 src/sna/sna_video.c          |    2 
 src/sna/sna_video_hwmc.c     |    5 
 src/sna/sna_video_textured.c |   43 
 38 files changed, 8231 insertions(+), 2550 deletions(-)

New commits:
commit 1ae29aecc9454780be0698509578cf18d399bd18
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Feb 4 09:20:18 2012 +0100

    Upload to experimental.

diff --git a/debian/changelog b/debian/changelog
index 2bd6639..5121b29 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-video-intel (2:2.17.0+git20120204-1) UNRELEASED; urgency=low
+xserver-xorg-video-intel (2:2.17.0+git20120204-1) experimental; urgency=low
 
   * New upstream snapshot:
     - Merge from upstream master up to 24ece4a87e.
 
- -- Cyril Brulebois <kibi@debian.org>  Sat, 04 Feb 2012 09:02:33 +0100
+ -- Cyril Brulebois <kibi@debian.org>  Sat, 04 Feb 2012 09:20:13 +0100
 
 xserver-xorg-video-intel (2:2.17.0+git20120115-1) experimental; urgency=low
 

commit 4115fc8f6ac256f98027794013327fe8f20e3b57
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Feb 4 09:03:17 2012 +0100

    Bump changelogs.

diff --git a/ChangeLog b/ChangeLog
index 7f103ff..ed2b4a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,2149 @@
+commit 4774c6b8331831e0c9f3b24f5f6e1b6ea399f628
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Feb 2 15:23:03 2012 +0000
+
+    sna: Add a couple of sanity checks that the CPU drawable is on the CPU
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 418cd98db7c4a2886c9e310f3691eb6c77421dd7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Feb 1 19:10:41 2012 +0000
+
+    sna/gen6: Ring switching outweighs the benefits for cairo-traces
+    
+    At the moment, the jury is still out on whether freely switching rings
+    for fills is a Good Idea. So make it easier to turn it on and off for
+    testing.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2d0e7c7ecd7371ac7b5fe3f382fc5d04792f7019
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Feb 1 14:52:56 2012 +0000
+
+    sna: Search again for a just-large-enough mapping for inplace uploads
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 55c7088f54655609fbb00106679a566b46ee8dba
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Feb 1 01:33:52 2012 +0000
+
+    sna: Add debugging code to verify damage extents of fallback paths
+    
+    After using the CPU, upload the damage and read back the pixels from the
+    GPU bo and verify that the two are equivalent.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c8fc2cde53ef7aa011ec7c47e7fc5486de0651f5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Feb 1 01:27:43 2012 +0000
+
+    sna: Fill extents for ImageGlyphs
+    
+    The spec says to fill the characters boxes, which is what the hardware
+    does. The implementation fills the extents instead. rxvt expects the
+    former, emacs the latter. Overdraw is a nuisance, but less than leaving
+    glyphs behind...
+    
+    Reported-by: walch.martin@web.de
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45438
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 13508ab5ea136caca90c846ff1026c0c1acd2ad5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 31 22:38:46 2012 +0000
+
+    sna: PolyGlyph supports all of fill/tile/stipple rules
+    
+    The hw routines only directly supports solid fill so fallback for the
+    interesting cases. An alternative would be to investigate using the
+    miPolyGlyph routine to convert the weird fills into spans in order to
+    fallback. Sounds cheaper to fallback, so wait for an actual use case.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit df4e1059a4e09998334dde6aa1c8ccfe76e442c0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 31 19:19:13 2012 +0000
+
+    sna/gen6: Prefer to do fills using the BLT
+    
+    Using the BLT is substantially faster than the current shaders for solid
+    fill. The downside is that it invokes more ring switching.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8b012de0a1af4ec97c3197af3f1efdcc67bc2118
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 31 20:29:58 2012 +0000
+
+    sna/gen5: Always prefer to emit solid fills using the BLT
+    
+    As the BLT is far, far faster than using a shader.
+    
+    Improves cairo-demos/chart from 6 to 13 fps.
+    
+    Reported-by: Michael Larabel <Michael@phoronix.com>
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 0a748fc49d60dc2bc9494f95c4934592b111831a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 31 10:51:02 2012 +0000
+
+    sna: Split the tiling limits between upload and copying
+    
+    The kernel has a bug that prevents pwriting buffers large than the
+    aperture. Whilst waiting for the fix, limit the upload where possible to
+    fit within that constraint.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 9c1f8a768ca1f762c722f63bab2747e4ff1fd773
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 31 10:29:02 2012 +0000
+
+    sna: Avoid converting requested Y to X tiling for large pitches on gen4+
+    
+    The only strong requirement is that to utilize large pitches, the object
+    must be tiled. Having it as X tiling is a pure convenience to facilitate
+    use of the blitter. A DRI client may want to keep using Y tiling
+    instead.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit e872c1011fc7b67683703fd891234f07dd7acd04
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 31 10:21:05 2012 +0000
+
+    sna/dri: We need to reduce tiling on older gen if we cannot fence
+    
+    Only apply the architectural limits to enable bo creation for DRI buffers.
+    
+    Reported-by: Alban Browaeys <prahal@yahoo.com>
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45414
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit a4caf67d8da37d04f8915d96b10411ba7267937e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 31 00:35:42 2012 +0000
+
+    sna: Trim tile sizes to fit into bo cache
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 3f7c1646c78d8854c88b214d3699e51839ba9711
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 31 00:09:42 2012 +0000
+
+    sna: Check that the intermediate IO buffer can also be used for blitting
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit e504fab6c5354ae9d18ccefb10bd586fa49b924c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jan 30 23:49:18 2012 +0000
+
+    sna: Discard the cleared GPU buffer upon PutImage to the CPU buffer
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ed1c1a7468d78e99cb4f9a4a8b8a6b00c3257a75
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jan 30 13:43:59 2012 +0000
+
+    sna: Track large objects and limit prefer-gpu hint to small objects
+    
+    As the GATT is irrespective of actual RAM size, we need to be careful
+    not to be too generous when allocating GPU bo and their shadows. So
+    first of all we limit default render targets to those small enough to
+    fit comfortably in RAM alongside others, and secondly we try to only
+    keep a single copy of large objects in memory.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d53d93ffa6e133f46c39595294ecf8e2182b5a68
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jan 30 15:11:34 2012 +0000
+
+    sna: Update the partial buffer allocation size when reusing an old mapping
+    
+    Whilst the old mapping is guaranteed to be larger than the requested
+    allocation size, keep track of the actual size allows for better packing
+    of future buffers. And the code also performs a sanity check that the
+    buffer is the size we claim it to be...
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 6f99555b6b64a0e1baad1853569f7bf521c327c3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jan 30 11:48:59 2012 +0000
+
+    sna: Allow the creation of render targets larger than the maximum bo cache
+    
+    Given that we now handle uploads to and from bo that are larger than the
+    aperture and that usage of such large bo is rare and so unlikely to
+    benefit from caching, allow them to be created as render targets and
+    destroy as soon as they become inactive.
+    
+    In principle, this finally enables GPU acceleration of ocitysmap on gen4+,
+    but due to the large cost of creating and destroying large bo it is
+    disabled on systems that require clflushing. It is, however, a
+    pre-requisite for exploiting the enhanced capabilities of IvyBridge.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c65ec096e79aa6bda7b2b3ef235e3fd9698b4da7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jan 30 11:41:07 2012 +0000
+
+    sna: Decrease tiling step size in case we need to enlarge the box later
+    
+    We can juggle rendering into large bo on gen4 by redirecting the
+    rendering through a proxy that is tile aligned, and so the render target
+    may be slightly larger than the tiling step size. As that is then larger
+    than the maximum 3D pipeline, the trick fails and we need to resort to a
+    temporary render target with copies in and out. In this case, check that
+    the tile is aligned to the most pessimistic tiling width and reduce the
+    step size to accomodate the enlargement.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 95f3734dd69b82e007095a599cc21f4c63d6ec00
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jan 30 11:40:02 2012 +0000
+
+    sna: Allow creation of proxies to proxies
+    
+    Just update the offset of the new bo by the offset of the existing
+    proxy.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 488937edb67a60389380b405f8f8a548f51e64c7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jan 30 11:38:36 2012 +0000
+
+    sna: Base prefer-gpu hint on default tiling choice
+    
+    As on gen4+, tiling increases the maximum usable pitch we can
+    accommodate wider pixmaps on the GPU.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ca252e5b51d7b2f5a7b2c2e0d8fdb024b08096db
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jan 29 19:36:55 2012 +0000
+
+    sna: Detect batch overflow and fallback rather an risk an ENOSPC
+    
+    Having noticed that eog was failing to perform a 8k x 8k copy with
+    compiz running on a 965gm, it was time the checks for batch overflow
+    were implemented.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 3aee521bf236994628c4d103a2b8f391a4be2aa7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jan 29 19:21:54 2012 +0000
+
+    sna: Add a tiled fallback for large BLT copies
+    
+    If we are attempting to copy between two large bo, larger than we can
+    fit into the aperture, break the copy into smaller steps and use an
+    intermediatory.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit df148c962108a7f3efead0b80ab4fe77f3f79c8b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jan 29 18:07:14 2012 +0000
+
+    sna: Limit the tile size for uploading into large pixmaps
+    
+    As we may have a constrained aperture, we need to be careful not to
+    exceed our resources limits when uploading the pixel data. (For example,
+    fitting two of the maximum bo into a single batch may fail due to
+    fragmentation of the GATT.) So be cautious and use more tiles to reduce
+    the size of each individual batch.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit e1e67e8f394480eb4fef1238ccfd49cc36e4b6f2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jan 29 15:43:42 2012 +0000
+
+    sna: Fix the "trivial" fix to improve error handling
+    
+    The logic was just backwards and we tried to upload a shadowless GPU
+    pixmap.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d3fb1e1e89ccf5cefe6add66de4f960ef07cac60
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jan 29 14:20:33 2012 +0000
+
+    sna: Handle GPU creation failure when uploading subtexture
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 518a99ea34b26aa094f29a4cc1ea5419f63a0e56
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jan 29 14:09:46 2012 +0000
+
+    sna: Always create a GPU bo for copying from an existent source GPU bo
+    
+    Make sure we prevent the readback of an active source GPU bo by always
+    prefering to do the copy on the GPU if the data is already resisent.
+    This fixes the second regression from e583af9cc, (sna: Experiment with
+    creating large objects as CPU bo).
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 624d9843abda9ca6bd1b004d70a6fdc082ba9653
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jan 29 13:55:20 2012 +0000
+
+    sna: Ignore map status and pick the first inactive bo for reuse
+    
+    This fixes the performance regression introduced with e583af9cca,
+    (sna: Experiment with creating large objects as CPU bo), as we ended up
+    creating fresh bo and incurring setup and thrashing overhead, when we
+    already had plenty cached.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5c6255ba2f12f04938fd586ca02562ee3cae05af
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jan 29 11:02:38 2012 +0000
+
+    sna: Determine whether to use a partial proxy based on the pitch
+    
+    On gen4+ devices the maximum render pitch is much larger than is simply
+    required for the maximum coordinates. This makes it possible to use
+    proxy textures as a subimage into the oversized texture without having
+    to blit into a temporary copy for virtually every single bo we use.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 65466f86263b3788b438fe021a12ade371190b01
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sat Jan 28 01:54:47 2012 +0000
+
+    sna: Allow ridiculously large bo, up to half the total GATT
+    
+    Such large bo place extreme stress on the system, for example trying to
+    mmap a 1GiB into the CPU domain currently fails due to a kernel bug. :(
+    So if you can avoid the swap thrashing during the upload, the ddx can now
+    handle 16k x 16k images on gen4+ on the GPU. That is fine until you want
+    two such images...
+    
+    The real complication comes in uploading (and downloading) from such
+    large textures as they are too large for a single operation with
+    automatic detiling via either the BLT or the RENDER ring. We could do
+    manual tiling/switching or, as this patch does, tile the transfer in
+    chunks small enough to fit into either pipeline.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 03211f4b0b7e32b6d7dc28e60be72db204b8c8d4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 23:18:05 2012 +0000
+
+    sna: Guard against the upload buffer growing past the maximum bo size
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2afd49a28429cdeb36583cfc31cc9b1742c1fb83
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 22:18:30 2012 +0000
+
+    sna: Limit inplace upload buffers to maximum mappable size
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=45323
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8f4bae01e39392faa8978090db4cbe28fa00b013
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 20:28:44 2012 +0000
+
+    sna/video: Ensure the video pixmap is on the GPU
+    
+    The presumption that the pixmap is the scanout and so will always be
+    pinned is false if there is a shadow or under a compositor. In those
+    cases, the pixmap may be idle and so the GPU bo reaped. This was
+    compounded by that the video path did not mark the pixmap as busy. So
+    whilst watching a video under xfce4 with compositing enabled (has to be
+    a non-GL compositor) the video would suddenly stall.
+    
+    Reported-by: Paul Neumann <paul104x@yahoo.de>
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45279
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d02bd80b2f9f8ee3840be5d8d6b8d389192c57f5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 20:12:49 2012 +0000
+
+    sna: Use a proxy rather than a temporary bo for too-tall but thin targets
+    
+    If the render target is thin enough to fit within the 3D pipeline, but is
+    too tall, we can fudge the address of the origin and coordinates to fit
+    within the constaints of the pipeline.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ea433995a37f0a9d1579f74029418f22a63a2bc0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 19:34:39 2012 +0000
+
+    sna: Experiment with a partial source
+    
+    If the source is thin enough such that the pitch is within the sampler's
+    constraints and the sample size is small enough, just fudge the origin
+    of the bo such that it can be sampled.
+    
+    This avoids having to create a temporary bo and use the BLT to extract
+    it and helps, for example, firefox-asteroids which uses an 64x11200
+    texture atlas.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ad910949beb0c42e2d7b864f030b055ca40adacd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 18:37:39 2012 +0000
+
+    sna: Mark diagonal lines as partial write
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b9c83e0b2c42f7657b1854a7cdcbc0407957c382
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 18:24:01 2012 +0000
+
+    sna/video: Add some DBG messages to track the error paths
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=45279
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 45d831c8b11d6f9f38c0cb9b5877541a971f2c67
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 15:45:17 2012 +0000
+
+    sna: Consolidate routines to choice destination bo
+    
+    Combine the two very similar routines that decided if we should render
+    into the GPU bo, CPU bo or shadow pixmap into a single function.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 6402e7f1195f60f96dc269a701532c3270d8920f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 18:05:51 2012 +0000
+
+    sna: Ensure that we have a source bo for tiled fills
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 6c5fb84f4de346b06e5a538e683c5a118f2579bc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 14:08:57 2012 +0000
+
+    sna/glyphs: Check that we attached to the cache pixmaps upon creation
+    
+    If the hw is wedged, then the pixmap creation routines will return an
+    ordinary unattached pixmap. The code presumed that it would only return
+    a pixmap with an attached bo, and so would segfault as it chased the
+    invalid pointer after a GPU hang and the server was restarted.
+    Considering that we already checked that the GPU wasn't wedged before we
+    started, this is just mild paranoia, but on a run-once piece of code.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 86f1ae9164a94323c08e1dc6cb301e5bc1126b10
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 10:26:11 2012 +0000
+
+    sna/video: Add some more DBG breadcrumbs to the textured PutImage
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ce1cae7f4715fc8e14327c5b705d9f2cc45a3741
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jan 27 00:37:51 2012 +0000
+
+    sna/video: Simplify the gen2/915gm check
+    
+    And make the later check in put image match.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 541908524f9ee754db3bc45d2e1681d34479c1cc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 23:14:14 2012 +0000
+
+    sna: Remove extraneous clipping from GetImage
+    
+    The spec says that they must wholly contained with the valid BorderClip
+    for a Window or within the Pixmap or else a BadMatch is thrown. Rely on
+    this behaviour and not perform the clipping ourselves.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 7ff40b572ec5cd860d7c7ff23beca0388f37c31c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 22:55:04 2012 +0000
+
+    sna: Avoid fbBlt for the easy GetImage cases
+    
+    From (i5-2520m):
+      60000 trep @   0.6145 msec (  1630.0/sec): GetImage 500x500 square
+    To:
+      60000 trep @   0.4949 msec (  2020.0/sec): GetImage 500x500 square
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit adb1320bba15a3a3b4fa8e7d0fd0360fa696721d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 16:05:48 2012 +0000
+
+    sna/gen2+: Include being unattached in the list of source fallbacks
+    
+    If the source is not attached to a buffer (be it a GPU bo or a CPU bo),
+    a temporary upload buffer would be required and so it is not worth
+    forcing the target to the destination in that case (should the target
+    not be on the GPU already).
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b1f9415bf355e9fbd6fc3ce8fa1af59083ca2943
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 13:59:24 2012 +0000
+
+    sna: Allow gen4+ to use larger GPU bo
+    
+    As the blitter on gen4+ does not require fence registers, it is not
+    restricted to operating on large objects within the mappable aperture.
+    As we do not need to operate on such large GPU bo in place, we can relax
+    the restriction on the maximum bo size for gen4+ to allocate for use
+    with the GPU.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d35b6955dbb5d652d8685d2c1ea82c5e08de55ea
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 14:34:36 2012 +0000
+
+    sna: Prevent mapping through the GTT for large bo
+    
+    If the bo is larger than a quarter of the aperture, it is unlikely that
+    we will be able to evict enough contiguous space in the GATT to
+    accommodate that buffer. So don't attempt to map them and use the
+    indirect access instead.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 7c81bcd0c425cc0f7ddf2ad8289bb739c8d44289
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 13:35:15 2012 +0000
+
+    sna: Add FORCE_FALLBACK debugging hook for PutImage
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 35c0ef586bf508c577642d772f18eae0b64cfd44
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 11:20:03 2012 +0000
+
+    sna/gen3: Use cpu bo if already in use
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b76a6da3fa0148ef32600dd9505e22b90de037df
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 10:47:01 2012 +0000
+
+    sna: Search the buckets above the desired size in the bo cache
+    
+    It is preferrable to reuse a slightly larger bo, than it is to create a
+    fresh one and map it into the aperture. So search the bucket above us as
+    well.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit e2b8b1c145932e2254a705905c60f18c200cf2e8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 12:42:12 2012 +0000
+
+    sna: Apply any previous transformation when downsampling
+    
+    In order to handle rotations and fractional offsets produced by the act
+    of downsampling, we need to compute the full affine transformation and
+    apply it to the vertices rather than attempt to fudge it with an integer
+    offset.
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=45086
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 352828ee59164a9e81093d88dfdd45bc21f0c739
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 26 12:41:34 2012 +0000
+
+    sna: Tweak aperture thresholds for batch flushing
+    
+    In order to more easily accommodate operations on large source CPU bo.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit cff6a1a2e4648eb211a1789ae9f711e2f16e9d4d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 23:21:36 2012 +0000
+
+    sna: Use the cpu bo where possible as the source for texture extraction
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit e583af9cca4ad2e5643317447c6b065d3ee7d11e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 23:04:50 2012 +0000
+
+    sna: Experiment with creating large objects as CPU bo
+    
+    Even on non-LLC systems if we can prevent the migration of such
+    objects, we can still benefit immensely from being able to map them into
+    the GTT as required.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 55569272f7d4232ef50f7b964dda82f85a190b99
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 20:13:27 2012 +0000
+
+    sna: Apply the same migration flags for the dst alphamap as for the dst pixmap
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 4a132ddbf06e5ffc364c25002a1e46ad8bf0e45a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 20:12:55 2012 +0000
+
+    sna: Correct offset for moving drawable regions to the CPU
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 65164d90b7b17ec7eea1e24d4b02ec037b55b1ff
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 20:12:27 2012 +0000
+
+    sna/gen2+: Do not force use of GPU if the target is simply cleared
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 307f493d76580687a3cf56106bf296475f1f53e5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 20:11:21 2012 +0000
+
+    sna: Map freshly created, unbound bo through the CPU
+    
+    Take advantage that we know we will have to clflush the unbound bo
+    before use by the GPU and populate it inplace.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d785bb7df054a1f15d59db69b089deb743bbdb40
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 16:45:43 2012 +0000
+
+    sna: GetImage is allowed to read a window's border
+    
+    We need to adjust the clip to include the border pixels when migrating
+    damage from the backing pixmap. This also requires relaxing the
+    constraint that a read must be within the drawable.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 36425ba49ecbd87b1e3bf4340ca2496d8de24a7f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 12:49:24 2012 +0000
+
+    sna: Round up buffer allocations when downsampling
+    
+    The pathological case being nx1 or 1xm resulting in an illegal allocation
+    request of 0 bytes.
+    
+    One such example is
+      wolframalpha.com: x = (200 + x) / 100
+    which generates an approximately 8500x1 image and so needs downscaling
+    to fit in the render pipeline on all but IvyBridge. Bring on Ivy!
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit a2e83c6dcba1e911f42a3004b3d0782049e243e2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 11:22:38 2012 +0000
+
+    sna: Silence compiler warning for a potential uninitialised return on error
+    
+    sna_accel.c: In function 'sna_copy_plane':
+    sna_accel.c:5022:21: warning: 'ret' may be used uninitialized in this
+    function [-Wuninitialized]
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8d22a76506133e0f76424159c0944d29bdf39da9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 09:36:20 2012 +0000
+
+    sna: Run the miHandleExposures for no-op CopyPlane
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 338941eda3c7591a85b83000eafae0407d0d7cd0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 02:42:25 2012 +0000
+
+    sna: Handle self-copies for CopyPlane
+    
+    Prepare the source first as this has the dual benefit of letting us
+    decide how best to proceed with the op (on the CPU or GPU) and prevents
+    modification of the damage after we have choosen our preferred path.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2e8b398ca383f5292adab8b351b8837dde3e131a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 01:42:56 2012 +0000
+
+    sna: Only shrink partial buffers that are being written to
+    
+    Ignore inactive and mmapped buffers.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b79252efaafe2ebc998d6cf6176a425dd897e66f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 01:36:27 2012 +0000
+
+    sna: Apply source clipping to sna_copy_plane()
+    
+    Ensure that the migration region is within bounds for both the source
+    and destination pixmaps.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 46252bc7bcc7e08e47d00cdc87d6c1ed93830fcc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 01:31:34 2012 +0000
+
+    sna: Set the source clip for CopyArea fallback correctly
+    
+    The source window is (src->x, src->y)x(src->width, src->height) in
+    pixmap space. However, we then need to use this to clip against the
+    desination region, and so we need to translate from the source
+    coordinate to the destination coordinate.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ae6d3a311783d7e063de0347363331f14bd74d74
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 01:18:11 2012 +0000
+
+    sna: Print source and destination regions for CopyArea fallback for DBG
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit dd5e90adfc73870cebcb215ad9fb9b5aedd38673
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 01:17:49 2012 +0000
+
+    sna: Clip GetImage to drawable so that damage migration is within bounds
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b1fba5e8534da7fe253e21a3501854c04d82a108
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jan 25 01:16:34 2012 +0000
+
+    sna: Clear GPU damage first when moving a clear pixmap to the CPU
+    
+    This allows us to discard any busy GPU or CPU bo when we know we are
+    going to clear the shadow pixmap afterwards.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5ad95d66665802bce25e127ae0d06f3e0a9b0e62
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 22:11:20 2012 +0000
+
+    sna: Reduce number of reads required to inspect timers
+    
+    By using the information provided by select at wakeup.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit aae19cbc5d0ddcf247451d06e063b2550a7ff16f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 19:58:29 2012 +0000
+
+    sna: Only reset devPrivate.ptr if owned by the CPU bo when freeing
+    
+    If the pixmap is mapped to the GPU bo, we should continue to use the
+    current mapping rather than revoke it. Otherwise if we write to the GPU
+    bo inplace, thereby discarding the CPU bo, we set the pointer we are
+    about to copy to, to NULL.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5312ee90ad80eda1c6ff72fbef60f77f03094972
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 19:02:56 2012 +0000
+
+    sna: mark the pixmap as no longer clear after rendering video
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 69d3fc91f4a397f704b9971f97a905626e86eb3c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 18:51:32 2012 +0000
+
+    sna: Set up GC for general FillArc to FillSpans callback
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 855c45c65a69d34ad32a97a5fc54dd09d40d3e26
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 18:48:17 2012 +0000
+
+    sna: Enable clipping for mi FillSpans gpu callback
+    
+    The mi routines do not ensure that their output is suitably constrained
+    to the clip extents, so we must run it through the clipper.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c3fe42cde70a06a9a9a6190934df5cddb41d2f5f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 18:36:08 2012 +0000
+
+    sna: Don't attempt to create pixmaps for dpeths smaller than 8
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 22bab3cd7d0b2bcedfdd86f198d1ed9a21dd82aa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 18:33:14 2012 +0000
+
+    sna: Handle malloc failures when downsampling
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 4aef9e6f50cb96c57b7ba345a18e55c97d788192
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 17:23:43 2012 +0000
+
+    sna: Add more damage-is-contained asserts
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 16462e551d575bd5a370a8ac8b450ba72fea7d47
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 17:47:22 2012 +0000
+
+    sna: Install CPU handler for PolyLine for miPolySegment callback
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b8b49ae70b3aadf4423bd6830c446c040f87a2f1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 16:32:40 2012 +0000
+
+    sna: Mutate a temporary copy of the GC->ops so we don't alter new GCs
+    
+    In order to avoid using the wrong function for a scratch GC created
+    during the course of a MI function whilst we have a specialised GC in
+    use, we need to avoid modifying the original function table.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 1a116a15a5d978a1edf413a439f6ef6d3205a7aa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 16:53:21 2012 +0000
+
+    sna: Reduce the assertion that we would have hinted to operate inplace
+    
+    As the drawable_gc_flags() operate on lower level information than the
+    hint, it is able to spot more oportunities to reduce the READ flags and
+    so the assertion was overly optimistic.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 3d1bba033bc29fdf498dc082f3542c520a5ed39a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 18:22:12 2012 +0000
+
+    sna/gen3: Apply damage to video pixmap
+    
+    Reported-by: Paul Neumann <paul104x@yahoo.de>
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=44504
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ff4b8a03a40f7eb1d71b96aebb5daa1d8df83d2a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 17:51:35 2012 +0000
+
+    sna: Use RepeatPad to avoid sampling the border color when downsampling
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=45086
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 09bddddaf94b848f417e1c9449cfe4b21d2554dd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 15:50:02 2012 +0000
+
+    sna: handle negative modulus for tiled blits
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit f3b11ebc28114062581c39089781114323946654
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 16:05:09 2012 +0000
+
+    sna: Add more assertions for copy errors
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit b56971986d2d495aa38f015beb659fb12f0d433a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 24 17:23:59 2012 +0000
+
+    sna: Trim the clipped Segment to the right length
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 358a0861e642c26d925a69656039b4c95adba237


Reply to: