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

xserver-xorg-video-intel: Changes to 'ubuntu'



 .gitignore                    |    1 
 ChangeLog                     |  493 +++++++++
 NEWS                          |   29 
 configure.ac                  |    3 
 debian/changelog              |   13 
 src/brw_defines.h             |    7 
 src/brw_structs.h             |    6 
 src/i965_3d.c                 |    7 
 src/i965_reg.h                |    4 
 src/i965_render.c             |   16 
 src/i965_video.c              |   24 
 src/intel_dri.c               |   29 
 src/intel_driver.c            |   24 
 src/intel_driver.h            |    8 
 src/intel_module.c            |   17 
 src/intel_options.c           |    1 
 src/intel_options.h           |    1 
 src/legacy/i810/i810_driver.c |    2 
 src/sna/Makefile.am           |    4 
 src/sna/brw/Makefile.am       |   59 +
 src/sna/brw/brw.h             |   17 
 src/sna/brw/brw_disasm.c      | 1101 ++++++++++++++++++++
 src/sna/brw/brw_eu.c          |  150 ++
 src/sna/brw/brw_eu.h          | 2266 ++++++++++++++++++++++++++++++++++++++++++
 src/sna/brw/brw_eu_debug.c    |   95 +
 src/sna/brw/brw_eu_emit.c     | 2002 +++++++++++++++++++++++++++++++++++++
 src/sna/brw/brw_eu_util.c     |  126 ++
 src/sna/brw/brw_sf.c          |   54 +
 src/sna/brw/brw_test.c        |   60 +
 src/sna/brw/brw_test.h        |   46 
 src/sna/brw/brw_test_gen4.c   |  199 +++
 src/sna/brw/brw_test_gen5.c   |  208 +++
 src/sna/brw/brw_test_gen6.c   |  209 +++
 src/sna/brw/brw_test_gen7.c   |  191 +++
 src/sna/brw/brw_wm.c          |  681 ++++++++++++
 src/sna/gen4_render.c         |  409 ++-----
 src/sna/gen4_render.h         |   13 
 src/sna/gen5_render.c         |  249 +---
 src/sna/gen5_render.h         |   13 
 src/sna/gen6_render.c         |  471 ++++----
 src/sna/gen6_render.h         |   32 
 src/sna/gen7_render.c         |  510 ++++-----
 src/sna/gen7_render.h         |   15 
 src/sna/kgem.c                |   21 
 src/sna/sna.h                 |   64 +
 src/sna/sna_accel.c           |  120 --
 src/sna/sna_composite.c       |   87 +
 src/sna/sna_display.c         |   17 
 src/sna/sna_driver.c          |   18 
 src/sna/sna_glyphs.c          |    6 
 src/sna/sna_render.h          |   42 
 src/sna/sna_stream.c          |   46 
 52 files changed, 9079 insertions(+), 1207 deletions(-)

New commits:
commit 7aaf20d53215a943b846b3499a3e60fb07b09777
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Wed Aug 8 12:05:57 2012 +0300

    push to quantal-proposed

diff --git a/debian/changelog b/debian/changelog
index 8462da8..6d72f19 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,8 @@
-xserver-xorg-video-intel (2:2.20.3-0ubuntu1) UNRELEASED; urgency=low
+xserver-xorg-video-intel (2:2.20.3-0ubuntu1) quantal-proposed; urgency=low
 
   * Merge from unreleased debian experimental git.
 
- -- Timo Aaltonen <tjaalton@ubuntu.com>  Wed, 08 Aug 2012 12:03:12 +0300
+ -- Timo Aaltonen <tjaalton@ubuntu.com>  Wed, 08 Aug 2012 12:03:53 +0300
 
 xserver-xorg-video-intel (2:2.20.3-1) UNRELEASED; urgency=low
 

commit e000c85e9e5c1f78a4dbd6d393a012b4f82d3c1d
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Wed Aug 8 12:03:51 2012 +0300

    update the changelog

diff --git a/debian/changelog b/debian/changelog
index c64fa5a..8462da8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-intel (2:2.20.3-0ubuntu1) UNRELEASED; urgency=low
+
+  * Merge from unreleased debian experimental git.
+
+ -- Timo Aaltonen <tjaalton@ubuntu.com>  Wed, 08 Aug 2012 12:03:12 +0300
+
 xserver-xorg-video-intel (2:2.20.3-1) UNRELEASED; urgency=low
 
   * New upstream release.

commit 3ca6b61c818c4c4a4a2e519cdb91aa2000d00975
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Wed Aug 8 09:46:23 2012 +0300

    update the changelogs

diff --git a/ChangeLog b/ChangeLog
index 588e46d..8466e7d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,496 @@
+commit 5833ef173a01afb710acf10e806b83c5ca6efc09
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sat Aug 4 09:31:41 2012 +0100
+
+    2.20.3 release
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 036b90f099af21e60fb4c3684616daf1927f705e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Aug 3 21:41:59 2012 +0100
+
+    sna/gen7: Correct number of texture coordinates used for video
+    
+    Fixes regresion from
+    
+    commit 33c028f8be829caa4fdb9416ff177dc71f24b68e
+    Author: Chris Wilson <chris@chris-wilson.co.uk>
+    Date:   Wed Aug 1 01:17:50 2012 +0100
+    
+        sna/gen6+: Reduce floats-per-vertex for spans
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 05dcc5f1699ba90fc14c50882e8d4be89bc4a4f9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Aug 3 15:08:45 2012 +0100
+
+    Pass the chipset info through driverPrivate rather than a global pointer
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2b3f4ca33a00440a7005fef69099f8dbaddbbad1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Aug 3 14:27:51 2012 +0100
+
+    Unexport intel_chipsets
+    
+    Only used by the core module code, so make it static.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 5ff749727d3590368806508ac0d0fa8efd1d1d51
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Jul 25 22:21:29 2012 +0100
+
+    sna/gen7: Add constant variations and hookup a basic GT descriptor for Haswell
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit cd028cad3dc9b059a3d83b818d581f86e16ec317
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jul 26 13:17:11 2012 +0100
+
+    sna: Limit the batch size on all gen7 variants
+    
+    Seems the limit on the surface state size is common across the family
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 4cd9ec9d404d934268952a1058afa07741b09efe
+Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+Date:   Fri May 4 18:26:46 2012 +0200
+
+    uxa: fix 3DSTATE_PS to fill in number of samples for Haswell
+    
+    The sample mask value must match what is set for 3DSTATE_SAMPLE_MASK,
+    through gen6_upload_invariant_states().
+    
+    Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
+
+commit 412668464cf9505629eac20001701af3402dc6e8
+Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+Date:   Fri May 4 17:55:10 2012 +0200
+
+    uxa: set "Shader Channel Select" fields in surface state for Haswell
+    
+    For normal behaviour, each Shader Channel Select should be set to the
+    value indicating that same channel. i.e. Shader Channel Select Red is
+    set to SCS_RED, Shader Channel Select Green is set to SCS_GREEN, etc.
+    
+    Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
+
+commit a47ba68996f117fabcb601d35bcc5f99cbcd6122
+Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+Date:   Fri May 4 17:17:22 2012 +0200
+
+    uxa: fix max PS threads shift value for Haswell
+    
+    The maximum number of threads is now a 9-bit value. Thus, one more bit
+    towards LSB was re-used. i.e. bit position is now 23 instead of 24 on
+    Ivy Bridge.
+    
+    Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
+
+commit ce4421e175ceb9259208c7c223af8d66282c3db3
+Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+Date:   Fri May 4 17:09:19 2012 +0200
+
+    uxa: use at least 64 URB entries for Haswell
+    
+    Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
+
+commit 8c880aa34c522b0d67cbb932771f00c947d00dec
+Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+Date:   Fri May 4 17:43:19 2012 +0200
+
+    uxa: add IS_HSW() macro to distinguish Haswell from Ivybridge
+    
+    Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+commit 0c0d1d956a8ba37d9e6f4a5e4f52018c8ce498e5
+Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+Date:   Fri Aug 3 12:03:00 2012 +0100
+
+    Introduce a chipset identifier for Haswell (Ivybridge successor)
+    
+    Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+commit 146959dd5ef28384a3db4fce4bf7840f2b3ec58c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 23:43:15 2012 +0100
+
+    sna: Drop the clear flag as we discard the GPU damage
+    
+    Hopefully only to keep the sanity checks happy...
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 7404e3085b2ee36fa24f77a02d156b4b1d2dff60
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 23:37:35 2012 +0100
+
+    sna: Ensure we only mark a clear for a fill on the GPU bo
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ca46d1c7a18596ea9fe2b0577ccf1d110e3e42ac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 20:20:29 2012 +0100
+
+    sna/gen7: Prefer the BLT for self-copies
+    
+    Looking at the test results for a third time, gives the edge to the BLT
+    again.
+
+commit e4a3cd3d16447b5d83d1c8c63c342f1240935267
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 17:37:33 2012 +0100
+
+    sna: Add validation of the clear flag to pixmap debugging
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit eaeda34bef711cc566f51dee092a19a3c4ac1a16
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 16:23:05 2012 +0100
+
+    sna: Fix computation of st values for SIMD8 dispatch
+    
+    Fixes regression with enabling 8-pixels.
+    
+    Reported-by: Mehran Kholdi <semekh.dev@gmail.com>
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53044
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 55231eca818c82620c0146384b19b5d5659f6cd6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 16:22:23 2012 +0100
+
+    sna/gen6: Install a fallback 16-pixel shader
+    
+    In case the DBG options leave no shader compiled, make sure we always
+    supply one.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 4e79c1fef064ce68914eb644edd7f588be3d7300
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 15:58:43 2012 +0100
+
+    Revert "sna/gen7: Prefer the BLT for self-copies"
+    
+    This reverts commit 89e75dbcb6749bde7587ecc08abed276c255e7f9.
+    
+    Having removed the forced stall for a RENDER self-copy there is no
+    longer a need to encourage ring switching.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 85cef78a40c6a7a0254f8fba685f224eac6038e1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 13:39:36 2012 +0100
+
+    sna/gen7: Simplify the force-stall detection
+    
+    After reducing the number of conditions where we think we need to force
+    the stall on the results, we can then simplify the code to detect
+    that remaining case.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 9391a2c71f020541a2a62ae68eadd486216a38df
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 12:50:32 2012 +0100
+
+    sna/gen7: Only force a stall for a dirty target if also used as a blend source
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 0a4bb8663b9fa9b39d13bfb49aea30f2aaecce78
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 11:19:27 2012 +0100
+
+    sna/gen4: Flush not required between fill vertices, only nomaskcomposite
+    
+    A small breakthrough... Still need to flush the primitive between state
+    changes though.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 33c028f8be829caa4fdb9416ff177dc71f24b68e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 01:17:50 2012 +0100
+
+    sna/gen6+: Reduce floats-per-vertex for spans
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 9b2873d3d97b6780d878bd9b821fba0302470f9f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Aug 1 00:01:15 2012 +0100
+
+    sna/gen4+: Implement an opacity shader
+    
+    Avoid the cumbersome lookup through the alpha gradient texture and
+    simply multiply the incoming opacity value. The next step will be to
+    reduce the number of floats required per vertex.
+    
+    Now that we have removed the primary user of the alpha solid cache, it
+    may be time to retire that as well.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit fd3a1236051265fab700aad689a171de47d7338f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jul 31 10:20:51 2012 +0100
+
+    sna/gen6: Enable 8 pixel dispatch
+    
+    This gives a small performance increase when operating with rectangles,
+    which is reasonably frequent.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8922b804bc9ed27957c81f7cda4812ab4ecbd4de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jul 31 10:20:51 2012 +0100
+
+    sna/gen7: Enable 8 pixel dispatch
+    
+    This gives a small performance increase when operating with rectangles,
+    which is reasonably frequent.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 492093d04b1486dd34aafe2f109a77ddeb836f18
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jul 31 18:39:17 2012 +0100
+
+    sna: Generate shaders for SNB+ 8-pixel dispatch
+    
+    Not ideal yet, sampling an alpha-only surface using SIMD8 only seems to
+    ever return 0...
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 6a5ed88f9fab654c9c11c566b841d42150d26c5d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jul 30 17:08:20 2012 +0100
+
+    sna/gen4: Tidy debugging code
+    
+    Cluster the ifdefs together in the initialisation code.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 46ec9b0ed55d0fcade40f92206e59c02e402d870
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jul 31 17:41:34 2012 +0100
+
+    sna: Update DPMS mode on CRTC after forcing the outputs on
+    
+    If we forcibly update the outputs to be on, then the core will not issue
+    its on DPMS event and we miss out on updating the CRTC bookkeeping in
+    sna_crtc_dpms(). So we need to update the flag on the CRTC as we
+    manipulate the outputs during modesetting.
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=52142
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8f166d26b8a93592939068c5a8d160981c724cfd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jul 31 11:58:24 2012 +0100
+
+    sna: Be more careful with damage reduction during CompositeRectangles
+    
+    We actually need to force DAMAGE_ALL in case we are promoting the GPU
+    pixmap.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit e6cb5d93eaa01e7f4763f797bba341f3cc481d98
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jul 30 11:14:58 2012 +0100
+
+    sna: Avoid overlapping gpu/cpu damage with IGNORE_CPU
+    
+    We cannot simply ignore the presence of CPU damage with IGNORE_CPU but
+    must remember to discard it.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c9805ba98775bb1e969ff59c7044fe1a49673ca8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 18:19:37 2012 +0100
+
+    sna: Export sna_drawable_use_bo() to select target for FillRectangles
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 89e75dbcb6749bde7587ecc08abed276c255e7f9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 15:36:44 2012 +0100
+
+    sna/gen7: Prefer the BLT for self-copies
+    
+    If we are copying to ourselves, we have to regularly flush the render
+    cache at which point the RENDER pipeline is slower than the BLT
+    pipeline.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 33d6afda6cec124494f49b74152768da8a3fbdb5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 09:51:16 2012 +0100
+
+    sna/gen7: Compile basic kernels at runtime
+
+commit eba8d3b3e14a5a16cea6cb8a89f12d3feb8f3d99
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 09:51:16 2012 +0100
+
+    sna/gen6: Compile basic kernels at runtime
+
+commit 8515ec90405912b3d776defcd6e81b1b5f699f1e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 09:51:16 2012 +0100
+
+    sna/gen5: Compile basic kernels at runtime
+
+commit 00c08b1842c9493ca918a868202946b2e7150de0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 09:51:16 2012 +0100
+
+    sna/gen4: Compile basic kernels at runtime
+
+commit 7c9dbc980b760e0053d83ca2d7cb147613285680
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 09:50:39 2012 +0100
+
+    sna: Assemble SF and WM kernels using brw
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 8ebafa0493c0fa08ab9d80eeb1191b7560dc0863
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Wed Sep 21 19:06:07 2011 +0100
+
+    sna: Add the brw assembler
+    
+    In order to construct programs on the fly to cater for the combinatorial
+    number of possible shaders, we need an assembler, whilst also taking the
+    opportunity to remove some of the inefficiencies and mistakes from the
+    current shaders.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit ca9d9c02a260bf7930e04bf64e93cc051893c04e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sat Jul 28 23:08:07 2012 +0100
+
+    sna: Prefer not to create a GPU bo without RENDER acceleration
+    
+    Unless that bo happens to be used on a render chain to the scanout.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit eefbe5b6038424566faf7333bb09764b050dd6b4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Mon Jul 30 10:56:29 2012 +0100
+
+    sna: Debug option to test migration of inactive pixmaps
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit d3499cacb59f19b5a3439a630ffbc3e105a27b75
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 23:00:15 2012 +0100
+
+    sna: Assert that we never attempt to submit a batch whilst wedged
+    
+    We should be asserting at the point that we insert the invalid operation
+    into the batch, but asserting upon submitting the batch is a useful
+    failsafe.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit cb4d789f98e6e05ec29e5242887018c7450ddf10
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 22:55:44 2012 +0100
+
+    sna: Disable the warning for a hung GPU is we manually set wedged
+    
+    Only warn about a hung GPU if we encounter an EIO during operation, but
+    don't warn if we set wedged during initialisation based on unsupported
+    hw or user request.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 0fd680ff52f7ce0a101c617dfb8997c4e228e3ad
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sun Jul 29 22:51:26 2012 +0100
+
+    Don't disable acceleration on 830/845g by default
+    
+    Run the risk of a GPU hang (it shouldn't endanger the entire machine
+    normally) and let the user elect to disable it through
+    
+      Option "NoAccel" "true"
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 3d45f0affe263985f440e144203ed7cbb3803696
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Sat Jul 28 18:21:08 2012 +0100
+
+    sna: Honour the Option "DRI"
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=52624
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit fb385745a2347f8966765567e78229d67ddc8d60
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jul 27 13:24:04 2012 +0100
+
+    sna/gen4: Move the common vertex_offset==0 check into the flush()
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 73ddd8b0decee444a57f10a11f05deebba686649
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Fri Jul 27 12:43:00 2012 +0100
+
+    sna/gen4: Further refinement to the GT allocation
+    
+    Still hunting for why gen4 fails utterly.
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 717823a9f77cfedc50e03c5c31c1da44a396b561
+Author: Zhigang Gong <zhigang.gong@linux.intel.com>
+Date:   Fri Jul 27 18:12:26 2012 +0800
+
+    uxa/dri (glamor): Use exchange buffer in glamor fixup.
+    
+    The previous implementation is to create a new textured
+    pixmap based on the newly created pixmap's buffer object.
+    
+    This is not efficient, as we already created it when we
+    call CreatePixmap. We can just exchange the underlying
+    texture/image buffers by calling intel_glamor_exchange_buffers().
+    
+    And this commit seems also fix a weird rendering problem
+    when working with compiz/mutter.
+    
+    Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
 commit a8ee1406244d8b8399bf933d6b61bfd14374b5f9
 Author: Chris Wilson <chris@chris-wilson.co.uk>
 Date:   Fri Jul 27 09:07:16 2012 +0100
diff --git a/debian/changelog b/debian/changelog
index 62c5fa0..58c777e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-intel (2:2.20.3-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Timo Aaltonen <tjaalton@ubuntu.com>  Wed, 08 Aug 2012 09:45:51 +0300
+
 xserver-xorg-video-intel (2:2.20.2-1) experimental; urgency=low
 
   [ Maarten Lankhorst ]

commit 5833ef173a01afb710acf10e806b83c5ca6efc09
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 4 09:31:41 2012 +0100

    2.20.3 release
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/NEWS b/NEWS
index 7e267a6..5a9c495 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,32 @@
+Release 2.20.3 (2012-08-04)
+===========================
+Just a minor bugfix for gen4 chipsets (965gm, gm45 and friends) that
+crept into 2.20.2. As an added bonus, the pessimistic workaround for a
+GPU hang on gen4 has been relaxed and the shaders have been overhauled
+which should pave the way to eliminating the last of the uncommon CPU
+operations, along with immediately realising a small perforamnce
+improvement.
+
+Bugs fixed since 2.20.2:
+
+ * Update DPMS bookkeeping after modeset
+   https://bugs.freedesktop.org/show_bug.cgi?id=52142
+
+ * Avoid overlapping gpu/cpu damage after ignoring cpu damage in the
+   consideration of placement for the operation.
+
+ * Enable acceleration by default on 830gm/845g. The GMCH on this pair
+   of chipsets is notoriously incoherent, so the GPU is almost certainly
+   going to hang at some point, though unlikely to hang the system and
+   should automatically disable acceleration (and thence behave
+   identically as if the acceleration was disabled from the start).
+   Option "NoAccel" can be used to disable all 2D acceleration and
+   Option "DRI" can be used to disable all 3D acceleration.
+   https://bugs.freedesktop.org/show_bug.cgi?id=52624
+
+ * Fix vertex bookkeeping for gen4 that was causing corruption in the
+   command stream.
+
 Release 2.20.2 (2012-07-27)
 ===========================
 For the last 9 months, since 2.16.901, we have been shipping a driver that
diff --git a/configure.ac b/configure.ac
index 2a8d08b..7ffbb75 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-intel],
-        [2.20.2],
+        [2.20.3],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-intel])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 036b90f099af21e60fb4c3684616daf1927f705e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 3 21:41:59 2012 +0100

    sna/gen7: Correct number of texture coordinates used for video
    
    Fixes regresion from
    
    commit 33c028f8be829caa4fdb9416ff177dc71f24b68e
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Wed Aug 1 01:17:50 2012 +0100
    
        sna/gen6+: Reduce floats-per-vertex for spans
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index b4a9223..9ef5e17 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2086,7 +2086,7 @@ gen7_render_video(struct sna *sna,
 			       is_planar_fourcc(frame->id) ?
 			       GEN7_WM_KERNEL_VIDEO_PLANAR :
 			       GEN7_WM_KERNEL_VIDEO_PACKED,
-			       1);
+			       2);
 	tmp.priv = frame;
 
 	kgem_set_mode(&sna->kgem, KGEM_RENDER);

commit 05dcc5f1699ba90fc14c50882e8d4be89bc4a4f9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 3 15:08:45 2012 +0100

    Pass the chipset info through driverPrivate rather than a global pointer
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/intel_driver.c b/src/intel_driver.c
index 0e27c48..1ef06fb 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -186,7 +186,7 @@ static void PreInitCleanup(ScrnInfoPtr scrn)
 static void intel_check_chipset_option(ScrnInfoPtr scrn)
 {
 	intel_screen_private *intel = intel_get_screen_private(scrn);
-	intel->info = intel_detect_chipset(scrn, intel->pEnt, intel->PciInfo);
+	intel_detect_chipset(scrn, intel->pEnt, intel->PciInfo);
 }
 
 static Bool I830GetEarlyOptions(ScrnInfoPtr scrn)
@@ -458,14 +458,15 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
 	if (flags & PROBE_DETECT)
 		return TRUE;
 
-	intel = intel_get_screen_private(scrn);
-	if (intel == NULL) {
-		intel = xnfcalloc(sizeof(intel_screen_private), 1);
+	if (((uintptr_t)scrn->driverPrivate) & 1) {
+		intel = xnfcalloc(sizeof(*intel), 1);
 		if (intel == NULL)
 			return FALSE;
 
+		intel->info = (void *)((uintptr_t)scrn->driverPrivate & ~1);
 		scrn->driverPrivate = intel;
 	}
+	intel = intel_get_screen_private(scrn);
 	intel->scrn = scrn;
 	intel->pEnt = pEnt;
 
diff --git a/src/intel_driver.h b/src/intel_driver.h
index d760cb4..882d889 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -238,9 +238,9 @@ struct intel_device_info {
 	int gen;
 };
 
-const struct intel_device_info *
-intel_detect_chipset(ScrnInfoPtr scrn,
-		     EntityInfoPtr ent, struct pci_device *pci);
+void intel_detect_chipset(ScrnInfoPtr scrn,
+			  EntityInfoPtr ent,
+			  struct pci_device *pci);
 
 
 #endif /* INTEL_DRIVER_H */
diff --git a/src/intel_module.c b/src/intel_module.c
index f1d9fc0..ae19f75 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -44,8 +44,6 @@
 #include "legacy/legacy.h"
 #include "sna/sna_module.h"
 
-static struct intel_device_info *chipset_info;
-
 static const struct intel_device_info intel_generic_info = {
 	.gen = -1,
 };
@@ -227,9 +225,10 @@ static const struct pci_id_match intel_device_match[] = {
 	{ 0, 0, 0 },
 };
 
-const struct intel_device_info *
+void
 intel_detect_chipset(ScrnInfoPtr scrn,
-		     EntityInfoPtr ent, struct pci_device *pci)
+		     EntityInfoPtr ent,
+		     struct pci_device *pci)
 {
 	MessageType from = X_PROBED;
 	const char *name = NULL;
@@ -258,7 +257,6 @@ intel_detect_chipset(ScrnInfoPtr scrn,
 	}
 
 	scrn->chipset = name;
-	return chipset_info;
 }
 
 /*
@@ -368,8 +366,6 @@ static Bool intel_pci_probe(DriverPtr		driver,
 	PciChipsets intel_pci_chipsets[NUM_CHIPSETS];
 	unsigned i;
 
-	chipset_info = (void *)match_data;
-
 	if (!has_kernel_mode_setting(device)) {
 #if KMS_ONLY
 		return FALSE;
@@ -404,6 +400,7 @@ static Bool intel_pci_probe(DriverPtr		driver,
 	scrn->driverVersion = INTEL_VERSION;
 	scrn->driverName = INTEL_DRIVER_NAME;
 	scrn->name = INTEL_NAME;
+	scrn->driverPrivate = (void *)(match_data | 1);
 	scrn->Probe = NULL;
 
 #if !KMS_ONLY
diff --git a/src/legacy/i810/i810_driver.c b/src/legacy/i810/i810_driver.c
index 949fd27..fc6369e 100644
--- a/src/legacy/i810/i810_driver.c
+++ b/src/legacy/i810/i810_driver.c
@@ -152,7 +152,7 @@ static int i810_pitches[] = {
 static Bool
 I810GetRec(ScrnInfoPtr scrn)
 {
-   if (scrn->driverPrivate)
+   if (((uintptr_t)scrn->driverPrivate & 1) == 0)
       return TRUE;
 
    scrn->driverPrivate = xnfcalloc(sizeof(I810Rec), 1);
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index bd31996..2ccad59 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -383,14 +383,15 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
 
 	sna_selftest();
 
-	sna = to_sna(scrn);
-	if (sna == NULL) {
+	if (((uintptr_t)scrn->driverPrivate) & 1) {
 		sna = xnfcalloc(sizeof(struct sna), 1);
 		if (sna == NULL)
 			return FALSE;
 
+		sna->info = (void *)((uintptr_t)scrn->driverPrivate & ~1);
 		scrn->driverPrivate = sna;
 	}
+	sna = to_sna(scrn);
 	sna->scrn = scrn;
 	sna->pEnt = pEnt;
 
@@ -438,7 +439,7 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
 	if (sna->Options == NULL)
 		return FALSE;
 
-	sna->info = intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo);
+	intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo);
 
 	kgem_init(&sna->kgem, fd, sna->PciInfo, sna->info->gen);
 	if (xf86ReturnOptValBool(sna->Options, OPTION_ACCEL_DISABLE, FALSE)) {

commit 2b3f4ca33a00440a7005fef69099f8dbaddbbad1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 3 14:27:51 2012 +0100

    Unexport intel_chipsets
    
    Only used by the core module code, so make it static.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/intel_driver.h b/src/intel_driver.h
index d88f225..d760cb4 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -234,7 +234,6 @@
 #define SUPPORTS_YTILING(pI810) (INTEL_INFO(intel)->gen >= 40)
 #define HAS_BLT(pI810) (INTEL_INFO(intel)->gen >= 60)
 
-extern SymTabRec *intel_chipsets;
 struct intel_device_info {
 	int gen;
 };
diff --git a/src/intel_module.c b/src/intel_module.c
index 7640916..f1d9fc0 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -155,7 +155,7 @@ static const SymTabRec _intel_chipsets[] = {
 };
 #define NUM_CHIPSETS (sizeof(_intel_chipsets) / sizeof(_intel_chipsets[0]))
 
-SymTabRec *intel_chipsets = (SymTabRec *) _intel_chipsets;
+static SymTabRec *intel_chipsets = (SymTabRec *) _intel_chipsets;
 
 #define INTEL_DEVICE_MATCH(d,i) \
     { 0x8086, (d), PCI_MATCH_ANY, PCI_MATCH_ANY, 0x3 << 16, 0xff << 16, (intptr_t)(i) }

commit 5ff749727d3590368806508ac0d0fa8efd1d1d51
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jul 25 22:21:29 2012 +0100

    sna/gen7: Add constant variations and hookup a basic GT descriptor for Haswell
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 193de00..b4a9223 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -83,20 +83,29 @@ struct gt_info {
 	} urb;
 };
 
-static const struct gt_info gt1_info = {
+static const struct gt_info ivb_gt1_info = {
 	.max_vs_threads = 36,
 	.max_gs_threads = 36,
-	.max_wm_threads = (48-1) << GEN7_PS_MAX_THREADS_SHIFT,
+	.max_wm_threads = (48-1) << IVB_PS_MAX_THREADS_SHIFT,
 	.urb = { 128, 512, 192 },
 };
 
-static const struct gt_info gt2_info = {
+static const struct gt_info ivb_gt2_info = {
 	.max_vs_threads = 128,
 	.max_gs_threads = 128,
-	.max_wm_threads = (172-1) << GEN7_PS_MAX_THREADS_SHIFT,
+	.max_wm_threads = (172-1) << IVB_PS_MAX_THREADS_SHIFT,
 	.urb = { 256, 704, 320 },
 };
 
+static const struct gt_info hsw_gt_info = {
+	.max_vs_threads = 8,
+	.max_gs_threads = 8,
+	.max_wm_threads =
+		(8 - 1) << HSW_PS_MAX_THREADS_SHIFT |
+		1 << HSW_PS_SAMPLE_MASK_SHIFT,
+	.urb = { 128, 64, 64 },
+};
+
 static const uint32_t ps_kernel_packed[][4] = {
 #include "exa_wm_src_affine.g7b"
 #include "exa_wm_src_sample_argb.g7b"
@@ -1363,6 +1372,8 @@ gen7_bind_bo(struct sna *sna,
 	ss[5] = 0;
 	ss[6] = 0;
 	ss[7] = 0;
+	if (sna->kgem.gen == 75)
+		ss[7] |= HSW_SURFACE_SWIZZLE(RED, GREEN, BLUE, ALPHA);
 
 	kgem_bo_set_binding(bo, format, offset);
 
@@ -4234,9 +4245,14 @@ static bool gen7_render_setup(struct sna *sna)
 	struct gen7_sampler_state *ss;
 	int i, j, k, l, m;
 
-	state->info = &gt1_info;
-	if (DEVICE_ID(sna->PciInfo) & 0x20)
-		state->info = &gt2_info; /* XXX requires GT_MODE WiZ disabled */
+	if (sna->kgem.gen == 70) {
+		state->info = &ivb_gt1_info;
+		if (DEVICE_ID(sna->PciInfo) & 0x20)
+			state->info = &ivb_gt2_info; /* XXX requires GT_MODE WiZ disabled */
+	} else if (sna->kgem.gen == 75) {
+		state->info = &hsw_gt_info;
+	} else
+		return false;
 
 	sna_static_stream_init(&general);
 
diff --git a/src/sna/gen7_render.h b/src/sna/gen7_render.h
index 8de52a4..1661d4c 100644
--- a/src/sna/gen7_render.h
+++ b/src/sna/gen7_render.h
@@ -1237,6 +1237,17 @@ struct gen7_sampler_state {
 #define GEN7_SURFACE_DEPTH_SHIFT         21
 #define GEN7_SURFACE_PITCH_SHIFT         0
 
+#define HSW_SWIZZLE_ZERO		0
+#define HSW_SWIZZLE_ONE			1
+#define HSW_SWIZZLE_RED			4
+#define HSW_SWIZZLE_GREEN		5
+#define HSW_SWIZZLE_BLUE		6
+#define HSW_SWIZZLE_ALPHA		7
+#define __HSW_SURFACE_SWIZZLE(r,g,b,a) \
+	((a) << 16 | (b) << 19 | (g) << 22 | (r) << 25)
+#define HSW_SURFACE_SWIZZLE(r,g,b,a) \
+	__HSW_SURFACE_SWIZZLE(HSW_SWIZZLE_##r, HSW_SWIZZLE_##g, HSW_SWIZZLE_##b, HSW_SWIZZLE_##a)
+
 /* _3DSTATE_VERTEX_BUFFERS on GEN7*/
 /* DW1 */
 #define GEN7_VB0_ADDRESS_MODIFYENABLE   (1 << 14)
@@ -1281,7 +1292,9 @@ struct gen7_sampler_state {
 # define GEN7_PS_FLOATING_POINT_MODE_ALT                (1 << 16)
 /* DW3: scratch space */
 /* DW4 */
-# define GEN7_PS_MAX_THREADS_SHIFT                      24
+# define IVB_PS_MAX_THREADS_SHIFT                      24
+# define HSW_PS_MAX_THREADS_SHIFT                      23


Reply to: