<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.linux.debian.devel.x">
    <title>gmane.linux.debian.devel.x</title>
    <link>http://blog.gmane.org/gmane.linux.debian.devel.x</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110931"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110930"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110929"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110928"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110927"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110926"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110925"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110924"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110923"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110922"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110921"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110920"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110919"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110918"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110917"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110916"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110915"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110914"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110913"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.debian.devel.x/110912"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110931">
    <title>libxi: Changes to 'upstream-experimental'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110931</link>
    <description>&lt;pre&gt; autogen.sh                       |    4 +++-
 configure.ac                     |    5 +++--
 include/X11/extensions/XInput2.h |    2 +-
 src/Makefile.am                  |    1 +
 src/XExtInt.c                    |    3 +++
 xi.pc.in                         |    2 +-
 6 files changed, 12 insertions(+), 5 deletions(-)

New commits:
commit 26cb4573cbb8808ce9d5c75c16bd613b2f03a368
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Fri Apr 5 09:34:48 2013 +1000

    libXi 1.7.1
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/configure.ac b/configure.ac
index c2897d2..8dbca38 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,7 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libXi], [1.7],
+AC_INIT([libXi], [1.7.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([src/config.h])

commit 0358bb20384b759d6d41dc44f3aed30583689d53
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Tue Mar 26 14:46:06 2013 +1000

    Require XFixes for PointerBarrier, remove duplicate typedef
    
    The PointerBarrier typedef is duplicate if a client includes both Xfixes.h
    and XInput2.h.
    
    gcc 4.6 won't complain about that, but earlier versions do:
    http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ce3765bf44e49ef0568a1ad4a0b7f807591d6412
    
    gcc 4.6 with -pedantic-errors shows:
    /opt/xorg/include/X11/extensions/XInput2.h:172:13: error: redefinition of
    typedef ‘PointerBarrier’ [-pedantic]
    In file included from test.c:1:0:
    /opt/xorg/include/X11/extensions/Xfixes.h:255:13: note: previous declaration
    of ‘PointerBarrier’ was here
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
    Reviewed-by: Julien Cristau &amp;lt;jcristau&amp;lt; at &amp;gt;debian.org&amp;gt;

diff --git a/configure.ac b/configure.ac
index ab8a63c..c2897d2 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -28,6 +28,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; XORG_CHECK_MALLOC_ZERO
 
 # Obtain compiler/linker options for dependencies
 PKG_CHECK_MODULES(XI, [xproto &amp;gt;= 7.0.13] [x11 &amp;gt;= 1.4.99.1] [xextproto &amp;gt;= 7.0.3] [xext &amp;gt;= 1.0.99.1] [inputproto &amp;gt;= 2.2.99.1])
+# CFLAGS only for PointerBarrier typedef
+PKG_CHECK_MODULES(XFIXES, [xfixes &amp;gt;= 5])
 
 # Check for xmlto and asciidoc for man page conversion
 # (only needed by people building tarballs)
diff --git a/include/X11/extensions/XInput2.h b/include/X11/extensions/XInput2.h
index a746012..33670eb 100644
--- a/include/X11/extensions/XInput2.h
+++ b/include/X11/extensions/XInput2.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -30,6 +30,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;X11/Xlib.h&amp;gt;
 #include &amp;lt;X11/extensions/XI2.h&amp;gt;
 #include &amp;lt;X11/extensions/Xge.h&amp;gt;
+#include &amp;lt;X11/extensions/Xfixes.h&amp;gt; /* PointerBarrier */
 
 /*******************************************************************
  *
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -169,7 +170,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct
     int                 status;
 } XIGrabModifiers;
 
-typedef XID PointerBarrier;
 typedef unsigned int BarrierEventID;
 
 typedef struct
diff --git a/src/Makefile.am b/src/Makefile.am
index ee40753..fbbca45 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -70,6 +70,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; AM_CPPFLAGS = -I$(top_srcdir)/include \
               -I$(top_srcdir)/include/X11/extensions
 
 AM_CFLAGS = $(XI_CFLAGS) \
+            $(XFIXES_CFLAGS) \
             $(MALLOC_ZERO_CFLAGS) \
             $(CWARNFLAGS)
 
diff --git a/xi.pc.in b/xi.pc.in
index 3f05dd8..d97db20 100644
--- a/xi.pc.in
+++ b/xi.pc.in
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -7,6 +7,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Name: Xi
 Description: X Input Extension Library
 Version: &amp;lt; at &amp;gt;VERSION&amp;lt; at &amp;gt;
 Requires: inputproto
-Requires.private: x11 xext
+Requires.private: x11 xext xfixes
 Cflags: -I${includedir}
 Libs: -L${libdir} -lXi

commit 081e06492c0ffd003d4a0c34418c882332e58ac3
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Thu Mar 7 11:16:02 2013 +1000

    libXi 1.7
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/configure.ac b/configure.ac
index 0396aaf..ab8a63c 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,7 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libXi], [1.6.99.1],
+AC_INIT([libXi], [1.7],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([src/config.h])

commit 9b26b81477cf3486e5aa0ef8d81af68a0f04df1b
Author: Colin Walters &amp;lt;walters&amp;lt; at &amp;gt;verbum.org&amp;gt;
Date:   Wed Jan 4 17:37:06 2012 -0500

    autogen.sh: Implement GNOME Build API
    
    http://people.gnome.org/~walters/docs/build-api.txt
    
    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;

diff --git a/autogen.sh b/autogen.sh
index 904cd67..fc34bd5 100755
--- a/autogen.sh
+++ b/autogen.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -9,4 +9,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; cd $srcdir
 autoreconf -v --install || exit 1
 cd $ORIGDIR || exit $?
 
-$srcdir/configure --enable-maintainer-mode "$&amp;lt; at &amp;gt;"
+if test -z "$NOCONFIGURE"; then
+    $srcdir/configure "$&amp;lt; at &amp;gt;"
+fi

commit fb67e7c99b8e95fa667b90837d312a98fa0a8a64
Author: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
Date:   Tue Jan 15 14:28:48 2013 -0500

    configure: Remove AM_MAINTAINER_MODE
    
    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;

diff --git a/configure.ac b/configure.ac
index d2af70f..0396aaf 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -8,7 +8,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; AC_CONFIG_HEADERS([src/config.h])
 
 # Initialize Automake
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
 
 # Initialize libtool
 AC_PROG_LIBTOOL

commit 236be512c81b76dad711bec481e2139584006c4c
Author: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Mon Jan 14 18:32:05 2013 +0100

    Add missing XI_RawTouch* in XInputCopyCookie
    
    Looks like XI_RawTouch* events are missing in the big switch in this function.
    When running XIT tests for multitouch devices, several following errors appears:
    XInputCopyCookie: Failed to copy evtype 22
    XInputCopyCookie: Failed to copy evtype 23
    XInputCopyCookie: Failed to copy evtype 24
    
    Signed-off-by: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/src/XExtInt.c b/src/XExtInt.c
index 57d071d..507573b 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1484,6 +1484,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out
         case XI_RawButtonPress:
         case XI_RawButtonRelease:
         case XI_RawMotion:
+        case XI_RawTouchBegin:
+        case XI_RawTouchUpdate:
+        case XI_RawTouchEnd:
             ret = copyRawEvent(in, out);
             break;
         case XI_BarrierHit:


&lt;/pre&gt;</description>
    <dc:creator>Timo Aaltonen</dc:creator>
    <dc:date>2013-05-23T11:27:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110930">
    <title>libxi: Changes to 'ubuntu'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110930</link>
    <description>&lt;pre&gt; ChangeLog                                   |   71 ++++++++++++++++
 autogen.sh                                  |    4 
 configure.ac                                |    5 -
 debian/changelog                            |  119 ++++------------------------
 debian/control                              |    2 
 debian/patches/add-missing-xi_rawtouch.diff |   29 ------
 debian/patches/series                       |    2 
 include/X11/extensions/XInput2.h            |    2 
 src/Makefile.am                             |    1 
 src/XExtInt.c                               |    3 
 xi.pc.in                                    |    2 
 11 files changed, 103 insertions(+), 137 deletions(-)

New commits:
commit 6d61acf42b73e3ce8a5b8ea2de64e70bbe5320a1
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 14:27:03 2013 +0300

    release to saucy

diff --git a/debian/changelog b/debian/changelog
index fc9730f..8b03783 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+libxi (2:1.7.1-0ubuntu1) saucy; urgency=low
+
+  * Sync from unreleased debian git.
+
+ -- Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Thu, 23 May 2013 13:18:49 +0300
+
 libxi (2:1.7.1-1) UNRELEASED; urgency=low
 
   * New upstream release.

commit 517ac1a9130fa5a83ccbdc0605bf9fd91ec04612
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 13:18:28 2013 +0300

    drop upstreamed patch

diff --git a/debian/changelog b/debian/changelog
index 2a6ba02..2b028c1 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2,8 +2,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; libxi (2:1.7.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * control: Bump policy to 3.9.4, no changes.
-  * add-missing-xi_rawtouch.diff: Upstream commit to add XI_RawTouch in
-    XInputCopyCookie.
   * control: Bump x11proto-input-dev build-dep to 2.2.99.1.
   * libxi6.symbols: Added new symbols.
   * rules: Bump shlibs.
diff --git a/debian/patches/add-missing-xi_rawtouch.diff b/debian/patches/add-missing-xi_rawtouch.diff
deleted file mode 100644
index 4ee049e..0000000
--- a/debian/patches/add-missing-xi_rawtouch.diff
+++ /dev/null
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,29 +0,0 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-commit 236be512c81b76dad711bec481e2139584006c4c
-Author: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
-Date:   Mon Jan 14 18:32:05 2013 +0100
-
-    Add missing XI_RawTouch* in XInputCopyCookie
-    
-    Looks like XI_RawTouch* events are missing in the big switch in this function.
-    When running XIT tests for multitouch devices, several following errors appears:
-    XInputCopyCookie: Failed to copy evtype 22
-    XInputCopyCookie: Failed to copy evtype 23
-    XInputCopyCookie: Failed to copy evtype 24
-    
-    Signed-off-by: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
-    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
-
-diff --git a/src/XExtInt.c b/src/XExtInt.c
-index 57d071d..507573b 100644
---- a/src/XExtInt.c
-+++ b/src/XExtInt.c
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1484,6 +1484,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out
-         case XI_RawButtonPress:
-         case XI_RawButtonRelease:
-         case XI_RawMotion:
-+        case XI_RawTouchBegin:
-+        case XI_RawTouchUpdate:
-+        case XI_RawTouchEnd:
-             ret = copyRawEvent(in, out);
-             break;
-         case XI_BarrierHit:
diff --git a/debian/patches/series b/debian/patches/series
index 67f42a8..a82d1b4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1 +1 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-add-missing-xi_rawtouch.diff
+#placeholder

commit a0e42ce397fc79d549f33cd95acea568112aff66
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 13:14:07 2013 +0300

    fix the version

diff --git a/debian/changelog b/debian/changelog
index 52333eb..2a6ba02 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-libxi (2:1.7.1.1-1) UNRELEASED; urgency=low
+libxi (2:1.7.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * control: Bump policy to 3.9.4, no changes.

commit b01118776c622f478bee760127e41c87be8eb8c1
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 13:10:36 2013 +0300

    control: Add libfixes-dev to build-deps and libxi-dev Depends.

diff --git a/debian/changelog b/debian/changelog
index a4659f6..52333eb 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -7,6 +7,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; libxi (2:1.7.1.1-1) UNRELEASED; urgency=low
   * control: Bump x11proto-input-dev build-dep to 2.2.99.1.
   * libxi6.symbols: Added new symbols.
   * rules: Bump shlibs.
+  * control: Add libfixes-dev to build-deps and libxi-dev Depends.
 
  -- Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Wed, 06 Feb 2013 23:43:08 +0200
 
diff --git a/debian/control b/debian/control
index 6e7964f..3161890 100644
--- a/debian/control
+++ b/debian/control
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -10,6 +10,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Build-Depends:
  x11proto-input-dev (&amp;gt;= 2.2.99.1),
  libx11-dev (&amp;gt;= 2:1.4.99.1),
  libxext-dev (&amp;gt;= 2:1.1.1-3),
+ libxfixes-dev (&amp;gt;= 5),
  xmlto,
  asciidoc (&amp;gt;= 8.4.5),
  pkg-config,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -86,6 +87,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Depends:
  libxi6 (= ${binary:Version}),
  libx11-dev,
  libxext-dev,
+ libxfixes-dev,
  x11proto-input-dev (&amp;gt;= 2.1.99.6),
  xorg-sgml-doctools (&amp;gt;= 1:1.5),
 Replaces:

commit f99893ef9882fad6a41bda08cf6fecc7a265c8b5
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 13:08:41 2013 +0300

    update the changelogs

diff --git a/ChangeLog b/ChangeLog
index 40f5556..4e2a391 100644
--- a/ChangeLog
+++ b/ChangeLog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,74 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+commit 26cb4573cbb8808ce9d5c75c16bd613b2f03a368
+Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+Date:   Fri Apr 5 09:34:48 2013 +1000
+
+    libXi 1.7.1
+    
+    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+
+commit 0358bb20384b759d6d41dc44f3aed30583689d53
+Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+Date:   Tue Mar 26 14:46:06 2013 +1000
+
+    Require XFixes for PointerBarrier, remove duplicate typedef
+    
+    The PointerBarrier typedef is duplicate if a client includes both Xfixes.h
+    and XInput2.h.
+    
+    gcc 4.6 won't complain about that, but earlier versions do:
+    http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ce3765bf44e49ef0568a1ad4a0b7f807591d6412
+    
+    gcc 4.6 with -pedantic-errors shows:
+    /opt/xorg/include/X11/extensions/XInput2.h:172:13: error: redefinition of
+    typedef ‘PointerBarrier’ [-pedantic]
+    In file included from test.c:1:0:
+    /opt/xorg/include/X11/extensions/Xfixes.h:255:13: note: previous declaration
+    of ‘PointerBarrier’ was here
+    
+    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+    Reviewed-by: Julien Cristau &amp;lt;jcristau&amp;lt; at &amp;gt;debian.org&amp;gt;
+
+commit 081e06492c0ffd003d4a0c34418c882332e58ac3
+Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+Date:   Thu Mar 7 11:16:02 2013 +1000
+
+    libXi 1.7
+    
+    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+
+commit 9b26b81477cf3486e5aa0ef8d81af68a0f04df1b
+Author: Colin Walters &amp;lt;walters&amp;lt; at &amp;gt;verbum.org&amp;gt;
+Date:   Wed Jan 4 17:37:06 2012 -0500
+
+    autogen.sh: Implement GNOME Build API
+    
+    http://people.gnome.org/~walters/docs/build-api.txt
+    
+    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
+
+commit fb67e7c99b8e95fa667b90837d312a98fa0a8a64
+Author: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
+Date:   Tue Jan 15 14:28:48 2013 -0500
+
+    configure: Remove AM_MAINTAINER_MODE
+    
+    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
+
+commit 236be512c81b76dad711bec481e2139584006c4c
+Author: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
+Date:   Mon Jan 14 18:32:05 2013 +0100
+
+    Add missing XI_RawTouch* in XInputCopyCookie
+    
+    Looks like XI_RawTouch* events are missing in the big switch in this function.
+    When running XIT tests for multitouch devices, several following errors appears:
+    XInputCopyCookie: Failed to copy evtype 22
+    XInputCopyCookie: Failed to copy evtype 23
+    XInputCopyCookie: Failed to copy evtype 24
+    
+    Signed-off-by: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
+    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+
 commit db3b9ba3404f6d128e7826aa489a34fd206b20ea
 Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
 Date:   Wed Dec 26 15:29:43 2012 +1000
diff --git a/debian/changelog b/debian/changelog
index d2cbec0..a4659f6 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-libxi (2:1.6.99.1-1) UNRELEASED; urgency=low
+libxi (2:1.7.1.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * control: Bump policy to 3.9.4, no changes.

commit 26cb4573cbb8808ce9d5c75c16bd613b2f03a368
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Fri Apr 5 09:34:48 2013 +1000

    libXi 1.7.1
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/configure.ac b/configure.ac
index c2897d2..8dbca38 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,7 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libXi], [1.7],
+AC_INIT([libXi], [1.7.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([src/config.h])

commit 0358bb20384b759d6d41dc44f3aed30583689d53
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Tue Mar 26 14:46:06 2013 +1000

    Require XFixes for PointerBarrier, remove duplicate typedef
    
    The PointerBarrier typedef is duplicate if a client includes both Xfixes.h
    and XInput2.h.
    
    gcc 4.6 won't complain about that, but earlier versions do:
    http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ce3765bf44e49ef0568a1ad4a0b7f807591d6412
    
    gcc 4.6 with -pedantic-errors shows:
    /opt/xorg/include/X11/extensions/XInput2.h:172:13: error: redefinition of
    typedef ‘PointerBarrier’ [-pedantic]
    In file included from test.c:1:0:
    /opt/xorg/include/X11/extensions/Xfixes.h:255:13: note: previous declaration
    of ‘PointerBarrier’ was here
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
    Reviewed-by: Julien Cristau &amp;lt;jcristau&amp;lt; at &amp;gt;debian.org&amp;gt;

diff --git a/configure.ac b/configure.ac
index ab8a63c..c2897d2 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -28,6 +28,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; XORG_CHECK_MALLOC_ZERO
 
 # Obtain compiler/linker options for dependencies
 PKG_CHECK_MODULES(XI, [xproto &amp;gt;= 7.0.13] [x11 &amp;gt;= 1.4.99.1] [xextproto &amp;gt;= 7.0.3] [xext &amp;gt;= 1.0.99.1] [inputproto &amp;gt;= 2.2.99.1])
+# CFLAGS only for PointerBarrier typedef
+PKG_CHECK_MODULES(XFIXES, [xfixes &amp;gt;= 5])
 
 # Check for xmlto and asciidoc for man page conversion
 # (only needed by people building tarballs)
diff --git a/include/X11/extensions/XInput2.h b/include/X11/extensions/XInput2.h
index a746012..33670eb 100644
--- a/include/X11/extensions/XInput2.h
+++ b/include/X11/extensions/XInput2.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -30,6 +30,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;X11/Xlib.h&amp;gt;
 #include &amp;lt;X11/extensions/XI2.h&amp;gt;
 #include &amp;lt;X11/extensions/Xge.h&amp;gt;
+#include &amp;lt;X11/extensions/Xfixes.h&amp;gt; /* PointerBarrier */
 
 /*******************************************************************
  *
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -169,7 +170,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct
     int                 status;
 } XIGrabModifiers;
 
-typedef XID PointerBarrier;
 typedef unsigned int BarrierEventID;
 
 typedef struct
diff --git a/src/Makefile.am b/src/Makefile.am
index ee40753..fbbca45 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -70,6 +70,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; AM_CPPFLAGS = -I$(top_srcdir)/include \
               -I$(top_srcdir)/include/X11/extensions
 
 AM_CFLAGS = $(XI_CFLAGS) \
+            $(XFIXES_CFLAGS) \
             $(MALLOC_ZERO_CFLAGS) \
             $(CWARNFLAGS)
 
diff --git a/xi.pc.in b/xi.pc.in
index 3f05dd8..d97db20 100644
--- a/xi.pc.in
+++ b/xi.pc.in
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -7,6 +7,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Name: Xi
 Description: X Input Extension Library
 Version: &amp;lt; at &amp;gt;VERSION&amp;lt; at &amp;gt;
 Requires: inputproto
-Requires.private: x11 xext
+Requires.private: x11 xext xfixes
 Cflags: -I${includedir}
 Libs: -L${libdir} -lXi

commit 081e06492c0ffd003d4a0c34418c882332e58ac3
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Thu Mar 7 11:16:02 2013 +1000

    libXi 1.7
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/configure.ac b/configure.ac
index 0396aaf..ab8a63c 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,7 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libXi], [1.6.99.1],
+AC_INIT([libXi], [1.7],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([src/config.h])

commit 9b26b81477cf3486e5aa0ef8d81af68a0f04df1b
Author: Colin Walters &amp;lt;walters&amp;lt; at &amp;gt;verbum.org&amp;gt;
Date:   Wed Jan 4 17:37:06 2012 -0500

    autogen.sh: Implement GNOME Build API
    
    http://people.gnome.org/~walters/docs/build-api.txt
    
    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;

diff --git a/autogen.sh b/autogen.sh
index 904cd67..fc34bd5 100755
--- a/autogen.sh
+++ b/autogen.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -9,4 +9,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; cd $srcdir
 autoreconf -v --install || exit 1
 cd $ORIGDIR || exit $?
 
-$srcdir/configure --enable-maintainer-mode "$&amp;lt; at &amp;gt;"
+if test -z "$NOCONFIGURE"; then
+    $srcdir/configure "$&amp;lt; at &amp;gt;"
+fi

commit fb67e7c99b8e95fa667b90837d312a98fa0a8a64
Author: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
Date:   Tue Jan 15 14:28:48 2013 -0500

    configure: Remove AM_MAINTAINER_MODE
    
    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;

diff --git a/configure.ac b/configure.ac
index d2af70f..0396aaf 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -8,7 +8,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; AC_CONFIG_HEADERS([src/config.h])
 
 # Initialize Automake
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
 
 # Initialize libtool
 AC_PROG_LIBTOOL

commit 236be512c81b76dad711bec481e2139584006c4c
Author: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Mon Jan 14 18:32:05 2013 +0100

    Add missing XI_RawTouch* in XInputCopyCookie
    
    Looks like XI_RawTouch* events are missing in the big switch in this function.
    When running XIT tests for multitouch devices, several following errors appears:
    XInputCopyCookie: Failed to copy evtype 22
    XInputCopyCookie: Failed to copy evtype 23
    XInputCopyCookie: Failed to copy evtype 24
    
    Signed-off-by: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/src/XExtInt.c b/src/XExtInt.c
index 57d071d..507573b 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1484,6 +1484,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out
         case XI_RawButtonPress:
         case XI_RawButtonRelease:
         case XI_RawMotion:
+        case XI_RawTouchBegin:
+        case XI_RawTouchUpdate:
+        case XI_RawTouchEnd:
             ret = copyRawEvent(in, out);
             break;
         case XI_BarrierHit:


&lt;/pre&gt;</description>
    <dc:creator>Timo Aaltonen</dc:creator>
    <dc:date>2013-05-23T11:27:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110929">
    <title>libxi: Changes to 'debian-experimental'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110929</link>
    <description>&lt;pre&gt; ChangeLog                                   |   71 ++++++++++++++++++++++++++++
 autogen.sh                                  |    4 +
 configure.ac                                |    5 +
 debian/changelog                            |    5 -
 debian/control                              |    2 
 debian/patches/add-missing-xi_rawtouch.diff |   29 -----------
 debian/patches/series                       |    2 
 include/X11/extensions/XInput2.h            |    2 
 src/Makefile.am                             |    1 
 src/XExtInt.c                               |    3 +
 xi.pc.in                                    |    2 
 11 files changed, 88 insertions(+), 38 deletions(-)

New commits:
commit 517ac1a9130fa5a83ccbdc0605bf9fd91ec04612
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 13:18:28 2013 +0300

    drop upstreamed patch

diff --git a/debian/changelog b/debian/changelog
index 2a6ba02..2b028c1 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2,8 +2,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; libxi (2:1.7.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * control: Bump policy to 3.9.4, no changes.
-  * add-missing-xi_rawtouch.diff: Upstream commit to add XI_RawTouch in
-    XInputCopyCookie.
   * control: Bump x11proto-input-dev build-dep to 2.2.99.1.
   * libxi6.symbols: Added new symbols.
   * rules: Bump shlibs.
diff --git a/debian/patches/add-missing-xi_rawtouch.diff b/debian/patches/add-missing-xi_rawtouch.diff
deleted file mode 100644
index 4ee049e..0000000
--- a/debian/patches/add-missing-xi_rawtouch.diff
+++ /dev/null
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,29 +0,0 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-commit 236be512c81b76dad711bec481e2139584006c4c
-Author: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
-Date:   Mon Jan 14 18:32:05 2013 +0100
-
-    Add missing XI_RawTouch* in XInputCopyCookie
-    
-    Looks like XI_RawTouch* events are missing in the big switch in this function.
-    When running XIT tests for multitouch devices, several following errors appears:
-    XInputCopyCookie: Failed to copy evtype 22
-    XInputCopyCookie: Failed to copy evtype 23
-    XInputCopyCookie: Failed to copy evtype 24
-    
-    Signed-off-by: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
-    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
-
-diff --git a/src/XExtInt.c b/src/XExtInt.c
-index 57d071d..507573b 100644
---- a/src/XExtInt.c
-+++ b/src/XExtInt.c
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1484,6 +1484,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out
-         case XI_RawButtonPress:
-         case XI_RawButtonRelease:
-         case XI_RawMotion:
-+        case XI_RawTouchBegin:
-+        case XI_RawTouchUpdate:
-+        case XI_RawTouchEnd:
-             ret = copyRawEvent(in, out);
-             break;
-         case XI_BarrierHit:
diff --git a/debian/patches/series b/debian/patches/series
index 67f42a8..a82d1b4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1 +1 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-add-missing-xi_rawtouch.diff
+#placeholder

commit a0e42ce397fc79d549f33cd95acea568112aff66
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 13:14:07 2013 +0300

    fix the version

diff --git a/debian/changelog b/debian/changelog
index 52333eb..2a6ba02 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-libxi (2:1.7.1.1-1) UNRELEASED; urgency=low
+libxi (2:1.7.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * control: Bump policy to 3.9.4, no changes.

commit b01118776c622f478bee760127e41c87be8eb8c1
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 13:10:36 2013 +0300

    control: Add libfixes-dev to build-deps and libxi-dev Depends.

diff --git a/debian/changelog b/debian/changelog
index a4659f6..52333eb 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -7,6 +7,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; libxi (2:1.7.1.1-1) UNRELEASED; urgency=low
   * control: Bump x11proto-input-dev build-dep to 2.2.99.1.
   * libxi6.symbols: Added new symbols.
   * rules: Bump shlibs.
+  * control: Add libfixes-dev to build-deps and libxi-dev Depends.
 
  -- Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Wed, 06 Feb 2013 23:43:08 +0200
 
diff --git a/debian/control b/debian/control
index 6e7964f..3161890 100644
--- a/debian/control
+++ b/debian/control
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -10,6 +10,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Build-Depends:
  x11proto-input-dev (&amp;gt;= 2.2.99.1),
  libx11-dev (&amp;gt;= 2:1.4.99.1),
  libxext-dev (&amp;gt;= 2:1.1.1-3),
+ libxfixes-dev (&amp;gt;= 5),
  xmlto,
  asciidoc (&amp;gt;= 8.4.5),
  pkg-config,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -86,6 +87,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Depends:
  libxi6 (= ${binary:Version}),
  libx11-dev,
  libxext-dev,
+ libxfixes-dev,
  x11proto-input-dev (&amp;gt;= 2.1.99.6),
  xorg-sgml-doctools (&amp;gt;= 1:1.5),
 Replaces:

commit f99893ef9882fad6a41bda08cf6fecc7a265c8b5
Author: Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;
Date:   Thu May 23 13:08:41 2013 +0300

    update the changelogs

diff --git a/ChangeLog b/ChangeLog
index 40f5556..4e2a391 100644
--- a/ChangeLog
+++ b/ChangeLog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,74 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+commit 26cb4573cbb8808ce9d5c75c16bd613b2f03a368
+Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+Date:   Fri Apr 5 09:34:48 2013 +1000
+
+    libXi 1.7.1
+    
+    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+
+commit 0358bb20384b759d6d41dc44f3aed30583689d53
+Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+Date:   Tue Mar 26 14:46:06 2013 +1000
+
+    Require XFixes for PointerBarrier, remove duplicate typedef
+    
+    The PointerBarrier typedef is duplicate if a client includes both Xfixes.h
+    and XInput2.h.
+    
+    gcc 4.6 won't complain about that, but earlier versions do:
+    http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ce3765bf44e49ef0568a1ad4a0b7f807591d6412
+    
+    gcc 4.6 with -pedantic-errors shows:
+    /opt/xorg/include/X11/extensions/XInput2.h:172:13: error: redefinition of
+    typedef ‘PointerBarrier’ [-pedantic]
+    In file included from test.c:1:0:
+    /opt/xorg/include/X11/extensions/Xfixes.h:255:13: note: previous declaration
+    of ‘PointerBarrier’ was here
+    
+    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+    Reviewed-by: Julien Cristau &amp;lt;jcristau&amp;lt; at &amp;gt;debian.org&amp;gt;
+
+commit 081e06492c0ffd003d4a0c34418c882332e58ac3
+Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+Date:   Thu Mar 7 11:16:02 2013 +1000
+
+    libXi 1.7
+    
+    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+
+commit 9b26b81477cf3486e5aa0ef8d81af68a0f04df1b
+Author: Colin Walters &amp;lt;walters&amp;lt; at &amp;gt;verbum.org&amp;gt;
+Date:   Wed Jan 4 17:37:06 2012 -0500
+
+    autogen.sh: Implement GNOME Build API
+    
+    http://people.gnome.org/~walters/docs/build-api.txt
+    
+    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
+
+commit fb67e7c99b8e95fa667b90837d312a98fa0a8a64
+Author: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
+Date:   Tue Jan 15 14:28:48 2013 -0500
+
+    configure: Remove AM_MAINTAINER_MODE
+    
+    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
+
+commit 236be512c81b76dad711bec481e2139584006c4c
+Author: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
+Date:   Mon Jan 14 18:32:05 2013 +0100
+
+    Add missing XI_RawTouch* in XInputCopyCookie
+    
+    Looks like XI_RawTouch* events are missing in the big switch in this function.
+    When running XIT tests for multitouch devices, several following errors appears:
+    XInputCopyCookie: Failed to copy evtype 22
+    XInputCopyCookie: Failed to copy evtype 23
+    XInputCopyCookie: Failed to copy evtype 24
+    
+    Signed-off-by: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
+    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
+
 commit db3b9ba3404f6d128e7826aa489a34fd206b20ea
 Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
 Date:   Wed Dec 26 15:29:43 2012 +1000
diff --git a/debian/changelog b/debian/changelog
index d2cbec0..a4659f6 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-libxi (2:1.6.99.1-1) UNRELEASED; urgency=low
+libxi (2:1.7.1.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * control: Bump policy to 3.9.4, no changes.

commit 26cb4573cbb8808ce9d5c75c16bd613b2f03a368
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Fri Apr 5 09:34:48 2013 +1000

    libXi 1.7.1
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/configure.ac b/configure.ac
index c2897d2..8dbca38 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,7 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libXi], [1.7],
+AC_INIT([libXi], [1.7.1],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([src/config.h])

commit 0358bb20384b759d6d41dc44f3aed30583689d53
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Tue Mar 26 14:46:06 2013 +1000

    Require XFixes for PointerBarrier, remove duplicate typedef
    
    The PointerBarrier typedef is duplicate if a client includes both Xfixes.h
    and XInput2.h.
    
    gcc 4.6 won't complain about that, but earlier versions do:
    http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ce3765bf44e49ef0568a1ad4a0b7f807591d6412
    
    gcc 4.6 with -pedantic-errors shows:
    /opt/xorg/include/X11/extensions/XInput2.h:172:13: error: redefinition of
    typedef ‘PointerBarrier’ [-pedantic]
    In file included from test.c:1:0:
    /opt/xorg/include/X11/extensions/Xfixes.h:255:13: note: previous declaration
    of ‘PointerBarrier’ was here
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
    Reviewed-by: Julien Cristau &amp;lt;jcristau&amp;lt; at &amp;gt;debian.org&amp;gt;

diff --git a/configure.ac b/configure.ac
index ab8a63c..c2897d2 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -28,6 +28,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; XORG_CHECK_MALLOC_ZERO
 
 # Obtain compiler/linker options for dependencies
 PKG_CHECK_MODULES(XI, [xproto &amp;gt;= 7.0.13] [x11 &amp;gt;= 1.4.99.1] [xextproto &amp;gt;= 7.0.3] [xext &amp;gt;= 1.0.99.1] [inputproto &amp;gt;= 2.2.99.1])
+# CFLAGS only for PointerBarrier typedef
+PKG_CHECK_MODULES(XFIXES, [xfixes &amp;gt;= 5])
 
 # Check for xmlto and asciidoc for man page conversion
 # (only needed by people building tarballs)
diff --git a/include/X11/extensions/XInput2.h b/include/X11/extensions/XInput2.h
index a746012..33670eb 100644
--- a/include/X11/extensions/XInput2.h
+++ b/include/X11/extensions/XInput2.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -30,6 +30,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;X11/Xlib.h&amp;gt;
 #include &amp;lt;X11/extensions/XI2.h&amp;gt;
 #include &amp;lt;X11/extensions/Xge.h&amp;gt;
+#include &amp;lt;X11/extensions/Xfixes.h&amp;gt; /* PointerBarrier */
 
 /*******************************************************************
  *
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -169,7 +170,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct
     int                 status;
 } XIGrabModifiers;
 
-typedef XID PointerBarrier;
 typedef unsigned int BarrierEventID;
 
 typedef struct
diff --git a/src/Makefile.am b/src/Makefile.am
index ee40753..fbbca45 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -70,6 +70,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; AM_CPPFLAGS = -I$(top_srcdir)/include \
               -I$(top_srcdir)/include/X11/extensions
 
 AM_CFLAGS = $(XI_CFLAGS) \
+            $(XFIXES_CFLAGS) \
             $(MALLOC_ZERO_CFLAGS) \
             $(CWARNFLAGS)
 
diff --git a/xi.pc.in b/xi.pc.in
index 3f05dd8..d97db20 100644
--- a/xi.pc.in
+++ b/xi.pc.in
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -7,6 +7,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Name: Xi
 Description: X Input Extension Library
 Version: &amp;lt; at &amp;gt;VERSION&amp;lt; at &amp;gt;
 Requires: inputproto
-Requires.private: x11 xext
+Requires.private: x11 xext xfixes
 Cflags: -I${includedir}
 Libs: -L${libdir} -lXi

commit 081e06492c0ffd003d4a0c34418c882332e58ac3
Author: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;
Date:   Thu Mar 7 11:16:02 2013 +1000

    libXi 1.7
    
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/configure.ac b/configure.ac
index 0396aaf..ab8a63c 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,7 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libXi], [1.6.99.1],
+AC_INIT([libXi], [1.7],
 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([src/config.h])

commit 9b26b81477cf3486e5aa0ef8d81af68a0f04df1b
Author: Colin Walters &amp;lt;walters&amp;lt; at &amp;gt;verbum.org&amp;gt;
Date:   Wed Jan 4 17:37:06 2012 -0500

    autogen.sh: Implement GNOME Build API
    
    http://people.gnome.org/~walters/docs/build-api.txt
    
    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;

diff --git a/autogen.sh b/autogen.sh
index 904cd67..fc34bd5 100755
--- a/autogen.sh
+++ b/autogen.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -9,4 +9,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; cd $srcdir
 autoreconf -v --install || exit 1
 cd $ORIGDIR || exit $?
 
-$srcdir/configure --enable-maintainer-mode "$&amp;lt; at &amp;gt;"
+if test -z "$NOCONFIGURE"; then
+    $srcdir/configure "$&amp;lt; at &amp;gt;"
+fi

commit fb67e7c99b8e95fa667b90837d312a98fa0a8a64
Author: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;
Date:   Tue Jan 15 14:28:48 2013 -0500

    configure: Remove AM_MAINTAINER_MODE
    
    Signed-off-by: Adam Jackson &amp;lt;ajax&amp;lt; at &amp;gt;redhat.com&amp;gt;

diff --git a/configure.ac b/configure.ac
index d2af70f..0396aaf 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -8,7 +8,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; AC_CONFIG_HEADERS([src/config.h])
 
 # Initialize Automake
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
 
 # Initialize libtool
 AC_PROG_LIBTOOL

commit 236be512c81b76dad711bec481e2139584006c4c
Author: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Mon Jan 14 18:32:05 2013 +0100

    Add missing XI_RawTouch* in XInputCopyCookie
    
    Looks like XI_RawTouch* events are missing in the big switch in this function.
    When running XIT tests for multitouch devices, several following errors appears:
    XInputCopyCookie: Failed to copy evtype 22
    XInputCopyCookie: Failed to copy evtype 23
    XInputCopyCookie: Failed to copy evtype 24
    
    Signed-off-by: Benjamin Tissoires &amp;lt;benjamin.tissoires&amp;lt; at &amp;gt;gmail.com&amp;gt;
    Signed-off-by: Peter Hutterer &amp;lt;peter.hutterer&amp;lt; at &amp;gt;who-t.net&amp;gt;

diff --git a/src/XExtInt.c b/src/XExtInt.c
index 57d071d..507573b 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1484,6 +1484,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out
         case XI_RawButtonPress:
         case XI_RawButtonRelease:
         case XI_RawMotion:
+        case XI_RawTouchBegin:
+        case XI_RawTouchUpdate:
+        case XI_RawTouchEnd:
             ret = copyRawEvent(in, out);
             break;
         case XI_BarrierHit:


&lt;/pre&gt;</description>
    <dc:creator>Timo Aaltonen</dc:creator>
    <dc:date>2013-05-23T11:27:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110928">
    <title>mesa: Changes to 'ubuntu-raring'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110928</link>
    <description>&lt;pre&gt; debian/changelog |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit aa72c1d7c32007c06d2478524ca08837e5050ba1
Author: Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;canonical.com&amp;gt;
Date:   Thu May 23 11:56:57 2013 +0200

    New upstream micro-release. (LP: #1183269)
    
    * New upstream micro-release. (LP: #1183269)
    * Drop revert-a64c1eb9b110.diff; it no longer applies.
      - The patch reverted the regression where the unity dash appeared
        very slowly, but should no longer be needed with the upstream fixes.

diff --git a/debian/changelog b/debian/changelog
index ab966cd..5d5bc9e 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+mesa (9.1.3-0ubuntu0.1) raring-proposed; urgency=low
+
+  * New upstream micro-release. (LP: #1183269)
+  * Drop revert-a64c1eb9b110.diff; it no longer applies.
+    - The patch reverted the regression where the unity dash appeared
+      very slowly, but should no longer be needed with the upstream fixes.
+
+ -- Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Thu, 23 May 2013 11:33:44 +0200
+
 mesa (9.1.3-0ubuntu1) saucy; urgency=low
 
   [ Robert Hooker ]


&lt;/pre&gt;</description>
    <dc:creator>Maarten Lankhorst</dc:creator>
    <dc:date>2013-05-23T09:57:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110927">
    <title>mesa: Changes to 'ubuntu-raring'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110927</link>
    <description>&lt;pre&gt;New branch 'ubuntu-raring' available with the following commits:


&lt;/pre&gt;</description>
    <dc:creator>Maarten Lankhorst</dc:creator>
    <dc:date>2013-05-23T09:56:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110926">
    <title>mesa: Changes to 'ubuntu'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110926</link>
    <description>&lt;pre&gt; Makefile.am                                               |    2 
 bin/.cherry-ignore                                        |    6 
 bin/bugzilla_mesa.sh                                      |   52 +
 bin/get-pick-list.sh                                      |    6 
 bin/shortlog_mesa.sh                                      |    6 
 configure.ac                                              |    2 
 debian/changelog                                          |   71 -
 debian/patches/revert-a64c1eb9b110.diff                   |  392 ---------
 debian/patches/series                                     |    2 
 docs/relnotes-9.1.2.html                                  |    4 
 docs/relnotes-9.1.3.html                                  |  228 +++++
 include/pci_ids/r600_pci_ids.h                            |    2 
 include/pci_ids/radeonsi_pci_ids.h                        |    3 
 src/egl/drivers/dri2/egl_dri2.c                           |    6 
 src/egl/drivers/dri2/platform_x11.c                       |   21 
 src/gallium/auxiliary/gallivm/lp_bld_sample.c             |    2 
 src/gallium/auxiliary/util/u_blitter.c                    |  113 ++
 src/gallium/auxiliary/util/u_blitter.h                    |   18 
 src/gallium/drivers/nvc0/nvc0_video.c                     |    4 
 src/gallium/drivers/r600/r600_blit.c                      |   31 
 src/gallium/drivers/r600/r600_pipe.c                      |   39 
 src/gallium/drivers/r600/r600_pipe.h                      |    7 
 src/gallium/drivers/r600/r600_shader.c                    |   51 -
 src/gallium/drivers/r600/r600_texture.c                   |   10 
 src/gallium/drivers/radeonsi/r600_blit.c                  |   18 
 src/gallium/include/state_tracker/st_api.h                |    1 
 src/gallium/state_trackers/dri/common/dri_context.c       |    2 
 src/gallium/state_trackers/dri/common/dri_screen.c        |    3 
 src/gallium/winsys/sw/xlib/xlib_sw_winsys.c               |    6 
 src/glsl/ast_to_hir.cpp                                   |   15 
 src/glsl/ir_constant_expression.cpp                       |    2 
 src/glsl/link_varyings.cpp                                |   36 
 src/glsl/lower_jumps.cpp                                  |    4 
 src/glsl/lower_packed_varyings.cpp                        |    8 
 src/glsl/ralloc.c                                         |    2 
 src/glx/glxcmds.c                                         |    4 
 src/mesa/drivers/dri/i965/brw_context.h                   |   26 
 src/mesa/drivers/dri/i965/brw_fs.cpp                      |   49 -
 src/mesa/drivers/dri/i965/brw_fs.h                        |    3 
 src/mesa/drivers/dri/i965/brw_fs_cse.cpp                  |   43 -
 src/mesa/drivers/dri/i965/brw_fs_emit.cpp                 |    1 
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp              |   14 
 src/mesa/drivers/dri/i965/brw_lower_texture_gradients.cpp |   27 
 src/mesa/drivers/dri/i965/brw_misc_state.c                |  195 ++--
 src/mesa/drivers/dri/i965/brw_shader.cpp                  |    3 
 src/mesa/drivers/dri/i965/brw_state.h                     |    5 
 src/mesa/drivers/dri/i965/brw_vec4_emit.cpp               |    4 
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp            |   10 
 src/mesa/drivers/dri/i965/brw_vs_surface_state.c          |    7 
 src/mesa/drivers/dri/i965/brw_vtbl.c                      |    2 
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c          |   18 
 src/mesa/drivers/dri/i965/gen6_blorp.cpp                  |   35 
 src/mesa/drivers/dri/i965/gen6_sol.c                      |   11 
 src/mesa/drivers/dri/i965/gen7_blorp.cpp                  |  103 ++
 src/mesa/drivers/dri/i965/gen7_misc_state.c               |   93 --
 src/mesa/drivers/dri/i965/gen7_sol_state.c                |   18 
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c         |    8 
 src/mesa/drivers/dri/intel/intel_context.h                |   18 
 src/mesa/drivers/dri/intel/intel_fbo.c                    |    4 
 src/mesa/drivers/dri/intel/intel_mipmap_tree.c            |    6 
 src/mesa/drivers/dri/intel/intel_tex.c                    |    4 
 src/mesa/main/context.c                                   |    2 
 src/mesa/main/extensions.c                                |    4 
 src/mesa/main/format_unpack.c                             |  597 +++++++++++++-
 src/mesa/main/get.c                                       |   19 
 src/mesa/main/get_hash_params.py                          |   14 
 src/mesa/main/hash.c                                      |    4 
 src/mesa/main/imports.h                                   |    6 
 src/mesa/main/mtypes.h                                    |    1 
 src/mesa/main/shaderapi.c                                 |    6 
 src/mesa/main/stencil.c                                   |    5 
 src/mesa/main/version.h                                   |    4 
 src/mesa/program/prog_cache.c                             |   11 
 src/mesa/state_tracker/st_atom_constbuf.c                 |    1 
 src/mesa/state_tracker/st_atom_depth.c                    |    2 
 src/mesa/state_tracker/st_extensions.c                    |    3 
 src/mesa/swrast/s_blit.c                                  |   49 -
 77 files changed, 1823 insertions(+), 791 deletions(-)

New commits:
commit a6571e959278e6326bcbec6d4c8ecdb67b4ca6f8
Author: Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;canonical.com&amp;gt;
Date:   Thu May 23 10:06:40 2013 +0200

    Release to saucy
    
    * New upstream bug-fix release.
    * Drop upstream patches:
       - 0001-nv50-fix-3D-render-target-setup.patch
       - 0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch
       - 0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch
       - 0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch
       - 100_no_abi_tag.patch
       - 119-libllvmradeon-link.patch
       - vbo-fix-crash.diff
    * debian/patches/117-static-gallium.patch: Refresh for minor change
      in 9.1.2

diff --git a/debian/changelog b/debian/changelog
index 67feeb9..ab966cd 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+mesa (9.1.3-0ubuntu1) saucy; urgency=low
+
+  [ Robert Hooker ]
+  * New upstream bug-fix release.
+  * Drop upstream patches:
+     - 0001-nv50-fix-3D-render-target-setup.patch
+     - 0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch
+     - 0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch
+     - 0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch
+     - 100_no_abi_tag.patch
+     - 119-libllvmradeon-link.patch
+     - vbo-fix-crash.diff
+  * debian/patches/117-static-gallium.patch: Refresh for minor change
+    in 9.1.2
+
+ -- Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Thu, 23 May 2013 10:06:41 +0200
+
 mesa (9.1.3-1) UNRELEASED; urgency=low
 
   * New upstream release.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -66,22 +83,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mesa (9.1.3-1) UNRELEASED; urgency=low
 
  -- Julien Cristau &amp;lt;jcristau&amp;lt; at &amp;gt;debian.org&amp;gt;  Fri, 03 Aug 2012 23:17:16 +0200
 
-mesa (9.1.2-0ubuntu1) UNRELEASED; urgency=low
-
-  * New upstream bug-fix release.
-  * Drop upstream patches:
-     - 0001-nv50-fix-3D-render-target-setup.patch
-     - 0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch
-     - 0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch
-     - 0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch
-     - 100_no_abi_tag.patch
-     - 119-libllvmradeon-link.patch
-     - vbo-fix-crash.diff
-  * debian/patches/117-static-gallium.patch: Refresh for minor change
-    in 9.1.2
-
- -- Robert Hooker &amp;lt;sarvatt&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Wed, 01 May 2013 16:40:16 -0400
-
 mesa (9.1.1-0ubuntu3) raring; urgency=low
 
   * Hide x86sse symbols on i386, preventing conflicts. (LP: #1170074)
diff --git a/debian/patches/revert-a64c1eb9b110.diff b/debian/patches/revert-a64c1eb9b110.diff
deleted file mode 100644
index 950157f..0000000
--- a/debian/patches/revert-a64c1eb9b110.diff
+++ /dev/null
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,392 +0,0 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
---- a/src/mesa/drivers/dri/i965/brw_fs.cpp
-+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -219,45 +219,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fs_visitor::CMP(fs_reg dst, fs_reg src0,
-    return inst;
- }
- 
--exec_list
--fs_visitor::VARYING_PULL_CONSTANT_LOAD(fs_reg dst, fs_reg surf_index,
&lt;/pre&gt;</description>
    <dc:creator>Maarten Lankhorst</dc:creator>
    <dc:date>2013-05-23T08:38:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110925">
    <title>mesa: Changes to 'upstream-experimental'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110925</link>
    <description>&lt;pre&gt; Makefile.am                                               |    2 
 bin/.cherry-ignore                                        |    6 
 bin/bugzilla_mesa.sh                                      |   52 +
 bin/get-pick-list.sh                                      |    6 
 bin/shortlog_mesa.sh                                      |    6 
 configure.ac                                              |    2 
 docs/relnotes-9.1.2.html                                  |    4 
 docs/relnotes-9.1.3.html                                  |  228 +++++
 include/pci_ids/r600_pci_ids.h                            |    2 
 include/pci_ids/radeonsi_pci_ids.h                        |    3 
 src/egl/drivers/dri2/egl_dri2.c                           |    6 
 src/egl/drivers/dri2/platform_x11.c                       |   21 
 src/gallium/auxiliary/gallivm/lp_bld_sample.c             |    2 
 src/gallium/auxiliary/util/u_blitter.c                    |  113 ++
 src/gallium/auxiliary/util/u_blitter.h                    |   18 
 src/gallium/drivers/nvc0/nvc0_video.c                     |    4 
 src/gallium/drivers/r600/r600_blit.c                      |   31 
 src/gallium/drivers/r600/r600_pipe.c                      |   39 
 src/gallium/drivers/r600/r600_pipe.h                      |    7 
 src/gallium/drivers/r600/r600_shader.c                    |   51 -
 src/gallium/drivers/r600/r600_texture.c                   |   10 
 src/gallium/drivers/radeonsi/r600_blit.c                  |   18 
 src/gallium/include/state_tracker/st_api.h                |    1 
 src/gallium/state_trackers/dri/common/dri_context.c       |    2 
 src/gallium/state_trackers/dri/common/dri_screen.c        |    3 
 src/gallium/winsys/sw/xlib/xlib_sw_winsys.c               |    6 
 src/glsl/ast_to_hir.cpp                                   |   15 
 src/glsl/ir_constant_expression.cpp                       |    2 
 src/glsl/link_varyings.cpp                                |   36 
 src/glsl/lower_jumps.cpp                                  |    4 
 src/glsl/lower_packed_varyings.cpp                        |    8 
 src/glsl/ralloc.c                                         |    2 
 src/glx/glxcmds.c                                         |    4 
 src/mesa/drivers/dri/i965/brw_context.h                   |   26 
 src/mesa/drivers/dri/i965/brw_fs.cpp                      |   49 -
 src/mesa/drivers/dri/i965/brw_fs.h                        |    3 
 src/mesa/drivers/dri/i965/brw_fs_cse.cpp                  |   43 -
 src/mesa/drivers/dri/i965/brw_fs_emit.cpp                 |    1 
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp              |   14 
 src/mesa/drivers/dri/i965/brw_lower_texture_gradients.cpp |   27 
 src/mesa/drivers/dri/i965/brw_misc_state.c                |  195 ++--
 src/mesa/drivers/dri/i965/brw_shader.cpp                  |    3 
 src/mesa/drivers/dri/i965/brw_state.h                     |    5 
 src/mesa/drivers/dri/i965/brw_vec4_emit.cpp               |    4 
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp            |   10 
 src/mesa/drivers/dri/i965/brw_vs_surface_state.c          |    7 
 src/mesa/drivers/dri/i965/brw_vtbl.c                      |    2 
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c          |   18 
 src/mesa/drivers/dri/i965/gen6_blorp.cpp                  |   35 
 src/mesa/drivers/dri/i965/gen6_sol.c                      |   11 
 src/mesa/drivers/dri/i965/gen7_blorp.cpp                  |  103 ++
 src/mesa/drivers/dri/i965/gen7_misc_state.c               |   93 --
 src/mesa/drivers/dri/i965/gen7_sol_state.c                |   18 
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c         |    8 
 src/mesa/drivers/dri/intel/intel_context.h                |   18 
 src/mesa/drivers/dri/intel/intel_fbo.c                    |    4 
 src/mesa/drivers/dri/intel/intel_mipmap_tree.c            |    6 
 src/mesa/drivers/dri/intel/intel_tex.c                    |    4 
 src/mesa/main/context.c                                   |    2 
 src/mesa/main/extensions.c                                |    4 
 src/mesa/main/format_unpack.c                             |  597 +++++++++++++-
 src/mesa/main/get.c                                       |   19 
 src/mesa/main/get_hash_params.py                          |   14 
 src/mesa/main/hash.c                                      |    4 
 src/mesa/main/imports.h                                   |    6 
 src/mesa/main/mtypes.h                                    |    1 
 src/mesa/main/shaderapi.c                                 |    6 
 src/mesa/main/stencil.c                                   |    5 
 src/mesa/main/version.h                                   |    4 
 src/mesa/program/prog_cache.c                             |   11 
 src/mesa/state_tracker/st_atom_constbuf.c                 |    1 
 src/mesa/state_tracker/st_atom_depth.c                    |    2 
 src/mesa/state_tracker/st_extensions.c                    |    3 
 src/mesa/swrast/s_blit.c                                  |   49 -
 74 files changed, 1790 insertions(+), 359 deletions(-)

New commits:
commit f32ec82a8cfcabc5b7596796f36afe7986651f02
Author: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;
Date:   Tue May 21 12:59:17 2013 -0700

    docs: 9.1.3 release notes
    
    Signed-off-by: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;

diff --git a/docs/relnotes-9.1.3.html b/docs/relnotes-9.1.3.html
new file mode 100644
index 0000000..cff9370
--- /dev/null
+++ b/docs/relnotes-9.1.3.html
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,228 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;
+&amp;lt;html lang="en"&amp;gt;
+&amp;lt;head&amp;gt;
+  &amp;lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&amp;gt;
+  &amp;lt;title&amp;gt;Mesa Release Notes&amp;lt;/title&amp;gt;
+  &amp;lt;link rel="stylesheet" type="text/css" href="mesa.css"&amp;gt;
+&amp;lt;/head&amp;gt;
+&amp;lt;body&amp;gt;
+
+&amp;lt;div class="header"&amp;gt;
+  &amp;lt;h1&amp;gt;The Mesa 3D Graphics Library&amp;lt;/h1&amp;gt;
+&amp;lt;/div&amp;gt;
+
+&amp;lt;iframe src="contents.html"&amp;gt;&amp;lt;/iframe&amp;gt;
+&amp;lt;div class="content"&amp;gt;
+
+&amp;lt;h1&amp;gt;Mesa 9.1.3 Release Notes / May 21st, 2013&amp;lt;/h1&amp;gt;
+
+&amp;lt;p&amp;gt;
+Mesa 9.1.3 is a bug fix release which fixes bugs found since the 9.1.1 release.
+&amp;lt;/p&amp;gt;
+&amp;lt;p&amp;gt;
+Mesa 9.1 implements the OpenGL 3.1 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.1.  OpenGL
+3.1 is &amp;lt;strong&amp;gt;only&amp;lt;/strong&amp;gt; available if requested at context creation
+because GL_ARB_compatibility is not supported.
+&amp;lt;/p&amp;gt;
+
+&amp;lt;h2&amp;gt;MD5 checksums&amp;lt;/h2&amp;gt;
+&amp;lt;pre&amp;gt;
+TBD
+&amp;lt;/pre&amp;gt;
+
+&amp;lt;h2&amp;gt;New features&amp;lt;/h2&amp;gt;
+&amp;lt;p&amp;gt;None.&amp;lt;/p&amp;gt;
+
+&amp;lt;h2&amp;gt;Bug fixes&amp;lt;/h2&amp;gt;
+
+&amp;lt;p&amp;gt;This list is likely incomplete.&amp;lt;/p&amp;gt;
+
+&amp;lt;ul&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=39251"&amp;gt;Bug 39251&amp;lt;/a&amp;gt; - Second Life viewers from release 2.7.4.235167 to the last  3.4.0.264911 crash on start.&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=47478"&amp;gt;Bug 47478&amp;lt;/a&amp;gt; - [wine] GLX_DONT_CARE does not work for GLX_DRAWABLE_TYPE or GLX_RENDER_TYPE&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=56416"&amp;gt;Bug 56416&amp;lt;/a&amp;gt; - [SNB bisected] SNB hang with rc6 and hiz on glxgears (and other GL apps) immediately after xinit.&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=57436"&amp;gt;Bug 57436&amp;lt;/a&amp;gt; - [GLSL1.40 IVB/HSW]Piglit spec/glsl-1.40/compiler_built-in-functions/inverse-mat2.frag fails&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=61554"&amp;gt;Bug 61554&amp;lt;/a&amp;gt; - [ivb] Mesa 9.1 performance regression on KWin's Lanczos shader&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=61773"&amp;gt;Bug 61773&amp;lt;/a&amp;gt; - abort is an incredibly not-smart way to handle IR validation&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=62868"&amp;gt;Bug 62868&amp;lt;/a&amp;gt; - solaris build broken with missing ffsll&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=62999"&amp;gt;Bug 62999&amp;lt;/a&amp;gt; - glXChooseFBConfig with GLX_DRAWABLE_TYPE, GLX_DONT_CARE fails&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=63078"&amp;gt;Bug 63078&amp;lt;/a&amp;gt; - EGL X11 Regression: Maximum swap interval is 0 (worked with 9.0)&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=63447"&amp;gt;Bug 63447&amp;lt;/a&amp;gt; - [i965 Bisected]Ogles1conform/Ogles2conform/Ogles3conform cases segfault&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=64662"&amp;gt;Bug 64662&amp;lt;/a&amp;gt; - [SNB 9.1 Bisected]Ogles2conform GL2ExtensionTests/depth_texture_cube_map/depth_texture_cube_map.test fail&amp;lt;/li&amp;gt;
+
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;h2&amp;gt;Changes&amp;lt;/h2&amp;gt;
+&amp;lt;p&amp;gt;The full set of changes can be viewed by using the following GIT command:&amp;lt;/p&amp;gt;
+
+&amp;lt;pre&amp;gt;
+  git log mesa-9.1.2..mesa-9.1.3
+&amp;lt;/pre&amp;gt;
+
+&amp;lt;p&amp;gt;Alex Deucher (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;r600g: add new richland pci ids&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;radeonsi: add new SI pci ids&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Alexander Monakov (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;Honor GLX_DONT_CARE in MATCH_MASK&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Andreas Boll (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add a script to generate the list of fixed bugs&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: add usage examples to get-pick-list and shortlog scripts&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Aras Pranckevicius (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;GLSL: fix lower_jumps to report progress properly&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Brian Paul (3):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;mesa: remove platform checks around __builtin_ffs, __builtin_ffsll&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;gallium/u_blitter: fix is_blit_generic_supported() stencil checking&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: enable GL_ARB_texture_float if TEXTURE_FLOAT_ENABLED is defined&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Chad Versace (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;egl/dri2: Fix min/max swap interval of configs&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;intel: Allocate hiz in intel_renderbuffer_move_to_temp()&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Chris Forbes (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Don't try to use bogus interpolation modes pre-Gen6.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: don't memcmp() off the end of a cache key.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Dave Airlie (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;st/mesa: fix UBO offsets.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;ralloc: don't write to memory in case of alloc fail.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Eric Anholt (11):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Remove creation of a MOV instruction that's never used.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Move varying uniform offset compuation into the helper func.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Make the constant surface interface take a normal byte size.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Avoid inappropriate optimization with regs_written &amp;amp;gt; 1.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Do CSE on gen7's varying-index pull constant loads.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Clean up the setup of gen4 simd16 message destinations.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/gen7: Skip resetting SOL offsets at batch start with HW contexts.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/gen6: Reduce updates of transform feedback offsets with HW contexts.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Fix SNB GPU hangs when a blorp batch is the first thing to execute.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Fix hangs on HSW since the gen6 blorp fix.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Disable write masking when setting up texturing m0.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Haixia Shi (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;ACTIVE_UNIFORM_MAX_LENGTH should include 3 extra characters for arrays.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Ian Romanick (11):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;docs: Add 9.1.2 release md5sums&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Note that patch 0967c36 shouldn't actually get picked to the 9.1 branch&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: NULL check the pointer before trying to dereference it&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;egl/dri2: NULL check value returned by dri2_create_surface&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Don't leak shared state when context initialization fails&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Don't leak gl_context::BeginEnd at context destruction&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa/swrast: Refactor no-memory error checking in blit_linear&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa/swrast: Move free calls outside the attachment loop&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;intel: Don't dereference a NULL pointer of calloc fails&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Note that a824692 is already back ported&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Bump version to 9.1.3&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;José Fonseca (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;winsys/sw/xlib: Prevent shared memory segment leakage.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Kenneth Graunke (9):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add new ctx-&amp;amp;gt;Stencil._WriteEnabled derived state flag.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Fix stencil write enable flag in 3DSTATE_DEPTH_BUFFER on Gen7+.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Fix unpack function for ETC2_SRGB8_PUNCHTHROUGH_ALPHA1.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add an unpack function for ARGB2101010_UINT.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add unpack functions for R/RG/RGB [U]INT8/16/32 formats.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add unpack functions for A/I/L/LA [U]INT8/16/32 formats.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl: Ignore redundant prototypes after a function's been defined.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Lower textureGrad() for samplerCubeShadow.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/vs: Fix textureGrad() with shadow samplers on Haswell.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Maarten Lankhorst (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;nvc0: Fix fd leak in nvc0_create_decoder&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Marek Olšák (5):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;radeonsi: add more cases for copying unsupported formats to resource_copy_region&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: fix glGet queries depending on derived framebuffer state (v2)&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;gallium/u_blitter: implement buffer clearing&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;r600g: initialize CMASK and HTILE with the GPU using streamout&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;st/mesa: depth-stencil-alpha state also depends on _NEW_BUFFERS&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Martin Andersson (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;r600g: Fix UMAD on Cayman&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Michel Dänzer (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;radeonsi: Handle arbitrary 2-byte formats in resource_copy_region&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Paul Berry (7):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;glsl: Fix array indexing when constant folding built-in functions.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Reduce code duplication in handling of depth, stencil, and HiZ.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl/linker: fix varying packing for non-flat integer varyings.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl: Document lower_packed_varyings' "flat" requirement with an assert.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl/linker: Adapt flat varying handling in preparation for geometry shaders.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl/linker: Reduce scope of non-flat integer varying fix.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;intel: Do a depth resolve before copying images between miptrees.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Ralf Jung (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;egl/x11: Fix initialisation of swap_interval&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Roland Scheidegger (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;gallivm: fix small but severe bug in handling multiple lod level strides&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Vadim Girlin (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;gallium: handle drirc disable_glsl_line_continuations option&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;/div&amp;gt;
+&amp;lt;/body&amp;gt;
+&amp;lt;/html&amp;gt;

commit e9be1f7ce5d7f24e68ed63136cdfd8b3c1899065
Author: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;
Date:   Tue May 21 12:49:28 2013 -0700

    mesa: Bump version to 9.1.3
    
    Signed-off-by: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;

diff --git a/Makefile.am b/Makefile.am
index 558b965..0c398cb 100644
--- a/Makefile.am
+++ b/Makefile.am
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -36,7 +36,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; check-local:
 
 # Rules for making release tarballs
 
-PACKAGE_VERSION=9.1.2
+PACKAGE_VERSION=9.1.3
 PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
 PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
 
diff --git a/configure.ac b/configure.ac
index b9fcb0b..36065f1 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -6,7 +6,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dnl Tell the user about autoconf.html in the --help output
 m4_divert_once([HELP_END], [
 See docs/autoconf.html for more details on the options for Mesa.])
 
-AC_INIT([Mesa], [9.1.2],
+AC_INIT([Mesa], [9.1.3],
     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
 AC_CONFIG_AUX_DIR([bin])
 AC_CONFIG_MACRO_DIR([m4])
diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h
index c22f2c8..12e7409 100644
--- a/src/mesa/main/version.h
+++ b/src/mesa/main/version.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -34,8 +34,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct gl_context;
 /* Mesa version */
 #define MESA_MAJOR 9
 #define MESA_MINOR 1
-#define MESA_PATCH 2
-#define MESA_VERSION_STRING "9.1.2"
+#define MESA_PATCH 3
+#define MESA_VERSION_STRING "9.1.3"
 
 /* To make version comparison easy */
 #define MESA_VERSION(a,b,c) (((a) &amp;lt;&amp;lt; 16) + ((b) &amp;lt;&amp;lt; 8) + (c))

commit caeab4d170229ec85cf5d3e79ce7f7e2c9cabf44
Author: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;
Date:   Tue May 21 12:47:32 2013 -0700

    mesa: Note that a824692 is already back ported
    
    Signed-off-by: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;

diff --git a/bin/.cherry-ignore b/bin/.cherry-ignore
index 32393f3..2a5fae2 100644
--- a/bin/.cherry-ignore
+++ b/bin/.cherry-ignore
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -11,3 +11,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dbf94d105a48b7aafb2c8cf64d8b4392d87efea1 glsl: Replace constant-index vector arr
 
 # This patch is superceded by 34a4fc5
 0967c362bf378b7415c30ca6d9523d3b2a3a7f5d i965: Fix an inconsistency inb the VUE map with gl_ClipVertex on gen4/5.
+
+# This patch was backported as c3eb301
+a8246927e35a49097f70cffb7fa8dd05ec1365e1 r600g: Fix UMAD on Cayman

commit cbe0e50247c909a7d34f71d9a1a4852b6c3af472
Author: Paul Berry &amp;lt;stereotype441&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Thu May 16 14:12:15 2013 -0700

    intel: Do a depth resolve before copying images between miptrees.
    
    When intel_finalize_mipmap_tree() calls intel_miptree_copy_teximage()
    to reassemble a depth miptree that has been broken apart into pieces
    (to deal with misalignment of levels/layers within the miptree), it
    just copies the depth data, not the HiZ data.  This is reasonable,
    since the alignment restrictions of HiZ are a large part of the reason
    why the miptree had to be broken apart in the first place.  However,
    in order for the depth copy to be sufficient, we need to do a depth
    resolve first, to make sure any deferred depth writes that are in the
    HiZ buffer get performed.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=64662 and
    https://bugs.freedesktop.org/show_bug.cgi?id=64659.
    
    NOTE: This is a candidate for stable release branches.
    
    Reviewed-by: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
    (cherry picked from commit 46ea8041074df79561f9771e2ecf198f2cbd088f)

diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index a063f87..43f3779 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -725,6 +725,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; intel_miptree_copy_slice(struct intel_context *intel,
        dst_mt, dst_x, dst_y, dst_mt-&amp;gt;region-&amp;gt;pitch,
        width, height);
 
+   /* Since we are about to copy depth data using either the blitter or swrast
+    * (neither of which respect HiZ), we need to do a depth resolve first.
+    */
+   intel_miptree_slice_resolve_depth(intel, src_mt, level, slice);
+   intel_miptree_slice_resolve_depth(intel, dst_mt, level, slice);
+
    if (!intelEmitCopyBlit(intel,
   dst_mt-&amp;gt;region-&amp;gt;cpp,
   src_mt-&amp;gt;region-&amp;gt;pitch, src_mt-&amp;gt;region-&amp;gt;bo,

commit c3eb301a3a09f4b1b471afdbd16a4f986702f194
Author: Martin Andersson &amp;lt;g02maran&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Tue Apr 2 22:43:33 2013 +0200

    r600g: Fix UMAD on Cayman
    
    The multiplication part of tgsi_umad did not work on Cayman, because it did
    not populate the correct vector slots.
    
    This fixed hardlocks in the EXT_transform_feedback/order tests.
    
    NOTE: This is a candidate for the stable branches.
    (might not be easy to cherry-pick though)
    
    Signed-off-by: Marek Olšák &amp;lt;maraeo&amp;lt; at &amp;gt;gmail.com&amp;gt;
    Stable backport:
    Signed-off-by: Dave Airlie &amp;lt;airlied&amp;lt; at &amp;gt;redhat.com&amp;gt;

diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index e8992ba..e0fb18b 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5760,7 +5760,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int tgsi_umad(struct r600_shader_ctx *ctx)
 {
 struct tgsi_full_instruction *inst = &amp;amp;ctx-&amp;gt;parse.FullToken.FullInstruction;
 struct r600_bytecode_alu alu;
-int i, j, r;
+int i, j, k, r;
 int lasti = tgsi_last_instruction(inst-&amp;gt;Dst[0].Register.WriteMask);
 
 /* src0 * src1 */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5768,21 +5768,40 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int tgsi_umad(struct r600_shader_ctx *ctx)
 if (!(inst-&amp;gt;Dst[0].Register.WriteMask &amp;amp; (1 &amp;lt;&amp;lt; i)))
 continue;
 
-memset(&amp;amp;alu, 0, sizeof(struct r600_bytecode_alu));
-
-alu.dst.chan = i;
-alu.dst.sel = ctx-&amp;gt;temp_reg;
-alu.dst.write = 1;
-
-alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_UINT);
-for (j = 0; j &amp;lt; 2; j++) {
-        r600_bytecode_src(&amp;amp;alu.src[j], &amp;amp;ctx-&amp;gt;src[j], i);
-}
-
-alu.last = 1;
-r = r600_bytecode_add_alu(ctx-&amp;gt;bc, &amp;amp;alu);
-if (r)
-return r;
+                if (ctx-&amp;gt;bc-&amp;gt;chip_class == CAYMAN) {
+                        for (j = 0; j &amp;lt; 4; j++) {
+                                memset(&amp;amp;alu, 0, sizeof(struct r600_bytecode_alu));
+                                alu.dst.chan = j;
+                                alu.dst.sel = ctx-&amp;gt;temp_reg;
+                                alu.dst.write = (j == i);
+
+                                if (j == 3)
+                                        alu.last = 1;
+                                alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_UINT);
+                                for (k = 0; k &amp;lt; inst-&amp;gt;Instruction.NumSrcRegs; k++) {
+                                        r600_bytecode_src(&amp;amp;alu.src[k], &amp;amp;ctx-&amp;gt;src[k], i);
+                                }
+                                r = r600_bytecode_add_alu(ctx-&amp;gt;bc, &amp;amp;alu);
+                                if (r)
+                                        return r;
+                        }
+                } else {
+                        memset(&amp;amp;alu, 0, sizeof(struct r600_bytecode_alu));
+
+                        alu.dst.chan = i;
+                        alu.dst.sel = ctx-&amp;gt;temp_reg;
+                        alu.dst.write = 1;
+
+                        alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_UINT);
+                        for (j = 0; j &amp;lt; 2; j++) {
+                                r600_bytecode_src(&amp;amp;alu.src[j], &amp;amp;ctx-&amp;gt;src[j], i);
+                        }
+
+                        alu.last = 1;
+                        r = r600_bytecode_add_alu(ctx-&amp;gt;bc, &amp;amp;alu);
+                        if (r)
+                                return r;
+                }
 }
 
 

commit 496996010561463bf0f2e2a7632978c548065b98
Author: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
Date:   Fri Apr 5 15:18:00 2013 -0700

    intel: Allocate hiz in intel_renderbuffer_move_to_temp()
    
    When moving the renderbuffer to a new miptree, we neglected to allocate
    the hiz buffer for the new miptree. Oops.
    
    Fixes all Piglit depthstencil-render-miplevels tests from crash to pass on
    Sandybridge.
    
    Note: This is a candidate for the 9.1 branch.
    Reviewed-by: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt;
    Reviewed-by: Paul Berry &amp;lt;stereotype441&amp;lt; at &amp;gt;gmail.com&amp;gt;
    Signed-off-by: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
    (cherry picked from commit aa391976dfa12479185d9eeed1f2a0b4dce6c49b)

diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 37ecbd1..41412ee 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -999,6 +999,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; intel_renderbuffer_move_to_temp(struct intel_context *intel,
                                  irb-&amp;gt;mt-&amp;gt;num_samples,
                                  false /* force_y_tiling */);
 
+   if (intel-&amp;gt;vtbl.is_hiz_depth_format(intel, new_mt-&amp;gt;format)) {
+      intel_miptree_alloc_hiz(intel, new_mt, irb-&amp;gt;mt-&amp;gt;num_samples);
+   }
+
    intel_miptree_copy_teximage(intel, intel_image, new_mt);
    intel_miptree_reference(&amp;amp;irb-&amp;gt;mt, intel_image-&amp;gt;mt);
    intel_renderbuffer_set_draw_offset(irb);

commit 22f7bcd44f92b93fad40b5a78fe476dc3715b640
Author: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt;
Date:   Thu Aug 30 11:07:52 2012 -0700

    i965: Disable write masking when setting up texturing m0.
    
    v2/Kayden: Also disable write masking in the vec4 backend.
    
    Fixes 78 oglconform glsl-bif-tex-* subcases.
    
    Signed-off-by: Kenneth Graunke &amp;lt;kenneth&amp;lt; at &amp;gt;whitecape.org&amp;gt;
    Reviewed-by: Paul Berry &amp;lt;stereotype441&amp;lt; at &amp;gt;gmail.com&amp;gt; [v1]
    Reviewed-by: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt; [v2]
    (cherry picked from commit 86536a321d9d26137587affe687a07da71f0b526)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
index 365a2ec..aa3a616 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -469,6 +469,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src
     */
    if (inst-&amp;gt;texture_offset) {
       brw_push_insn_state(p);
+      brw_set_mask_control(p, BRW_MASK_DISABLE);
       brw_set_compression_control(p, BRW_COMPRESSION_NONE);
       /* Explicitly set up the message header by copying g0 to the MRF. */
       brw_MOV(p, retype(brw_message_reg(inst-&amp;gt;base_mrf), BRW_REGISTER_TYPE_UD),
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
index e395ada..863ff7c 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -335,6 +335,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; vec4_generator::generate_tex(vec4_instruction *inst,
     */
    if (inst-&amp;gt;texture_offset) {
       /* Explicitly set up the message header by copying g0 to the MRF. */
+      brw_push_insn_state(p);
+      brw_set_mask_control(p, BRW_MASK_DISABLE);
       brw_MOV(p, retype(brw_message_reg(inst-&amp;gt;base_mrf), BRW_REGISTER_TYPE_UD),
          retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -344,7 +346,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; vec4_generator::generate_tex(vec4_instruction *inst,
       retype(brw_vec1_reg(BRW_MESSAGE_REGISTER_FILE, inst-&amp;gt;base_mrf, 2),
      BRW_REGISTER_TYPE_UD),
       brw_imm_uw(inst-&amp;gt;texture_offset));
-      brw_set_access_mode(p, BRW_ALIGN_16);
+      brw_pop_insn_state(p);
    } else if (inst-&amp;gt;header_present) {
       /* Set up an implied move from g0 to the MRF. */
       src = brw_vec8_grf(0, 0);

commit 3933e653289d31d38d233cd0ddfebe6bd2d4eb04
Author: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
Date:   Tue Apr 23 04:17:48 2013 +0200

    egl/dri2: Fix min/max swap interval of configs
    
    The commit below exposed a bug in dri2_add_config.
    
        commit 3998f8c6b5da1a223926249755e54d8f701f81ab
        Author: Ralf Jung &amp;lt;post&amp;lt; at &amp;gt;ralfj.de&amp;gt;
        Date:   Tue Apr 9 14:09:50 2013 +0200
    
    egl/x11: Fix initialisation of swap_interval
    
    This little code snippet near the bottom of dri2_add_config,
    
        if (double_buffer) {
           ...
           conf-&amp;gt;base.MinSwapInterval = dri2_dpy-&amp;gt;min_swap_interval;
           conf-&amp;gt;base.MaxSwapInterval = dri2_dpy-&amp;gt;max_swap_interval;
        }
    
    it never did what it claimed to do. The assignment never changed the value
    of conf-&amp;gt;base.MaxSwapInterval, because dri2_dpy-&amp;gt;max_swap_interval was,
    until the above exposing commit, unitialized here. That is,
    conf-&amp;gt;base.MaxSwapInterval was 0 before and after assignment. Ditto for
    the min swap interval.
    
    Above the troublesome code snippet, the call to _eglFilterArray rejects
    the config as unmatching if its swap interval bounds differ from the base
    config's.  Before the exposing commit, at the call to _eglFilterArray, the
    swap interval bounds were always [0,0], and hence no config was rejected
    due to swap interval.
    
    After the exposing commit, _eglFilterArray incorrectly rejected some
    configs, which prevented dri2_egl_config::dri_double_config from getting
    set for the rejected config, which resulted in a NULL pointer getting
    passed into dri2CreateNewDrawable, and then segfault.
    
    The solution: set the swap interval bounds before _eglFilterArray.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63447
    Tested-by: Lu Hua &amp;lt;huax.lu&amp;lt; at &amp;gt;intel.com&amp;gt;
    Signed-off-by: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
    (cherry picked from commit d3dfce32768dd698d12948987f93680ce02d465a)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index e17d5be..0f4e948 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -221,6 +221,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
    base.RenderableType = disp-&amp;gt;ClientAPIs;
    base.Conformant = disp-&amp;gt;ClientAPIs;
 
+   base.MinSwapInterval = dri2_dpy-&amp;gt;min_swap_interval;
+   base.MaxSwapInterval = dri2_dpy-&amp;gt;max_swap_interval;
+
    if (!_eglValidateConfig(&amp;amp;base, EGL_FALSE)) {
       _eglLog(_EGL_DEBUG, "DRI2: failed to validate config %d", id);
       return NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -268,9 +271,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
 
    if (double_buffer) {
       surface_type &amp;amp;= ~EGL_PIXMAP_BIT;
-
-      conf-&amp;gt;base.MinSwapInterval = dri2_dpy-&amp;gt;min_swap_interval;
-      conf-&amp;gt;base.MaxSwapInterval = dri2_dpy-&amp;gt;max_swap_interval;
    }
 
    conf-&amp;gt;base.SurfaceType |= surface_type;

commit 1e043ebe034b6e33b4c5228770db397b22fd26e0
Author: Andreas Boll &amp;lt;andreas.boll.dev&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Thu Apr 18 09:32:39 2013 +0200

    mesa: add usage examples to get-pick-list and shortlog scripts
    
    NOTE: This is a candidate for the stable branches.
    (cherry picked from commit b8e41db053a7cceba81650b4a94fff65c06ef86e)

diff --git a/bin/get-pick-list.sh b/bin/get-pick-list.sh
index d3ac511..d2b76e7 100755
--- a/bin/get-pick-list.sh
+++ b/bin/get-pick-list.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,6 +1,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #!/bin/sh
 
 # Script for generating a list of candidates for cherry-picking to a stable branch
+#
+# Usage examples:
+#
+# $ bin/get-pick-list.sh
+# $ bin/get-pick-list.sh &amp;gt; picklist
+# $ bin/get-pick-list.sh | tee picklist
 
 # Grep for commits with "cherry picked from commit" in the commit message.
 git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
diff --git a/bin/shortlog_mesa.sh b/bin/shortlog_mesa.sh
index b20c52f..2ba0815 100755
--- a/bin/shortlog_mesa.sh
+++ b/bin/shortlog_mesa.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2,6 +2,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 # This script is used to generate the list of changes that
 # appears in the release notes files, with HTML formatting.
+#
+# Usage examples:
+#
+# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3
+# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 &amp;gt; changes
+# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee changes
 
 
 typeset -i in_log=0

commit 8487315e6e551c5ae78b8e0970b583ff32dbcdf5
Author: Andreas Boll &amp;lt;andreas.boll.dev&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Wed Apr 17 18:14:44 2013 +0200

    mesa: Add a script to generate the list of fixed bugs
    
    This list appears in the fixed bugs section of the release notes.
    
    v2: Add usage examples
    
    NOTE: This is a candidate for the stable branches.
    (cherry picked from commit ca79b72c00f035e2b48d554b42361829523f38ff)

diff --git a/bin/bugzilla_mesa.sh b/bin/bugzilla_mesa.sh
new file mode 100755
index 0000000..491ca0e
--- /dev/null
+++ b/bin/bugzilla_mesa.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,52 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+#!/bin/bash
+
+# This script is used to generate the list of fixed bugs that
+# appears in the release notes files, with HTML formatting.
+#
+# Note: This script could take a while until all details have
+#       been fetched from bugzilla.
+#
+# Usage examples:
+#
+# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
+# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 &amp;gt; bugfixes
+# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee bugfixes
+# $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
+# $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | wc -l
+
+
+# regex pattern: trim before url
+trim_before='s/.*\(http\)/\1/'
+
+# regex pattern: trim after url
+trim_after='s/\(show_bug.cgi?id=[0-9]*\).*/\1/'
+
+# regex pattern: always use https
+use_https='s/http:/https:/'
+
+# extract fdo urls from commit log
+urls=$(git log $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before -e $trim_after -e $use_https | sort | uniq)
+
+# if DRYRUN is set to "yes", simply print the URLs and don't fetch the
+# details from fdo bugzilla.
+#DRYRUN=yes
+
+if [ "x$DRYRUN" = xyes ]; then
+for i in $urls
+do
+echo $i
+done
+else
+echo "&amp;lt;ul&amp;gt;"
+echo ""
+
+for i in $urls
+do
+id=$(echo $i | cut -d'=' -f2)
+summary=$(wget --quiet -O - $i | grep -e '&amp;lt;title&amp;gt;.*&amp;lt;/title&amp;gt;' | sed -e 's/ *&amp;lt;title&amp;gt;Bug [0-9]\+ &amp;amp;ndash; \(.*\)&amp;lt;\/title&amp;gt;/\1/')
+echo "&amp;lt;li&amp;gt;&amp;lt;a href=\"$i\"&amp;gt;Bug $id&amp;lt;/a&amp;gt; - $summary&amp;lt;/li&amp;gt;"
+echo ""
+done
+
+echo "&amp;lt;/ul&amp;gt;"
+fi

commit 7881aae604aa6f6dbb431a850641214115bfcd3a
Author: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt;
Date:   Mon May 6 20:44:21 2013 -0700

    i965: Fix hangs on HSW since the gen6 blorp fix.
    
    The constant packets for gen6 are too small for gen7, and while IVB seems
    happy with them HSW blows up.  Fix it by emitting the correct packets on
    gen7, for all stages.
    
    v2: Include the packets instead of just skipping them.
    NOTE: This is a candidate for the stable branches.
    Reviewed-and-tested-by: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
    Reviewed-by: Kenneth Graunke &amp;lt;kenneth&amp;lt; at &amp;gt;whitecape.org&amp;gt;
    (cherry picked from commit 5d06c9ea0f1aa2f312660413acd1bd6a1dafe1a6)

diff --git a/src/mesa/drivers/dri/i965/gen7_blorp.cpp b/src/mesa/drivers/dri/i965/gen7_blorp.cpp
index 21caa0a..6452169 100644
--- a/src/mesa/drivers/dri/i965/gen7_blorp.cpp
+++ b/src/mesa/drivers/dri/i965/gen7_blorp.cpp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -276,6 +276,37 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_sampler_state(struct brw_context *brw,
 }
 
 
+/* 3DSTATE_VS
+ *
+ * Disable vertex shader.
+ */
+static void
+gen7_blorp_emit_vs_disable(struct brw_context *brw,
+                           const brw_blorp_params *params)
+{
+   struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
+
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_VS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+
+   BEGIN_BATCH(6);
+   OUT_BATCH(_3DSTATE_VS &amp;lt;&amp;lt; 16 | (6 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+}
+
+
 /* 3DSTATE_HS
  *
  * Disable the hull shader.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -287,6 +318,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_hs_disable(struct brw_context *brw,
    struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
 
    BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_HS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+
+   BEGIN_BATCH(7);
    OUT_BATCH(_3DSTATE_HS &amp;lt;&amp;lt; 16 | (7 - 2));
    OUT_BATCH(0);
    OUT_BATCH(0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -327,6 +368,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_ds_disable(struct brw_context *brw,
 {
    struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
 
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_DS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+
    BEGIN_BATCH(6);
    OUT_BATCH(_3DSTATE_DS &amp;lt;&amp;lt; 16 | (6 - 2));
    OUT_BATCH(0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -337,6 +388,36 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_ds_disable(struct brw_context *brw,
    ADVANCE_BATCH();
 }
 
+/* 3DSTATE_GS
+ *
+ * Disable the geometry shader.
+ */
+static void
+gen7_blorp_emit_gs_disable(struct brw_context *brw,
+                           const brw_blorp_params *params)
+{
+   struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
+
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_GS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_GS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+}
 
 /* 3DSTATE_STREAMOUT
  *
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -573,6 +654,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_constant_ps(struct brw_context *brw,
    ADVANCE_BATCH();
 }
 
+static void
+gen7_blorp_emit_constant_ps_disable(struct brw_context *brw,
+                                    const brw_blorp_params *params)
+{
+   struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
+
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_PS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+}
 
 static void
 gen7_blorp_emit_depth_stencil_config(struct brw_context *brw,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -777,11 +874,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_exec(struct intel_context *intel,
                                        wm_surf_offset_texture);
       sampler_offset = gen7_blorp_emit_sampler_state(brw, params);
    }
-   gen6_blorp_emit_vs_disable(brw, params);
+   gen7_blorp_emit_vs_disable(brw, params);
    gen7_blorp_emit_hs_disable(brw, params);
    gen7_blorp_emit_te_disable(brw, params);
    gen7_blorp_emit_ds_disable(brw, params);
-   gen6_blorp_emit_gs_disable(brw, params);
+   gen7_blorp_emit_gs_disable(brw, params);
    gen7_blorp_emit_streamout_disable(brw, params);
    gen6_blorp_emit_clip_disable(brw, params);
    gen7_blorp_emit_sf_config(brw, params);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -791,6 +888,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_exec(struct intel_context *intel,
                                                 wm_bind_bo_offset);
       gen7_blorp_emit_sampler_state_pointers_ps(brw, params, sampler_offset);
       gen7_blorp_emit_constant_ps(brw, params, wm_push_const_offset);
+   } else {
+      gen7_blorp_emit_constant_ps_disable(brw, params);
    }
    gen7_blorp_emit_ps_config(brw, params, prog_offset, prog_data);
    gen7_blorp_emit_cc_viewport(brw, params);

commit 23fb93a9186caf7d9520495f29a37db37deabf83
Author: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt;
Date:   Wed May 1 16:08:12 2013 -0700

    i965: Fix SNB GPU hangs when a blorp batch is the first thing to execute.
    
    The GPU apparently goes looking for constants even though there are no
    shader stages enabled, and gets stuck because we haven't told it there are
    no constants to collect.  If any other user of the 3D pipeline had run
    (even the Render accel of the X server!) since power on, then the in-GPU
    constant buffers would have been set up with some contents we didn't use,
    and we would succeed.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56416
    Reviewed-by: Kenneth Graunke &amp;lt;kenneth&amp;lt; at &amp;gt;whitecape.org&amp;gt;
    Tested-by: Dave Airlie &amp;lt;airlied&amp;lt; at &amp;gt;redhat.com&amp;gt;
    NOTE: This is a candidate for the stable branches.
    (cherry picked from commit 1dfea559c3f188a7a82a4abc09765ba09e939522)

diff --git a/src/mesa/drivers/dri/i965/gen6_blorp.cpp b/src/mesa/drivers/dri/i965/gen6_blorp.cpp
index 3834ae2..4fbcea4 100644
--- a/src/mesa/drivers/dri/i965/gen6_blorp.cpp
+++ b/src/mesa/drivers/dri/i965/gen6_blorp.cpp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -594,6 +594,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen6_blorp_emit_vs_disable(struct brw_context *brw,
       intel_emit_post_sync_nonzero_flush(intel);
    }
 
+   /* Disable the push constant buffers. */
+   BEGIN_BATCH(5);
+   OUT_BATCH(_3DSTATE_CONSTANT_VS &amp;lt;&amp;lt; 16 | (5 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);


&lt;/pre&gt;</description>
    <dc:creator>Maarten Lankhorst</dc:creator>
    <dc:date>2013-05-23T08:38:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110924">
    <title>mesa: Changes to 'debian-experimental'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110924</link>
    <description>&lt;pre&gt; Makefile.am                                               |    2 
 bin/.cherry-ignore                                        |    6 
 bin/bugzilla_mesa.sh                                      |   52 +
 bin/get-pick-list.sh                                      |    6 
 bin/shortlog_mesa.sh                                      |    6 
 configure.ac                                              |    2 
 debian/changelog                                          |    2 
 docs/relnotes-9.1.2.html                                  |    4 
 docs/relnotes-9.1.3.html                                  |  228 +++++
 include/pci_ids/r600_pci_ids.h                            |    2 
 include/pci_ids/radeonsi_pci_ids.h                        |    3 
 src/egl/drivers/dri2/egl_dri2.c                           |    6 
 src/egl/drivers/dri2/platform_x11.c                       |   21 
 src/gallium/auxiliary/gallivm/lp_bld_sample.c             |    2 
 src/gallium/auxiliary/util/u_blitter.c                    |  113 ++
 src/gallium/auxiliary/util/u_blitter.h                    |   18 
 src/gallium/drivers/nvc0/nvc0_video.c                     |    4 
 src/gallium/drivers/r600/r600_blit.c                      |   31 
 src/gallium/drivers/r600/r600_pipe.c                      |   39 
 src/gallium/drivers/r600/r600_pipe.h                      |    7 
 src/gallium/drivers/r600/r600_shader.c                    |   51 -
 src/gallium/drivers/r600/r600_texture.c                   |   10 
 src/gallium/drivers/radeonsi/r600_blit.c                  |   18 
 src/gallium/include/state_tracker/st_api.h                |    1 
 src/gallium/state_trackers/dri/common/dri_context.c       |    2 
 src/gallium/state_trackers/dri/common/dri_screen.c        |    3 
 src/gallium/winsys/sw/xlib/xlib_sw_winsys.c               |    6 
 src/glsl/ast_to_hir.cpp                                   |   15 
 src/glsl/ir_constant_expression.cpp                       |    2 
 src/glsl/link_varyings.cpp                                |   36 
 src/glsl/lower_jumps.cpp                                  |    4 
 src/glsl/lower_packed_varyings.cpp                        |    8 
 src/glsl/ralloc.c                                         |    2 
 src/glx/glxcmds.c                                         |    4 
 src/mesa/drivers/dri/i965/brw_context.h                   |   26 
 src/mesa/drivers/dri/i965/brw_fs.cpp                      |   49 -
 src/mesa/drivers/dri/i965/brw_fs.h                        |    3 
 src/mesa/drivers/dri/i965/brw_fs_cse.cpp                  |   43 -
 src/mesa/drivers/dri/i965/brw_fs_emit.cpp                 |    1 
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp              |   14 
 src/mesa/drivers/dri/i965/brw_lower_texture_gradients.cpp |   27 
 src/mesa/drivers/dri/i965/brw_misc_state.c                |  195 ++--
 src/mesa/drivers/dri/i965/brw_shader.cpp                  |    3 
 src/mesa/drivers/dri/i965/brw_state.h                     |    5 
 src/mesa/drivers/dri/i965/brw_vec4_emit.cpp               |    4 
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp            |   10 
 src/mesa/drivers/dri/i965/brw_vs_surface_state.c          |    7 
 src/mesa/drivers/dri/i965/brw_vtbl.c                      |    2 
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c          |   18 
 src/mesa/drivers/dri/i965/gen6_blorp.cpp                  |   35 
 src/mesa/drivers/dri/i965/gen6_sol.c                      |   11 
 src/mesa/drivers/dri/i965/gen7_blorp.cpp                  |  103 ++
 src/mesa/drivers/dri/i965/gen7_misc_state.c               |   93 --
 src/mesa/drivers/dri/i965/gen7_sol_state.c                |   18 
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c         |    8 
 src/mesa/drivers/dri/intel/intel_context.h                |   18 
 src/mesa/drivers/dri/intel/intel_fbo.c                    |    4 
 src/mesa/drivers/dri/intel/intel_mipmap_tree.c            |    6 
 src/mesa/drivers/dri/intel/intel_tex.c                    |    4 
 src/mesa/main/context.c                                   |    2 
 src/mesa/main/extensions.c                                |    4 
 src/mesa/main/format_unpack.c                             |  597 +++++++++++++-
 src/mesa/main/get.c                                       |   19 
 src/mesa/main/get_hash_params.py                          |   14 
 src/mesa/main/hash.c                                      |    4 
 src/mesa/main/imports.h                                   |    6 
 src/mesa/main/mtypes.h                                    |    1 
 src/mesa/main/shaderapi.c                                 |    6 
 src/mesa/main/stencil.c                                   |    5 
 src/mesa/main/version.h                                   |    4 
 src/mesa/program/prog_cache.c                             |   11 
 src/mesa/state_tracker/st_atom_constbuf.c                 |    1 
 src/mesa/state_tracker/st_atom_depth.c                    |    2 
 src/mesa/state_tracker/st_extensions.c                    |    3 
 src/mesa/swrast/s_blit.c                                  |   49 -
 75 files changed, 1791 insertions(+), 360 deletions(-)

New commits:
commit 1e1a0b1880565f246e875ccf2a71867a58e6e775
Author: Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;canonical.com&amp;gt;
Date:   Thu May 23 09:52:26 2013 +0200

    bump changelog

diff --git a/debian/changelog b/debian/changelog
index 0e321c9..6aff50a 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-mesa (9.1.2-1) UNRELEASED; urgency=low
+mesa (9.1.3-1) UNRELEASED; urgency=low
 
   * New upstream release.
     - Set close on exec flag when opening dri devices (Closes: #651370).

commit f32ec82a8cfcabc5b7596796f36afe7986651f02
Author: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;
Date:   Tue May 21 12:59:17 2013 -0700

    docs: 9.1.3 release notes
    
    Signed-off-by: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;

diff --git a/docs/relnotes-9.1.3.html b/docs/relnotes-9.1.3.html
new file mode 100644
index 0000000..cff9370
--- /dev/null
+++ b/docs/relnotes-9.1.3.html
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,228 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;
+&amp;lt;html lang="en"&amp;gt;
+&amp;lt;head&amp;gt;
+  &amp;lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&amp;gt;
+  &amp;lt;title&amp;gt;Mesa Release Notes&amp;lt;/title&amp;gt;
+  &amp;lt;link rel="stylesheet" type="text/css" href="mesa.css"&amp;gt;
+&amp;lt;/head&amp;gt;
+&amp;lt;body&amp;gt;
+
+&amp;lt;div class="header"&amp;gt;
+  &amp;lt;h1&amp;gt;The Mesa 3D Graphics Library&amp;lt;/h1&amp;gt;
+&amp;lt;/div&amp;gt;
+
+&amp;lt;iframe src="contents.html"&amp;gt;&amp;lt;/iframe&amp;gt;
+&amp;lt;div class="content"&amp;gt;
+
+&amp;lt;h1&amp;gt;Mesa 9.1.3 Release Notes / May 21st, 2013&amp;lt;/h1&amp;gt;
+
+&amp;lt;p&amp;gt;
+Mesa 9.1.3 is a bug fix release which fixes bugs found since the 9.1.1 release.
+&amp;lt;/p&amp;gt;
+&amp;lt;p&amp;gt;
+Mesa 9.1 implements the OpenGL 3.1 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.1.  OpenGL
+3.1 is &amp;lt;strong&amp;gt;only&amp;lt;/strong&amp;gt; available if requested at context creation
+because GL_ARB_compatibility is not supported.
+&amp;lt;/p&amp;gt;
+
+&amp;lt;h2&amp;gt;MD5 checksums&amp;lt;/h2&amp;gt;
+&amp;lt;pre&amp;gt;
+TBD
+&amp;lt;/pre&amp;gt;
+
+&amp;lt;h2&amp;gt;New features&amp;lt;/h2&amp;gt;
+&amp;lt;p&amp;gt;None.&amp;lt;/p&amp;gt;
+
+&amp;lt;h2&amp;gt;Bug fixes&amp;lt;/h2&amp;gt;
+
+&amp;lt;p&amp;gt;This list is likely incomplete.&amp;lt;/p&amp;gt;
+
+&amp;lt;ul&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=39251"&amp;gt;Bug 39251&amp;lt;/a&amp;gt; - Second Life viewers from release 2.7.4.235167 to the last  3.4.0.264911 crash on start.&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=47478"&amp;gt;Bug 47478&amp;lt;/a&amp;gt; - [wine] GLX_DONT_CARE does not work for GLX_DRAWABLE_TYPE or GLX_RENDER_TYPE&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=56416"&amp;gt;Bug 56416&amp;lt;/a&amp;gt; - [SNB bisected] SNB hang with rc6 and hiz on glxgears (and other GL apps) immediately after xinit.&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=57436"&amp;gt;Bug 57436&amp;lt;/a&amp;gt; - [GLSL1.40 IVB/HSW]Piglit spec/glsl-1.40/compiler_built-in-functions/inverse-mat2.frag fails&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=61554"&amp;gt;Bug 61554&amp;lt;/a&amp;gt; - [ivb] Mesa 9.1 performance regression on KWin's Lanczos shader&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=61773"&amp;gt;Bug 61773&amp;lt;/a&amp;gt; - abort is an incredibly not-smart way to handle IR validation&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=62868"&amp;gt;Bug 62868&amp;lt;/a&amp;gt; - solaris build broken with missing ffsll&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=62999"&amp;gt;Bug 62999&amp;lt;/a&amp;gt; - glXChooseFBConfig with GLX_DRAWABLE_TYPE, GLX_DONT_CARE fails&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=63078"&amp;gt;Bug 63078&amp;lt;/a&amp;gt; - EGL X11 Regression: Maximum swap interval is 0 (worked with 9.0)&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=63447"&amp;gt;Bug 63447&amp;lt;/a&amp;gt; - [i965 Bisected]Ogles1conform/Ogles2conform/Ogles3conform cases segfault&amp;lt;/li&amp;gt;
+
+&amp;lt;li&amp;gt;&amp;lt;a href="https://bugs.freedesktop.org/show_bug.cgi?id=64662"&amp;gt;Bug 64662&amp;lt;/a&amp;gt; - [SNB 9.1 Bisected]Ogles2conform GL2ExtensionTests/depth_texture_cube_map/depth_texture_cube_map.test fail&amp;lt;/li&amp;gt;
+
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;h2&amp;gt;Changes&amp;lt;/h2&amp;gt;
+&amp;lt;p&amp;gt;The full set of changes can be viewed by using the following GIT command:&amp;lt;/p&amp;gt;
+
+&amp;lt;pre&amp;gt;
+  git log mesa-9.1.2..mesa-9.1.3
+&amp;lt;/pre&amp;gt;
+
+&amp;lt;p&amp;gt;Alex Deucher (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;r600g: add new richland pci ids&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;radeonsi: add new SI pci ids&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Alexander Monakov (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;Honor GLX_DONT_CARE in MATCH_MASK&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Andreas Boll (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add a script to generate the list of fixed bugs&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: add usage examples to get-pick-list and shortlog scripts&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Aras Pranckevicius (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;GLSL: fix lower_jumps to report progress properly&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Brian Paul (3):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;mesa: remove platform checks around __builtin_ffs, __builtin_ffsll&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;gallium/u_blitter: fix is_blit_generic_supported() stencil checking&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: enable GL_ARB_texture_float if TEXTURE_FLOAT_ENABLED is defined&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Chad Versace (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;egl/dri2: Fix min/max swap interval of configs&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;intel: Allocate hiz in intel_renderbuffer_move_to_temp()&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Chris Forbes (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Don't try to use bogus interpolation modes pre-Gen6.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: don't memcmp() off the end of a cache key.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Dave Airlie (2):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;st/mesa: fix UBO offsets.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;ralloc: don't write to memory in case of alloc fail.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Eric Anholt (11):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Remove creation of a MOV instruction that's never used.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Move varying uniform offset compuation into the helper func.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Make the constant surface interface take a normal byte size.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Avoid inappropriate optimization with regs_written &amp;amp;gt; 1.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Do CSE on gen7's varying-index pull constant loads.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/fs: Clean up the setup of gen4 simd16 message destinations.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/gen7: Skip resetting SOL offsets at batch start with HW contexts.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/gen6: Reduce updates of transform feedback offsets with HW contexts.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Fix SNB GPU hangs when a blorp batch is the first thing to execute.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Fix hangs on HSW since the gen6 blorp fix.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Disable write masking when setting up texturing m0.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Haixia Shi (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;ACTIVE_UNIFORM_MAX_LENGTH should include 3 extra characters for arrays.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Ian Romanick (11):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;docs: Add 9.1.2 release md5sums&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Note that patch 0967c36 shouldn't actually get picked to the 9.1 branch&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: NULL check the pointer before trying to dereference it&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;egl/dri2: NULL check value returned by dri2_create_surface&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Don't leak shared state when context initialization fails&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Don't leak gl_context::BeginEnd at context destruction&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa/swrast: Refactor no-memory error checking in blit_linear&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa/swrast: Move free calls outside the attachment loop&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;intel: Don't dereference a NULL pointer of calloc fails&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Note that a824692 is already back ported&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Bump version to 9.1.3&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;José Fonseca (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;winsys/sw/xlib: Prevent shared memory segment leakage.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Kenneth Graunke (9):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add new ctx-&amp;amp;gt;Stencil._WriteEnabled derived state flag.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Fix stencil write enable flag in 3DSTATE_DEPTH_BUFFER on Gen7+.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Fix unpack function for ETC2_SRGB8_PUNCHTHROUGH_ALPHA1.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add an unpack function for ARGB2101010_UINT.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add unpack functions for R/RG/RGB [U]INT8/16/32 formats.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: Add unpack functions for A/I/L/LA [U]INT8/16/32 formats.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl: Ignore redundant prototypes after a function's been defined.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Lower textureGrad() for samplerCubeShadow.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965/vs: Fix textureGrad() with shadow samplers on Haswell.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Maarten Lankhorst (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;nvc0: Fix fd leak in nvc0_create_decoder&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Marek Olšák (5):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;radeonsi: add more cases for copying unsupported formats to resource_copy_region&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;mesa: fix glGet queries depending on derived framebuffer state (v2)&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;gallium/u_blitter: implement buffer clearing&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;r600g: initialize CMASK and HTILE with the GPU using streamout&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;st/mesa: depth-stencil-alpha state also depends on _NEW_BUFFERS&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Martin Andersson (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;r600g: Fix UMAD on Cayman&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Michel Dänzer (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;radeonsi: Handle arbitrary 2-byte formats in resource_copy_region&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Paul Berry (7):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;glsl: Fix array indexing when constant folding built-in functions.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;i965: Reduce code duplication in handling of depth, stencil, and HiZ.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl/linker: fix varying packing for non-flat integer varyings.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl: Document lower_packed_varyings' "flat" requirement with an assert.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl/linker: Adapt flat varying handling in preparation for geometry shaders.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;glsl/linker: Reduce scope of non-flat integer varying fix.&amp;lt;/li&amp;gt;
+  &amp;lt;li&amp;gt;intel: Do a depth resolve before copying images between miptrees.&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Ralf Jung (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;egl/x11: Fix initialisation of swap_interval&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Roland Scheidegger (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;gallivm: fix small but severe bug in handling multiple lod level strides&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;p&amp;gt;Vadim Girlin (1):&amp;lt;/p&amp;gt;
+&amp;lt;ul&amp;gt;
+  &amp;lt;li&amp;gt;gallium: handle drirc disable_glsl_line_continuations option&amp;lt;/li&amp;gt;
+&amp;lt;/ul&amp;gt;
+
+&amp;lt;/div&amp;gt;
+&amp;lt;/body&amp;gt;
+&amp;lt;/html&amp;gt;

commit e9be1f7ce5d7f24e68ed63136cdfd8b3c1899065
Author: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;
Date:   Tue May 21 12:49:28 2013 -0700

    mesa: Bump version to 9.1.3
    
    Signed-off-by: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;

diff --git a/Makefile.am b/Makefile.am
index 558b965..0c398cb 100644
--- a/Makefile.am
+++ b/Makefile.am
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -36,7 +36,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; check-local:
 
 # Rules for making release tarballs
 
-PACKAGE_VERSION=9.1.2
+PACKAGE_VERSION=9.1.3
 PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
 PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
 
diff --git a/configure.ac b/configure.ac
index b9fcb0b..36065f1 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -6,7 +6,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dnl Tell the user about autoconf.html in the --help output
 m4_divert_once([HELP_END], [
 See docs/autoconf.html for more details on the options for Mesa.])
 
-AC_INIT([Mesa], [9.1.2],
+AC_INIT([Mesa], [9.1.3],
     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
 AC_CONFIG_AUX_DIR([bin])
 AC_CONFIG_MACRO_DIR([m4])
diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h
index c22f2c8..12e7409 100644
--- a/src/mesa/main/version.h
+++ b/src/mesa/main/version.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -34,8 +34,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct gl_context;
 /* Mesa version */
 #define MESA_MAJOR 9
 #define MESA_MINOR 1
-#define MESA_PATCH 2
-#define MESA_VERSION_STRING "9.1.2"
+#define MESA_PATCH 3
+#define MESA_VERSION_STRING "9.1.3"
 
 /* To make version comparison easy */
 #define MESA_VERSION(a,b,c) (((a) &amp;lt;&amp;lt; 16) + ((b) &amp;lt;&amp;lt; 8) + (c))

commit caeab4d170229ec85cf5d3e79ce7f7e2c9cabf44
Author: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;
Date:   Tue May 21 12:47:32 2013 -0700

    mesa: Note that a824692 is already back ported
    
    Signed-off-by: Ian Romanick &amp;lt;ian.d.romanick&amp;lt; at &amp;gt;intel.com&amp;gt;

diff --git a/bin/.cherry-ignore b/bin/.cherry-ignore
index 32393f3..2a5fae2 100644
--- a/bin/.cherry-ignore
+++ b/bin/.cherry-ignore
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -11,3 +11,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dbf94d105a48b7aafb2c8cf64d8b4392d87efea1 glsl: Replace constant-index vector arr
 
 # This patch is superceded by 34a4fc5
 0967c362bf378b7415c30ca6d9523d3b2a3a7f5d i965: Fix an inconsistency inb the VUE map with gl_ClipVertex on gen4/5.
+
+# This patch was backported as c3eb301
+a8246927e35a49097f70cffb7fa8dd05ec1365e1 r600g: Fix UMAD on Cayman

commit cbe0e50247c909a7d34f71d9a1a4852b6c3af472
Author: Paul Berry &amp;lt;stereotype441&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Thu May 16 14:12:15 2013 -0700

    intel: Do a depth resolve before copying images between miptrees.
    
    When intel_finalize_mipmap_tree() calls intel_miptree_copy_teximage()
    to reassemble a depth miptree that has been broken apart into pieces
    (to deal with misalignment of levels/layers within the miptree), it
    just copies the depth data, not the HiZ data.  This is reasonable,
    since the alignment restrictions of HiZ are a large part of the reason
    why the miptree had to be broken apart in the first place.  However,
    in order for the depth copy to be sufficient, we need to do a depth
    resolve first, to make sure any deferred depth writes that are in the
    HiZ buffer get performed.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=64662 and
    https://bugs.freedesktop.org/show_bug.cgi?id=64659.
    
    NOTE: This is a candidate for stable release branches.
    
    Reviewed-by: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
    (cherry picked from commit 46ea8041074df79561f9771e2ecf198f2cbd088f)

diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index a063f87..43f3779 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -725,6 +725,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; intel_miptree_copy_slice(struct intel_context *intel,
        dst_mt, dst_x, dst_y, dst_mt-&amp;gt;region-&amp;gt;pitch,
        width, height);
 
+   /* Since we are about to copy depth data using either the blitter or swrast
+    * (neither of which respect HiZ), we need to do a depth resolve first.
+    */
+   intel_miptree_slice_resolve_depth(intel, src_mt, level, slice);
+   intel_miptree_slice_resolve_depth(intel, dst_mt, level, slice);
+
    if (!intelEmitCopyBlit(intel,
   dst_mt-&amp;gt;region-&amp;gt;cpp,
   src_mt-&amp;gt;region-&amp;gt;pitch, src_mt-&amp;gt;region-&amp;gt;bo,

commit c3eb301a3a09f4b1b471afdbd16a4f986702f194
Author: Martin Andersson &amp;lt;g02maran&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Tue Apr 2 22:43:33 2013 +0200

    r600g: Fix UMAD on Cayman
    
    The multiplication part of tgsi_umad did not work on Cayman, because it did
    not populate the correct vector slots.
    
    This fixed hardlocks in the EXT_transform_feedback/order tests.
    
    NOTE: This is a candidate for the stable branches.
    (might not be easy to cherry-pick though)
    
    Signed-off-by: Marek Olšák &amp;lt;maraeo&amp;lt; at &amp;gt;gmail.com&amp;gt;
    Stable backport:
    Signed-off-by: Dave Airlie &amp;lt;airlied&amp;lt; at &amp;gt;redhat.com&amp;gt;

diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index e8992ba..e0fb18b 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5760,7 +5760,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int tgsi_umad(struct r600_shader_ctx *ctx)
 {
 struct tgsi_full_instruction *inst = &amp;amp;ctx-&amp;gt;parse.FullToken.FullInstruction;
 struct r600_bytecode_alu alu;
-int i, j, r;
+int i, j, k, r;
 int lasti = tgsi_last_instruction(inst-&amp;gt;Dst[0].Register.WriteMask);
 
 /* src0 * src1 */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5768,21 +5768,40 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int tgsi_umad(struct r600_shader_ctx *ctx)
 if (!(inst-&amp;gt;Dst[0].Register.WriteMask &amp;amp; (1 &amp;lt;&amp;lt; i)))
 continue;
 
-memset(&amp;amp;alu, 0, sizeof(struct r600_bytecode_alu));
-
-alu.dst.chan = i;
-alu.dst.sel = ctx-&amp;gt;temp_reg;
-alu.dst.write = 1;
-
-alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_UINT);
-for (j = 0; j &amp;lt; 2; j++) {
-        r600_bytecode_src(&amp;amp;alu.src[j], &amp;amp;ctx-&amp;gt;src[j], i);
-}
-
-alu.last = 1;
-r = r600_bytecode_add_alu(ctx-&amp;gt;bc, &amp;amp;alu);
-if (r)
-return r;
+                if (ctx-&amp;gt;bc-&amp;gt;chip_class == CAYMAN) {
+                        for (j = 0; j &amp;lt; 4; j++) {
+                                memset(&amp;amp;alu, 0, sizeof(struct r600_bytecode_alu));
+                                alu.dst.chan = j;
+                                alu.dst.sel = ctx-&amp;gt;temp_reg;
+                                alu.dst.write = (j == i);
+
+                                if (j == 3)
+                                        alu.last = 1;
+                                alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_UINT);
+                                for (k = 0; k &amp;lt; inst-&amp;gt;Instruction.NumSrcRegs; k++) {
+                                        r600_bytecode_src(&amp;amp;alu.src[k], &amp;amp;ctx-&amp;gt;src[k], i);
+                                }
+                                r = r600_bytecode_add_alu(ctx-&amp;gt;bc, &amp;amp;alu);
+                                if (r)
+                                        return r;
+                        }
+                } else {
+                        memset(&amp;amp;alu, 0, sizeof(struct r600_bytecode_alu));
+
+                        alu.dst.chan = i;
+                        alu.dst.sel = ctx-&amp;gt;temp_reg;
+                        alu.dst.write = 1;
+
+                        alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_UINT);
+                        for (j = 0; j &amp;lt; 2; j++) {
+                                r600_bytecode_src(&amp;amp;alu.src[j], &amp;amp;ctx-&amp;gt;src[j], i);
+                        }
+
+                        alu.last = 1;
+                        r = r600_bytecode_add_alu(ctx-&amp;gt;bc, &amp;amp;alu);
+                        if (r)
+                                return r;
+                }
 }
 
 

commit 496996010561463bf0f2e2a7632978c548065b98
Author: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
Date:   Fri Apr 5 15:18:00 2013 -0700

    intel: Allocate hiz in intel_renderbuffer_move_to_temp()
    
    When moving the renderbuffer to a new miptree, we neglected to allocate
    the hiz buffer for the new miptree. Oops.
    
    Fixes all Piglit depthstencil-render-miplevels tests from crash to pass on
    Sandybridge.
    
    Note: This is a candidate for the 9.1 branch.
    Reviewed-by: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt;
    Reviewed-by: Paul Berry &amp;lt;stereotype441&amp;lt; at &amp;gt;gmail.com&amp;gt;
    Signed-off-by: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
    (cherry picked from commit aa391976dfa12479185d9eeed1f2a0b4dce6c49b)

diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 37ecbd1..41412ee 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -999,6 +999,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; intel_renderbuffer_move_to_temp(struct intel_context *intel,
                                  irb-&amp;gt;mt-&amp;gt;num_samples,
                                  false /* force_y_tiling */);
 
+   if (intel-&amp;gt;vtbl.is_hiz_depth_format(intel, new_mt-&amp;gt;format)) {
+      intel_miptree_alloc_hiz(intel, new_mt, irb-&amp;gt;mt-&amp;gt;num_samples);
+   }
+
    intel_miptree_copy_teximage(intel, intel_image, new_mt);
    intel_miptree_reference(&amp;amp;irb-&amp;gt;mt, intel_image-&amp;gt;mt);
    intel_renderbuffer_set_draw_offset(irb);

commit 22f7bcd44f92b93fad40b5a78fe476dc3715b640
Author: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt;
Date:   Thu Aug 30 11:07:52 2012 -0700

    i965: Disable write masking when setting up texturing m0.
    
    v2/Kayden: Also disable write masking in the vec4 backend.
    
    Fixes 78 oglconform glsl-bif-tex-* subcases.
    
    Signed-off-by: Kenneth Graunke &amp;lt;kenneth&amp;lt; at &amp;gt;whitecape.org&amp;gt;
    Reviewed-by: Paul Berry &amp;lt;stereotype441&amp;lt; at &amp;gt;gmail.com&amp;gt; [v1]
    Reviewed-by: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt; [v2]
    (cherry picked from commit 86536a321d9d26137587affe687a07da71f0b526)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
index 365a2ec..aa3a616 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -469,6 +469,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src
     */
    if (inst-&amp;gt;texture_offset) {
       brw_push_insn_state(p);
+      brw_set_mask_control(p, BRW_MASK_DISABLE);
       brw_set_compression_control(p, BRW_COMPRESSION_NONE);
       /* Explicitly set up the message header by copying g0 to the MRF. */
       brw_MOV(p, retype(brw_message_reg(inst-&amp;gt;base_mrf), BRW_REGISTER_TYPE_UD),
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
index e395ada..863ff7c 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -335,6 +335,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; vec4_generator::generate_tex(vec4_instruction *inst,
     */
    if (inst-&amp;gt;texture_offset) {
       /* Explicitly set up the message header by copying g0 to the MRF. */
+      brw_push_insn_state(p);
+      brw_set_mask_control(p, BRW_MASK_DISABLE);
       brw_MOV(p, retype(brw_message_reg(inst-&amp;gt;base_mrf), BRW_REGISTER_TYPE_UD),
          retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -344,7 +346,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; vec4_generator::generate_tex(vec4_instruction *inst,
       retype(brw_vec1_reg(BRW_MESSAGE_REGISTER_FILE, inst-&amp;gt;base_mrf, 2),
      BRW_REGISTER_TYPE_UD),
       brw_imm_uw(inst-&amp;gt;texture_offset));
-      brw_set_access_mode(p, BRW_ALIGN_16);
+      brw_pop_insn_state(p);
    } else if (inst-&amp;gt;header_present) {
       /* Set up an implied move from g0 to the MRF. */
       src = brw_vec8_grf(0, 0);

commit 3933e653289d31d38d233cd0ddfebe6bd2d4eb04
Author: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
Date:   Tue Apr 23 04:17:48 2013 +0200

    egl/dri2: Fix min/max swap interval of configs
    
    The commit below exposed a bug in dri2_add_config.
    
        commit 3998f8c6b5da1a223926249755e54d8f701f81ab
        Author: Ralf Jung &amp;lt;post&amp;lt; at &amp;gt;ralfj.de&amp;gt;
        Date:   Tue Apr 9 14:09:50 2013 +0200
    
    egl/x11: Fix initialisation of swap_interval
    
    This little code snippet near the bottom of dri2_add_config,
    
        if (double_buffer) {
           ...
           conf-&amp;gt;base.MinSwapInterval = dri2_dpy-&amp;gt;min_swap_interval;
           conf-&amp;gt;base.MaxSwapInterval = dri2_dpy-&amp;gt;max_swap_interval;
        }
    
    it never did what it claimed to do. The assignment never changed the value
    of conf-&amp;gt;base.MaxSwapInterval, because dri2_dpy-&amp;gt;max_swap_interval was,
    until the above exposing commit, unitialized here. That is,
    conf-&amp;gt;base.MaxSwapInterval was 0 before and after assignment. Ditto for
    the min swap interval.
    
    Above the troublesome code snippet, the call to _eglFilterArray rejects
    the config as unmatching if its swap interval bounds differ from the base
    config's.  Before the exposing commit, at the call to _eglFilterArray, the
    swap interval bounds were always [0,0], and hence no config was rejected
    due to swap interval.
    
    After the exposing commit, _eglFilterArray incorrectly rejected some
    configs, which prevented dri2_egl_config::dri_double_config from getting
    set for the rejected config, which resulted in a NULL pointer getting
    passed into dri2CreateNewDrawable, and then segfault.
    
    The solution: set the swap interval bounds before _eglFilterArray.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63447
    Tested-by: Lu Hua &amp;lt;huax.lu&amp;lt; at &amp;gt;intel.com&amp;gt;
    Signed-off-by: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
    (cherry picked from commit d3dfce32768dd698d12948987f93680ce02d465a)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index e17d5be..0f4e948 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -221,6 +221,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
    base.RenderableType = disp-&amp;gt;ClientAPIs;
    base.Conformant = disp-&amp;gt;ClientAPIs;
 
+   base.MinSwapInterval = dri2_dpy-&amp;gt;min_swap_interval;
+   base.MaxSwapInterval = dri2_dpy-&amp;gt;max_swap_interval;
+
    if (!_eglValidateConfig(&amp;amp;base, EGL_FALSE)) {
       _eglLog(_EGL_DEBUG, "DRI2: failed to validate config %d", id);
       return NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -268,9 +271,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
 
    if (double_buffer) {
       surface_type &amp;amp;= ~EGL_PIXMAP_BIT;
-
-      conf-&amp;gt;base.MinSwapInterval = dri2_dpy-&amp;gt;min_swap_interval;
-      conf-&amp;gt;base.MaxSwapInterval = dri2_dpy-&amp;gt;max_swap_interval;
    }
 
    conf-&amp;gt;base.SurfaceType |= surface_type;

commit 1e043ebe034b6e33b4c5228770db397b22fd26e0
Author: Andreas Boll &amp;lt;andreas.boll.dev&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Thu Apr 18 09:32:39 2013 +0200

    mesa: add usage examples to get-pick-list and shortlog scripts
    
    NOTE: This is a candidate for the stable branches.
    (cherry picked from commit b8e41db053a7cceba81650b4a94fff65c06ef86e)

diff --git a/bin/get-pick-list.sh b/bin/get-pick-list.sh
index d3ac511..d2b76e7 100755
--- a/bin/get-pick-list.sh
+++ b/bin/get-pick-list.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,6 +1,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #!/bin/sh
 
 # Script for generating a list of candidates for cherry-picking to a stable branch
+#
+# Usage examples:
+#
+# $ bin/get-pick-list.sh
+# $ bin/get-pick-list.sh &amp;gt; picklist
+# $ bin/get-pick-list.sh | tee picklist
 
 # Grep for commits with "cherry picked from commit" in the commit message.
 git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
diff --git a/bin/shortlog_mesa.sh b/bin/shortlog_mesa.sh
index b20c52f..2ba0815 100755
--- a/bin/shortlog_mesa.sh
+++ b/bin/shortlog_mesa.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2,6 +2,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 # This script is used to generate the list of changes that
 # appears in the release notes files, with HTML formatting.
+#
+# Usage examples:
+#
+# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3
+# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 &amp;gt; changes
+# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee changes
 
 
 typeset -i in_log=0

commit 8487315e6e551c5ae78b8e0970b583ff32dbcdf5
Author: Andreas Boll &amp;lt;andreas.boll.dev&amp;lt; at &amp;gt;gmail.com&amp;gt;
Date:   Wed Apr 17 18:14:44 2013 +0200

    mesa: Add a script to generate the list of fixed bugs
    
    This list appears in the fixed bugs section of the release notes.
    
    v2: Add usage examples
    
    NOTE: This is a candidate for the stable branches.
    (cherry picked from commit ca79b72c00f035e2b48d554b42361829523f38ff)

diff --git a/bin/bugzilla_mesa.sh b/bin/bugzilla_mesa.sh
new file mode 100755
index 0000000..491ca0e
--- /dev/null
+++ b/bin/bugzilla_mesa.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,52 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+#!/bin/bash
+
+# This script is used to generate the list of fixed bugs that
+# appears in the release notes files, with HTML formatting.
+#
+# Note: This script could take a while until all details have
+#       been fetched from bugzilla.
+#
+# Usage examples:
+#
+# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
+# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 &amp;gt; bugfixes
+# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee bugfixes
+# $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
+# $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | wc -l
+
+
+# regex pattern: trim before url
+trim_before='s/.*\(http\)/\1/'
+
+# regex pattern: trim after url
+trim_after='s/\(show_bug.cgi?id=[0-9]*\).*/\1/'
+
+# regex pattern: always use https
+use_https='s/http:/https:/'
+
+# extract fdo urls from commit log
+urls=$(git log $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before -e $trim_after -e $use_https | sort | uniq)
+
+# if DRYRUN is set to "yes", simply print the URLs and don't fetch the
+# details from fdo bugzilla.
+#DRYRUN=yes
+
+if [ "x$DRYRUN" = xyes ]; then
+for i in $urls
+do
+echo $i
+done
+else
+echo "&amp;lt;ul&amp;gt;"
+echo ""
+
+for i in $urls
+do
+id=$(echo $i | cut -d'=' -f2)
+summary=$(wget --quiet -O - $i | grep -e '&amp;lt;title&amp;gt;.*&amp;lt;/title&amp;gt;' | sed -e 's/ *&amp;lt;title&amp;gt;Bug [0-9]\+ &amp;amp;ndash; \(.*\)&amp;lt;\/title&amp;gt;/\1/')
+echo "&amp;lt;li&amp;gt;&amp;lt;a href=\"$i\"&amp;gt;Bug $id&amp;lt;/a&amp;gt; - $summary&amp;lt;/li&amp;gt;"
+echo ""
+done
+
+echo "&amp;lt;/ul&amp;gt;"
+fi

commit 7881aae604aa6f6dbb431a850641214115bfcd3a
Author: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt;
Date:   Mon May 6 20:44:21 2013 -0700

    i965: Fix hangs on HSW since the gen6 blorp fix.
    
    The constant packets for gen6 are too small for gen7, and while IVB seems
    happy with them HSW blows up.  Fix it by emitting the correct packets on
    gen7, for all stages.
    
    v2: Include the packets instead of just skipping them.
    NOTE: This is a candidate for the stable branches.
    Reviewed-and-tested-by: Chad Versace &amp;lt;chad.versace&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
    Reviewed-by: Kenneth Graunke &amp;lt;kenneth&amp;lt; at &amp;gt;whitecape.org&amp;gt;
    (cherry picked from commit 5d06c9ea0f1aa2f312660413acd1bd6a1dafe1a6)

diff --git a/src/mesa/drivers/dri/i965/gen7_blorp.cpp b/src/mesa/drivers/dri/i965/gen7_blorp.cpp
index 21caa0a..6452169 100644
--- a/src/mesa/drivers/dri/i965/gen7_blorp.cpp
+++ b/src/mesa/drivers/dri/i965/gen7_blorp.cpp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -276,6 +276,37 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_sampler_state(struct brw_context *brw,
 }
 
 
+/* 3DSTATE_VS
+ *
+ * Disable vertex shader.
+ */
+static void
+gen7_blorp_emit_vs_disable(struct brw_context *brw,
+                           const brw_blorp_params *params)
+{
+   struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
+
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_VS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+
+   BEGIN_BATCH(6);
+   OUT_BATCH(_3DSTATE_VS &amp;lt;&amp;lt; 16 | (6 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+}
+
+
 /* 3DSTATE_HS
  *
  * Disable the hull shader.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -287,6 +318,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_hs_disable(struct brw_context *brw,
    struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
 
    BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_HS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+
+   BEGIN_BATCH(7);
    OUT_BATCH(_3DSTATE_HS &amp;lt;&amp;lt; 16 | (7 - 2));
    OUT_BATCH(0);
    OUT_BATCH(0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -327,6 +368,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_ds_disable(struct brw_context *brw,
 {
    struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
 
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_DS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+
    BEGIN_BATCH(6);
    OUT_BATCH(_3DSTATE_DS &amp;lt;&amp;lt; 16 | (6 - 2));
    OUT_BATCH(0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -337,6 +388,36 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_ds_disable(struct brw_context *brw,
    ADVANCE_BATCH();
 }
 
+/* 3DSTATE_GS
+ *
+ * Disable the geometry shader.
+ */
+static void
+gen7_blorp_emit_gs_disable(struct brw_context *brw,
+                           const brw_blorp_params *params)
+{
+   struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
+
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_GS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_GS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+}
 
 /* 3DSTATE_STREAMOUT
  *
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -573,6 +654,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_emit_constant_ps(struct brw_context *brw,
    ADVANCE_BATCH();
 }
 
+static void
+gen7_blorp_emit_constant_ps_disable(struct brw_context *brw,
+                                    const brw_blorp_params *params)
+{
+   struct intel_context *intel = &amp;amp;brw-&amp;gt;intel;
+
+   BEGIN_BATCH(7);
+   OUT_BATCH(_3DSTATE_CONSTANT_PS &amp;lt;&amp;lt; 16 | (7 - 2));
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   OUT_BATCH(0);
+   ADVANCE_BATCH();
+}
 
 static void
 gen7_blorp_emit_depth_stencil_config(struct brw_context *brw,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -777,11 +874,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_exec(struct intel_context *intel,
                                        wm_surf_offset_texture);
       sampler_offset = gen7_blorp_emit_sampler_state(brw, params);
    }
-   gen6_blorp_emit_vs_disable(brw, params);
+   gen7_blorp_emit_vs_disable(brw, params);
    gen7_blorp_emit_hs_disable(brw, params);
    gen7_blorp_emit_te_disable(brw, params);
    gen7_blorp_emit_ds_disable(brw, params);
-   gen6_blorp_emit_gs_disable(brw, params);
+   gen7_blorp_emit_gs_disable(brw, params);
    gen7_blorp_emit_streamout_disable(brw, params);
    gen6_blorp_emit_clip_disable(brw, params);
    gen7_blorp_emit_sf_config(brw, params);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -791,6 +888,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gen7_blorp_exec(struct intel_context *intel,
                                                 wm_bind_bo_offset);
       gen7_blorp_emit_sampler_state_pointers_ps(brw, params, sampler_offset);
       gen7_blorp_emit_constant_ps(brw, params, wm_push_const_offset);
+   } else {
+      gen7_blorp_emit_constant_ps_disable(brw, params);
    }
    gen7_blorp_emit_ps_config(brw, params, prog_offset, prog_data);
    gen7_blorp_emit_cc_viewport(brw, params);

commit 23fb93a9186caf7d9520495f29a37db37deabf83
Author: Eric Anholt &amp;lt;eric&amp;lt; at &amp;gt;anholt.net&amp;gt;
Date:   Wed May 1 16:08:12 2013 -0700

    i965: Fix SNB GPU hangs when a blorp batch is the first thing to execute.
    
    The GPU apparently goes looking for constants even though there are no
    shader stages enabled, and gets stuck because we haven't told it there are
    no constants to collect.  If any other user of the 3D pipeline had run
    (even the Render accel of the X server!) since power on, then the in-GPU
    constant buffers would have been set up with some contents we didn't use,
    and we would succeed.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56416
    Reviewed-by: Kenneth Graunke &amp;lt;kenneth&amp;lt; at &amp;gt;whitecape.org&amp;gt;


&lt;/pre&gt;</description>
    <dc:creator>Maarten Lankhorst</dc:creator>
    <dc:date>2013-05-23T08:38:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110923">
    <title>xserver-xorg-video-intel: Changes to 'ubuntu'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110923</link>
    <description>&lt;pre&gt; ChangeLog                                                   |  494 ++++++++++++
 Makefile.am                                                 |    2 
 NEWS                                                        |   32 
 configure.ac                                                |    7 
 debian/changelog                                            |   32 
 debian/patches/series                                       |    1 
 debian/patches/sna-flush-scanout-cache-after-resizing.patch |  228 -----
 debian/rules                                                |    2 
 m4/ac_define_dir.m4                                         |   49 +
 src/intel_dri.c                                             |   15 
 src/intel_driver.h                                          |   51 -
 src/intel_module.c                                          |   99 +-
 src/sna/Makefile.am                                         |    2 
 src/sna/compiler.h                                          |    2 
 src/sna/gen4_render.c                                       |   10 
 src/sna/gen4_vertex.c                                       |    6 
 src/sna/gen5_render.c                                       |    7 
 src/sna/gen6_render.c                                       |    2 
 src/sna/gen7_render.c                                       |   31 
 src/sna/kgem.c                                              |  144 ++-
 src/sna/kgem.h                                              |    9 
 src/sna/sna.h                                               |   18 
 src/sna/sna_accel.c                                         |  445 +++++++++-
 src/sna/sna_blt.c                                           |   46 -
 src/sna/sna_composite.c                                     |   20 
 src/sna/sna_display.c                                       |   23 
 src/sna/sna_dri.c                                           |   27 
 src/sna/sna_driver.c                                        |   23 
 src/sna/sna_render.c                                        |   13 
 src/sna/sna_trapezoids.c                                    |   85 +-
 src/sna/sna_video.c                                         |   10 
 src/sna/sna_video.h                                         |   19 
 src/sna/sna_video_hwmc.c                                    |   75 -
 src/sna/sna_video_hwmc.h                                    |    4 
 src/sna/sna_video_overlay.c                                 |   53 -
 src/sna/sna_video_sprite.c                                  |   46 -
 src/sna/sna_video_textured.c                                |   57 -
 37 files changed, 1603 insertions(+), 586 deletions(-)

New commits:
commit 2ce7b7f10c82bee6617e5efb4fc7713cb6d86861
Author: Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;canonical.com&amp;gt;
Date:   Thu May 23 09:45:05 2013 +0200

    Release to saucy.
    
    * Merge from unreleased debian git, remaining changes:
      - Use SNA by default.
    * rules: Add --enable-valgrind again.
    * Drop sna-flush-scanout-cache-after-resizing.patch, upstreamed.

diff --git a/debian/changelog b/debian/changelog
index ab24457..68a7410 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+xserver-xorg-video-intel (2:2.21.7-0ubuntu1) saucy; urgency=low
+
+  * Merge from unreleased debian git, remaining changes:
+    - Use SNA by default.
+  * rules: Add --enable-valgrind again.
+  * Drop sna-flush-scanout-cache-after-resizing.patch, upstreamed.
+
+ -- Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Thu, 23 May 2013 09:44:44 +0200
+
 xserver-xorg-video-intel (2:2.21.7-1) UNRELEASED; urgency=low
 
   [ Timo Aaltonen ]
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -10,12 +19,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xserver-xorg-video-intel (2:2.21.7-1) UNRELEASED; urgency=low
 
  -- Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Fri, 07 Dec 2012 09:33:39 +0200
 
-xserver-xorg-video-intel (2:2.21.6-0ubuntu5) UNRELEASED; urgency=low
-
-  * rules: Add --enable-valgrind again.
-
- -- Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Thu, 23 May 2013 09:24:06 +0200
-
 xserver-xorg-video-intel (2:2.21.6-0ubuntu4) raring-proposed; urgency=low
 
   [Chris Arges]
diff --git a/debian/patches/series b/debian/patches/series
index df7cb15..23ed8a4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,2 +1 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 0002-Update-manpage-for-new-accelmethod-option.patch
-sna-flush-scanout-cache-after-resizing.patch
diff --git a/debian/patches/sna-flush-scanout-cache-after-resizing.patch b/debian/patches/sna-flush-scanout-cache-after-resizing.patch
deleted file mode 100644
index bb4928f..0000000
--- a/debian/patches/sna-flush-scanout-cache-after-resizing.patch
+++ /dev/null
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,228 +0,0 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-From e083fbdc3f2025f4ccc199070e2488afc5afb2a7 Mon Sep 17 00:00:00 2001
-From: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
-Date: Fri, 12 Apr 2013 11:01:08 +0100
-Subject: [PATCH] sna: Flush the scanout cache after resizing the display
-
-And ensure that any new scanout allocations make the requested size.
-
-Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
-(cherry picked from commit 9dae6f9f1f169c228929185a8bd94e82afe92574)
-
-Conflicts:
-
-src/sna/kgem.h
----
- src/sna/kgem.c        |   88 ++++++++++++++++++++++++++++++++++++-------------
- src/sna/kgem.h        |    3 ++
- src/sna/sna_display.c |   23 ++++++++-----
- 3 files changed, 83 insertions(+), 31 deletions(-)
-
-diff --git a/src/sna/kgem.c b/src/sna/kgem.c
-index 4136ce9..cb2dea7 100644
---- a/src/sna/kgem.c
-+++ b/src/sna/kgem.c
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1601,6 +1601,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; inline static void kgem_bo_remove_from_active(struct kgem *kgem,
- assert(list_is_empty(&amp;amp;bo-&amp;gt;vma));
- }
- 
-+static void _kgem_bo_delete_buffer(struct kgem *kgem, struct kgem_bo *bo)
-+{
-+struct kgem_buffer *io = (struct kgem_buffer *)bo-&amp;gt;proxy;
-+
-+DBG(("%s: size=%d, offset=%d, parent used=%d\n",
-+     __FUNCTION__, bo-&amp;gt;size.bytes, bo-&amp;gt;delta, io-&amp;gt;used));
-+
-+if (ALIGN(bo-&amp;gt;delta + bo-&amp;gt;size.bytes, UPLOAD_ALIGNMENT) == io-&amp;gt;used)
-+io-&amp;gt;used = bo-&amp;gt;delta;
-+}
-+
- static void kgem_bo_clear_scanout(struct kgem *kgem, struct kgem_bo *bo)
- {
- assert(bo-&amp;gt;scanout);
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1625,15 +1636,31 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void kgem_bo_clear_scanout(struct kgem *kgem, struct kgem_bo *bo)
- bo-&amp;gt;reusable = false;
- }
- 
--static void _kgem_bo_delete_buffer(struct kgem *kgem, struct kgem_bo *bo)
-+static bool check_scanout_size(struct kgem *kgem,
-+       struct kgem_bo *bo,
-+       int width, int height)
- {
--struct kgem_buffer *io = (struct kgem_buffer *)bo-&amp;gt;proxy;
-+struct drm_mode_fb_cmd info;
- 
--DBG(("%s: size=%d, offset=%d, parent used=%d\n",
--     __FUNCTION__, bo-&amp;gt;size.bytes, bo-&amp;gt;delta, io-&amp;gt;used));
-+assert(bo-&amp;gt;scanout);
- 
--if (ALIGN(bo-&amp;gt;delta + bo-&amp;gt;size.bytes, UPLOAD_ALIGNMENT) == io-&amp;gt;used)
--io-&amp;gt;used = bo-&amp;gt;delta;
-+VG_CLEAR(info);
-+info.fb_id = bo-&amp;gt;delta;
-+
-+if (drmIoctl(kgem-&amp;gt;fd, DRM_IOCTL_MODE_GETFB, &amp;amp;info))
-+return false;
-+
-+gem_close(kgem-&amp;gt;fd, info.handle);
-+
-+if (width != info.width || height != info.height) {
-+DBG(("%s: not using scanout %d (%dx%d), want (%dx%d)\n",
-+     __FUNCTION__,
-+     info.fb_id, info.width, info.height,
-+     width, height))
-+return false;
-+}
-+
-+return true;
- }
- 
- static void kgem_bo_move_to_scanout(struct kgem *kgem, struct kgem_bo *bo)
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2769,6 +2796,31 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void kgem_purge_cache(struct kgem *kgem)
- kgem-&amp;gt;need_purge = false;
- }
- 
-+void kgem_clean_scanout_cache(struct kgem *kgem)
-+{
-+while (!list_is_empty(&amp;amp;kgem-&amp;gt;scanout)) {
-+struct kgem_bo *bo;
-+
-+bo = list_first_entry(&amp;amp;kgem-&amp;gt;scanout, struct kgem_bo, list);
-+if (__kgem_busy(kgem, bo-&amp;gt;handle))
-+break;
-+
-+list_del(&amp;amp;bo-&amp;gt;list);
-+kgem_bo_clear_scanout(kgem, bo);
-+__kgem_bo_destroy(kgem, bo);
-+}
-+}
-+
-+void kgem_clean_large_cache(struct kgem *kgem)
-+{
-+while (!list_is_empty(&amp;amp;kgem-&amp;gt;large_inactive)) {
-+kgem_bo_free(kgem,
-+     list_first_entry(&amp;amp;kgem-&amp;gt;large_inactive,
-+      struct kgem_bo, list));
-+
-+}
-+}
-+
- bool kgem_expire_cache(struct kgem *kgem)
- {
- time_t now, expire;
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2791,22 +2843,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; bool kgem_expire_cache(struct kgem *kgem)
- free(rq);
- }
- 
--while (!list_is_empty(&amp;amp;kgem-&amp;gt;large_inactive)) {
--kgem_bo_free(kgem,
--     list_first_entry(&amp;amp;kgem-&amp;gt;large_inactive,
--      struct kgem_bo, list));
--
--}
--
--while (!list_is_empty(&amp;amp;kgem-&amp;gt;scanout)) {
--bo = list_first_entry(&amp;amp;kgem-&amp;gt;scanout, struct kgem_bo, list);
--if (__kgem_busy(kgem, bo-&amp;gt;handle))
--break;
--
--list_del(&amp;amp;bo-&amp;gt;list);
--kgem_bo_clear_scanout(kgem, bo);
--__kgem_bo_destroy(kgem, bo);
--}
-+kgem_clean_large_cache(kgem);
-+kgem_clean_scanout_cache(kgem);
- 
- expire = 0;
- list_for_each_entry(bo, &amp;amp;kgem-&amp;gt;snoop, list) {
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2960,6 +2998,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void kgem_cleanup_cache(struct kgem *kgem)
-      struct kgem_bo, list));
- }
- 
-+kgem_clean_large_cache(kgem);
-+kgem_clean_scanout_cache(kgem);
-+
- while (!list_is_empty(&amp;amp;kgem-&amp;gt;snoop))
- kgem_bo_free(kgem,
-      list_last_entry(&amp;amp;kgem-&amp;gt;snoop,
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3571,6 +3612,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct kgem_bo *kgem_create_2d(struct kgem *kgem,
- if (size &amp;gt; num_pages(bo) || num_pages(bo) &amp;gt; 2*size)
- continue;
- 
-+if (!check_scanout_size(kgem, bo, width, height))
-+continue;
-+
- if (bo-&amp;gt;tiling != tiling ||
-     (tiling != I915_TILING_NONE &amp;amp;&amp;amp; bo-&amp;gt;pitch != pitch)) {
- if (!gem_set_tiling(kgem-&amp;gt;fd, bo-&amp;gt;handle,
-diff --git a/src/sna/kgem.h b/src/sna/kgem.h
-index f2b1c98..8f24d8b 100644
---- a/src/sna/kgem.h
-+++ b/src/sna/kgem.h
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -682,6 +682,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; bool kgem_expire_cache(struct kgem *kgem);
- void kgem_purge_cache(struct kgem *kgem);
- void kgem_cleanup_cache(struct kgem *kgem);
- 
-+void kgem_clean_scanout_cache(struct kgem *kgem);
-+void kgem_clean_large_cache(struct kgem *kgem);
-+
- #if HAS_DEBUG_FULL
- void __kgem_batch_debug(struct kgem *kgem, uint32_t nbatch);
- #else
-diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
-index 0d32086..ba9bf79 100644
---- a/src/sna/sna_display.c
-+++ b/src/sna/sna_display.c
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -103,6 +103,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline struct sna_crtc *to_sna_crtc(xf86CrtcPtr crtc)
- return crtc-&amp;gt;driver_private;
- }
- 
-+static bool sna_mode_has_pending_events(struct sna *sna)
-+{
-+struct pollfd pfd;
-+pfd.fd = sna-&amp;gt;kgem.fd;
-+pfd.events = POLLIN;
-+return poll(&amp;amp;pfd, 1, 0) == 1;
-+}
-+
- #define BACKLIGHT_CLASS "/sys/class/backlight"
- 
- /* Enough for 10 digits of backlight + '\n' + '\0' */
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2601,6 +2609,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_mode_resize(ScrnInfoPtr scrn, int width, int height)
- 
- screen-&amp;gt;DestroyPixmap(old_front);
- 
-+while (sna_mode_has_pending_events(sna))
-+sna_mode_wakeup(sna);
-+
-+kgem_clean_scanout_cache(&amp;amp;sna-&amp;gt;kgem);
-+
- return TRUE;
- }
- 
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2743,14 +2756,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna)
- return true;
- }
- 
--static Bool sna_mode_has_pending_events(struct sna *sna)
--{
--struct pollfd pfd;
--pfd.fd = sna-&amp;gt;kgem.fd;
--pfd.events = POLLIN;
--return poll(&amp;amp;pfd, 1, 0) == 1;
--}
--
- void
- sna_mode_close(struct sna *sna)
- {
-&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2761,7 +2766,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_mode_close(struct sna *sna)
-  * check that the fd is readable before attempting to read the next
-  * event from drm.
-  */
--if (sna_mode_has_pending_events(sna))
-+while (sna_mode_has_pending_events(sna))
- sna_mode_wakeup(sna);
- 
- for (i = 0; i &amp;lt; xf86_config-&amp;gt;num_crtc; i++)
--- 
-1.7.9.5
-

commit 428431b1b274624da2a172beff2ef32bb22741bc
Author: Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;canonical.com&amp;gt;
Date:   Thu May 23 09:38:53 2013 +0200

    bump changelogs

diff --git a/ChangeLog b/ChangeLog
index 38312d2..abcd8c4 100644
--- a/ChangeLog
+++ b/ChangeLog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,497 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+commit e65ee10dfd7155230ac18a6d24a67b68336dc973
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue May 21 11:01:50 2013 +0100
+
+    2.21.7 release
+
+commit ef9dc6fae585d5616446eedc1e6e91173f4064c1
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon May 20 11:08:51 2013 +0100
+
+    sna: Undo a few more overwritten operations upon a bo
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit d6c30d1d4df6bcdfa075bd29da7c8aabee20774c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 12:11:34 2013 +0100
+
+    sna: Clear the cow_list when discarding the clone upon pixmap destroy
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 21f17455650d52848467290f609c678e85b8ceab
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 11:46:16 2013 +0100
+
+    sna: Add the missing ref(bo) when undoing the source clone
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit ee166ca856ac02ca8900b9ff44ed3899add2c72a
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 11:30:03 2013 +0100
+
+    sna: Undo the clone when replacing the DRI pixmap
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 8d31fe771b423a3768cbd05db994d49e941369e1
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 11:14:34 2013 +0100
+
+    sna: Transfer ownership of the cloned bo to the pixmaps
+    
+    Fix the leak from the previous commit.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 5d9315873e02d4acc5ddffc698dbf8984cbd5c42
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 10:51:44 2013 +0100
+
+    sna: Avoid replacing pinned bo when undoing a clone
+    
+    Otherwise we end up cloning the scanout only to leave it dangling if the
+    client copies the from the front-buffer and then writes to it.
+    
+    Reported-by: Nick Bowler &amp;lt;nbowler&amp;lt; at &amp;gt;draconx.ca&amp;gt;
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64675
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 3efe143e367acfa2ff38c63388d24a8d06331944
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 10:30:51 2013 +0100
+
+    sna: Clear mapped hints upon cloning a pair of pixmaps
+    
+    Once cloned, we do not want to use inplace operations and instead force
+    a copy. However, if we do not relinquish the hints when copying across
+    the bo, then those hints become stale and lead to corruption.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit f57a65c35268f215c17f1a02b3af50a6678ce3c1
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue May 14 16:15:57 2013 +0100
+
+    sna: Correct assertions to allow discarding of cpu hint for inplace ops
+    
+    Reported-by: Zdenek Kabelac &amp;lt;zkabelac&amp;lt; at &amp;gt;redhat.com&amp;gt;
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit bb0969e6a5c2bddcd0499d81c0c241003f8b07ef
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue May 14 15:22:59 2013 +0100
+
+    sna: Assert that the mapping is released before closing the GEM handle
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 16a64649e9c440ab9457467fe04be25719a73e7c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 10 15:48:58 2013 +0100
+
+    sna: Basic copy-on-write support for cloning pixmaps
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit d89b2647dc0b72d6fa6ff89065acd3776b04cd3f
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 10 18:17:24 2013 +0100
+
+    sna: Propagate clears when using the BLT composite routines
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 810a0ce2f89ba6b343b5043963626c0f2d50fb22
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 10 12:02:10 2013 +0100
+
+    sna: Propagate clear color when replacing by a CopyArea
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 07a4400fffe4f83df3debe62abd2c37b45f8f0c0
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 10 11:59:59 2013 +0100
+
+    sna: Attempt to discard overwritten operations before CopyArea
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 3ee42de066e4629f78e254c27d07dc33e16dbc02
+Author: Rodrigo Vivi &amp;lt;rodrigo.vivi&amp;lt; at &amp;gt;gmail.com&amp;gt;
+Date:   Mon May 13 17:56:30 2013 -0300
+
+    Adding more reserved PCI IDs for Haswell.
+    
+    As Chris mentioned there is a tendency for us to find out more
+    PCI IDs only when users report. So let's add all new reserved Haswell IDs.
+    I didn't have better names for this reserved ids and didn't want to use rsvd1
+    and rsvd2 groups, so I decided to use "B" and "E" that stands for the last
+    id digit.
+    
+    Cc: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+    Signed-off-by: Rodrigo Vivi &amp;lt;rodrigo.vivi&amp;lt; at &amp;gt;gmail.com&amp;gt;
+
+commit ee96de8b1e7e4a305ee31c0ece1d9d38df8328f9
+Author: Rodrigo Vivi &amp;lt;rodrigo.vivi&amp;lt; at &amp;gt;gmail.com&amp;gt;
+Date:   Mon May 13 17:56:29 2013 -0300
+
+    Fix Haswell GT3 names.
+    
+    When publishing first HSW ids we weren't allowed to use "GT3" codname.
+    But this is the correct codname and Mesa is using it already.
+    So to avoid people getting confused why in Mesa it is called GT3 and here
+    it is called GT2_PLUS let's fix this name in a standard and correct way.
+    
+    Signed-off-by: Rodrigo Vivi &amp;lt;rodrigo.vivi&amp;lt; at &amp;gt;gmail.com&amp;gt;
+
+commit 979d2f8d0038aa621e1c75200b10a3819e024a66
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon Apr 22 18:00:32 2013 +0100
+
+    sna/gen4: Tidy testing for an active vertex buffer id
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 7ba63307058337af5a120ad01c93b423a3e422eb
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon Apr 22 17:43:21 2013 +0100
+
+    sna/gen4: Drop unused gen parameter to SF state setup
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 2217f6356b53263b6ce8f92b5c29c0614d4ef2a5
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 13:46:11 2013 +0100
+
+    sna/trapezoids: Fix the determination of the trapezoid origin
+    
+    "src-x and src-y register the pattern to
+    the floor of the top x and y coordinate of the left edge of the
+    first trapezoid,"
+    
+    Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1178020
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 6e98df06fa9d218a6139730140a83a1940b05980
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 13:45:38 2013 +0100
+
+    sna: Add more debugging to unaligned trapezoids
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 5d62ec25937ad296114bf890a7a5ac11ff03508c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 13:44:24 2013 +0100
+
+    sna/gen7: Add DBG for channel setup for render source
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit debdcd6a09464251324238ccbd935a6ade265d94
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 13:43:57 2013 +0100
+
+    sna: Add DBG statements for choice of spans vertex emitter
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit c6e4088dcb261d89fa0065eb7d9b62eada049dbd
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 11:30:05 2013 +0100
+
+    sna: Handle cached upload buffers for partial migration to GPU
+    
+    Since the extended use of move_area_to_gpu for partial migration of
+    render sources, we exposed the lack of handling of upload caches along
+    that path.
+    
+    Reported-by: Zdenek Kabelac &amp;lt;zkabelac&amp;lt; at &amp;gt;redhat.com&amp;gt;
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 262ee1ef1e98cb84fa0af6e679c8cd61dc93f008
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue May 7 10:35:53 2013 +0100
+
+    sna: Do not attempt to clean an active scanout
+    
+    For simplicity, skip buffers that are still in use by the batch - they
+    will be removed later.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 5637c173f85a5bb9a77572e4c070e0d612e6f49d
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed May 1 15:14:55 2013 +0100
+
+    sna: Be careful not to preemptively upload portions of a SHM pixmap
+    
+    Only upload the portion of the pixmap being used for this rendering
+    operation, as outside of that may remain undefined and to be written by
+    the client before a future operation.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit ca4a32c20d4c1f91552c02b9008ae16435b92d71
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed May 1 10:18:23 2013 +0100
+
+    sna: Page align requests to userptr
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit ab576a42650d8a743dd91108f774c220d866de95
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Sat Apr 27 12:06:30 2013 +0100
+
+    Add all reserved PCI-IDs for Haswell
+    
+    There is a tendency for a product to ship based on a 'reserved' PCI-ID
+    prior to us being notified about it. In other words, the first we find
+    out about such a product is when customers start complaining about their
+    shiny new hardware not being supported...
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=63701
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 7dfb359677027310f4617b49f3da2321727a076f
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 26 13:20:36 2013 +0100
+
+    uxa/dri: Fix compile error for unknown 'bool'
+    
+    It appears that it is only accidentally pulled in on some systems, but
+    not all.
+    
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63957
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 8eaafdb43998b5cdefb20b8098c558fa5decb115
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 24 15:48:14 2013 +0100
+
+    sna: Prevent accessing an uninitialised region in move_area_to_gpu()
+    
+    If we skip the migration, we need to avoid using the unitialiased
+    region. There is no bad consequence as both branches of the if are
+    no-ops, but it does silence the static checkers and should make the
+    predicate cheaper.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit b4871f1dac3d3c8d81101ef0f29eb69099ff2dcf
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu Apr 18 09:51:39 2013 +0100
+
+    sna: Rephrase initialisation without a specific backend
+    
+    "generic" sounds more impressive than "no"
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 6668f68054cb33e0cd3425f5403d14092a4a17f8
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 17 15:32:49 2013 +0100
+
+    Revert "xgvevent"
+    
+    This reverts commit ddd75d6539dcf692cb76747cd63d1f301180f18a.
+    
+    This is a WIP patch, not ready for upstream. The danger of mixing topic
+    branches.
+
+commit 1bf0d869ae07ffc5b9cd79904b421cd37997ae8c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 17 15:24:10 2013 +0100
+
+    Prefer i830_dri.so for gen2 chipsets
+    
+    Probe for i830_dri.so and, if it exists, use that driver in preference
+    to i915_dri.so for DRI (i.e. GL clients). This was suggested in the
+    context of distributions supplying i915g as the main DRI driver for
+    gen3, in which case we need to provide a separate DRI driver for gen2.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit ddd75d6539dcf692cb76747cd63d1f301180f18a
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 19:13:46 2013 +0100
+
+    xgvevent
+
+commit ddd3cc4ed6ac9b69f178147b49628b7a7f3f3104
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 16 11:55:23 2013 +0100
+
+    sna: Add VALGRIND_CFLAGS whilst compiling with --enable-valgrind
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit f0b6ae2cfb811a8c234634c878800ca1fb95703f
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon Apr 15 11:42:20 2013 +0100
+
+    sna: Only release the scanout cache whilst DRM_MASTER
+    
+    If we try to release the framebuffers whilst not DRM_MASTER, the
+    operation will fail and we will leak the buffers. So do not bother
+    during the normal expiration to clean the scanout cache if vt switched
+    away.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit d68270ca84dc01a930c2ed0c05cecfac88c8cc4b
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 14:48:04 2013 +0100
+
+    sna/xvmc: silence a compiler warning
+    
+    sna_video_hwmc.c: In function 'create_context':
+    sna_video_hwmc.c:95: warning: assignment from incompatible pointer type
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit a64490c794e2e98c77e0c7f9cec6778fd1e06465
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 14:28:18 2013 +0100
+
+    sna: Add missing ';'
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 9dae6f9f1f169c228929185a8bd94e82afe92574
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 11:01:08 2013 +0100
+
+    sna: Flush the scanout cache after resizing the display
+    
+    And ensure that any new scanout allocations make the requested size.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 97fc1d4c5bd268f331aaa9f7144e4fe40837fbb0
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 10:23:43 2013 +0100
+
+    sna/gen5: Force a MI_FLUSH between using the BLT and RENDER engines
+    
+    There is a workaround that says the first RENDER command following use of
+    the BLT should be a non-pipelined command. To be safe, emit a MI_FLUSH
+    before setting up the invariants.
+    
+    Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1168066
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit aff14a23f98b1230a9053a1b8434f5cc9f766d14
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 09:49:47 2013 +0100
+
+    sna: Refine assertion about the existence of CPU damage when GPU damaged
+    
+    One particular buffer type is quite cunning and simultaneously sets both
+    CPU/GPU as all damaged (the upload buffer) so be aware when making bold
+    assertions.
+    
+    Reported-by: Jiri Slaby &amp;lt;jirislaby&amp;lt; at &amp;gt;gmail.com&amp;gt;
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit afe61281d8f92d6eb841e2522ab18e0d2fe73773
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 10 12:13:37 2013 +0100
+
+    sna/gen7: Cache our kernels in L3
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit caf3118f90bad7f88f5f08e49177a1696bf97ccb
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 10 12:16:34 2013 +0100
+
+    sna: Align uploads to start on page boundaries
+    
+    This reduces the number of loops and restarts required in the kernel.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 092e30de8a3476ab99446264edaf9b250a41736b
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 20:43:19 2013 +0100
+
+    sna/xvmc: Wrap each output adaptor
+    
+    Each of the overlay, sprite and textured video can support XvMC
+    passthrough, so we need to setup an XvMC adaptor for each of our Xv
+    adaptors.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 540802595fee7f8b2c73e74c2b44e9a21f6471ae
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 10 10:33:48 2013 +0100
+
+    sna: Suppress hotplug events whilst VT switched away
+    
+    Whilst we are not DRM master, not only is another server in control of
+    the outputs and responding to the udev event, we ourselves cannot
+    change modes and just cause contention upon the DRM device. Instead
+    inform userspace of the change as soon as we are DRM master again and
+    back in control.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 7afe2b45556f07b7e3a36e36da5a6d1c60366c25
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 20:57:23 2013 +0100
+
+    sna: Add a DBG option for testing userptr more thoroughly
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit fbe081061a2790e0e6e6a4065af313df0d1d6a84
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 09:52:13 2013 +0100
+
+    sna: Document fence limits for gen4+
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 5f1367d611b91008ba28a8c99a6b98a3e84449dc
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 09:18:41 2013 +0100
+
+    sna/video: Textured video passthrough no longer relies upon XvMC
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 21294eaaf16a1e35fefe0f45a237826d38dc62eb
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 09:10:33 2013 +0100
+
+    sna/video: Expand passthrough support for overlay planes
+    
+    The passthrough is actually a generic, albeit private, mechanism that
+    anything can use to pass along a GEM handle for use with Xv.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 86efddd9e4b921fcfc1a4b7492ba9174b84de64c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon Apr 8 10:54:56 2013 +0100
+
+    sna: Remove assertions for mapped GPU bo if priv-&amp;gt;cpu after GPU bo creation
+    
+    The condition that we have a mapped GPU bo iff priv-&amp;gt;cpu is only true if
+    we have a GPU bo at the time of using the CPU -- if we create the GPU bo
+    during move_to_gpu, then that assertion is bogus.
+    
+    Reported-by: Jiri Slaby &amp;lt;jirislaby&amp;lt; at &amp;gt;gmail.com&amp;gt;
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
 commit 678279eb373310f1a71a3d74e5a500b343e98830
 Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
 Date:   Sat Apr 6 15:58:50 2013 +0100
diff --git a/debian/changelog b/debian/changelog
index fce74d8..d9e874a 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-xserver-xorg-video-intel (2:2.21.6-1) UNRELEASED; urgency=low
+xserver-xorg-video-intel (2:2.21.7-1) UNRELEASED; urgency=low
 
   [ Timo Aaltonen ]
   * New upstream release.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -6,6 +6,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xserver-xorg-video-intel (2:2.21.6-1) UNRELEASED; urgency=low
   [ Maarten Lankhorst ]
   * Add valgrind to build-depends.
   * Enable valgrind by default.
+  * New upstream release.
 
  -- Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Fri, 07 Dec 2012 09:33:39 +0200
 

commit 04c01f99759a17f85948a6c940ec61dec7b66000
Author: Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;canonical.com&amp;gt;
Date:   Thu May 23 09:23:47 2013 +0200

    Revert "Drop --enable-valgrind to fix FTBS."
    
    This reverts commit 5b26c5e4c044ba0fc376edd934c254c3218de27b.

diff --git a/debian/changelog b/debian/changelog
index be1fca2..d6f376c 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+xserver-xorg-video-intel (2:2.21.6-0ubuntu5) UNRELEASED; urgency=low
+
+  * rules: Add --enable-valgrind again.
+
+ -- Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Thu, 23 May 2013 09:24:06 +0200
+
 xserver-xorg-video-intel (2:2.21.6-0ubuntu4) raring-proposed; urgency=low
 
   [Chris Arges]
diff --git a/debian/rules b/debian/rules
index 7f8e4ca..cef06f5 100755
--- a/debian/rules
+++ b/debian/rules
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -6,7 +6,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; BUILDER        := $(shell dpkg-parsechangelog | awk -F': ' '/^Maintainer: / {pri
 
 # Enable SNA, pass builderstring:
 override_dh_auto_configure:
-dh_auto_configure -- --enable-sna --enable-uxa --with-default-accel=sna --with-builderstring="$(SOURCE_NAME) $(SOURCE_VERSION) ($(BUILDER))"
+dh_auto_configure -- --enable-sna --enable-uxa --with-default-accel=sna --with-builderstring="$(SOURCE_NAME) $(SOURCE_VERSION) ($(BUILDER))" --enable-valgrind
 
 # Install in debian/tmp to retain control through dh_install:
 override_dh_auto_install:

commit e65ee10dfd7155230ac18a6d24a67b68336dc973
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Tue May 21 11:01:50 2013 +0100

    2.21.7 release

diff --git a/NEWS b/NEWS
index 4fc9a6b..3173f21 100644
--- a/NEWS
+++ b/NEWS
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,35 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+Release 2.21.7 (2013-05-21)
+===========================
+A couple of weeks turned into a month and a couple of weeks... Amidst
+the usual bug fixes, we have added the complete set of Haswell PCI IDs -
+hopefully future proofing ourselves against being surprised by new
+products. We can also now use the correct term for the top of the range
+Haswell variants, GT3.
+
+ * Fix several assertion failures hit by Jiri Slaby.
+
+ * Allow XvMC to also target overlay/sprite planes.
+
+ * Throw in a paranoid MI_FLUSH between BLT and RENDER operations on
+   Ironlake.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1168066
+
+ * Prevent reuse of old framebuffers after a resize.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1157678
+
+ * Fix compilation with --enable-valgrind and no --enable-debug
+
+ * Improve partial migration of render sources.
+
+ * Fix origin of trapezoids.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1178020
+
+ * Introduce copy-on-write support for cloning pixmaps. The ultimate
+   goal here is to efficiently support the TearFree mode of operation,
+   but this provides immediate benefits with firefox - most importantly
+   because of the inefficient way it now implements scrolling.
+
+
 Release 2.21.6 (2013-04-06)
 ===========================
 A surprising highlight of this release is a little refresh to the KMS
diff --git a/configure.ac b/configure.ac
index d30686f..be1e8d1 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -23,7 +23,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-intel],
-        [2.21.6],
+        [2.21.7],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-intel])
 AC_CONFIG_SRCDIR([Makefile.am])

commit ef9dc6fae585d5616446eedc1e6e91173f4064c1
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Mon May 20 11:08:51 2013 +0100

    sna: Undo a few more overwritten operations upon a bo
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna.h b/src/sna/sna.h
index aed3e08..ee3f821 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -507,6 +507,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct kgem_bo *sna_pixmap_change_tiling(PixmapPtr pixmap, uint32_t tiling);
 #define FORCE_GPU0x2
 #define RENDER_GPU0x4
 #define IGNORE_CPU0x8
+#define REPLACES0x10
 struct kgem_bo *
 sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
     struct sna_damage ***damage);
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 2c78570..6ed9e77 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2946,6 +2946,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
      box-&amp;gt;x1, box-&amp;gt;y1, box-&amp;gt;x2, box-&amp;gt;y2,
      flags));
 
+assert((hint &amp;amp; REPLACES) == 0 || (hint &amp;amp; IGNORE_CPU));
+
 assert(box-&amp;gt;x2 &amp;gt; box-&amp;gt;x1 &amp;amp;&amp;amp; box-&amp;gt;y2 &amp;gt; box-&amp;gt;y1);
 assert(pixmap-&amp;gt;refcnt);
 assert_pixmap_damage(pixmap);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3001,7 +3003,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
      __FUNCTION__, priv-&amp;gt;flush, priv-&amp;gt;shm, priv-&amp;gt;cpu, flags));
 
 if ((flags &amp;amp; PREFER_GPU) == 0 &amp;amp;&amp;amp;
-    (!priv-&amp;gt;gpu_damage || !kgem_bo_is_busy(priv-&amp;gt;gpu_bo))) {
+    (flags &amp;amp; REPLACES || !priv-&amp;gt;gpu_damage || !kgem_bo_is_busy(priv-&amp;gt;gpu_bo))) {
 DBG(("%s: try cpu as GPU bo is idle\n", __FUNCTION__));
 goto use_cpu_bo;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -12179,18 +12181,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
 }
 hint |= IGNORE_CPU;
 }
-if (priv-&amp;gt;cpu_damage == NULL &amp;amp;&amp;amp;
-    (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable) ||
-     box_inplace(pixmap, &amp;amp;region.extents))) {
-DBG(("%s: promoting to full GPU\n", __FUNCTION__));
-if (priv-&amp;gt;gpu_bo) {
-assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
-sna_damage_all(&amp;amp;priv-&amp;gt;gpu_damage,
-       pixmap-&amp;gt;drawable.width,


&lt;/pre&gt;</description>
    <dc:creator>Maarten Lankhorst</dc:creator>
    <dc:date>2013-05-23T07:46:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110922">
    <title>xserver-xorg-video-intel: Changes to 'debian-experimental'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110922</link>
    <description>&lt;pre&gt; ChangeLog                    |  494 +++++++++++++++++++++++++++++++++++++++++++
 Makefile.am                  |    2 
 NEWS                         |   32 ++
 configure.ac                 |    7 
 debian/changelog             |    3 
 m4/ac_define_dir.m4          |   49 ++++
 src/intel_dri.c              |   15 +
 src/intel_driver.h           |   51 +++-
 src/intel_module.c           |   99 ++++++--
 src/sna/Makefile.am          |    2 
 src/sna/compiler.h           |    2 
 src/sna/gen4_render.c        |   10 
 src/sna/gen4_vertex.c        |    6 
 src/sna/gen5_render.c        |    7 
 src/sna/gen6_render.c        |    2 
 src/sna/gen7_render.c        |   31 ++
 src/sna/kgem.c               |  144 +++++++++---
 src/sna/kgem.h               |    9 
 src/sna/sna.h                |   18 +
 src/sna/sna_accel.c          |  445 +++++++++++++++++++++++++++++++++-----
 src/sna/sna_blt.c            |   46 +++-
 src/sna/sna_composite.c      |   20 +
 src/sna/sna_display.c        |   23 +-
 src/sna/sna_dri.c            |   27 +-
 src/sna/sna_driver.c         |   23 +-
 src/sna/sna_render.c         |   13 -
 src/sna/sna_trapezoids.c     |   85 ++++---
 src/sna/sna_video.c          |   10 
 src/sna/sna_video.h          |   19 +
 src/sna/sna_video_hwmc.c     |   75 +++---
 src/sna/sna_video_hwmc.h     |    4 
 src/sna/sna_video_overlay.c  |   53 +++-
 src/sna/sna_video_sprite.c   |   46 +++-
 src/sna/sna_video_textured.c |   57 ----
 34 files changed, 1583 insertions(+), 346 deletions(-)

New commits:
commit 428431b1b274624da2a172beff2ef32bb22741bc
Author: Maarten Lankhorst &amp;lt;maarten.lankhorst&amp;lt; at &amp;gt;canonical.com&amp;gt;
Date:   Thu May 23 09:38:53 2013 +0200

    bump changelogs

diff --git a/ChangeLog b/ChangeLog
index 38312d2..abcd8c4 100644
--- a/ChangeLog
+++ b/ChangeLog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,497 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+commit e65ee10dfd7155230ac18a6d24a67b68336dc973
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue May 21 11:01:50 2013 +0100
+
+    2.21.7 release
+
+commit ef9dc6fae585d5616446eedc1e6e91173f4064c1
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon May 20 11:08:51 2013 +0100
+
+    sna: Undo a few more overwritten operations upon a bo
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit d6c30d1d4df6bcdfa075bd29da7c8aabee20774c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 12:11:34 2013 +0100
+
+    sna: Clear the cow_list when discarding the clone upon pixmap destroy
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 21f17455650d52848467290f609c678e85b8ceab
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 11:46:16 2013 +0100
+
+    sna: Add the missing ref(bo) when undoing the source clone
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit ee166ca856ac02ca8900b9ff44ed3899add2c72a
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 11:30:03 2013 +0100
+
+    sna: Undo the clone when replacing the DRI pixmap
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 8d31fe771b423a3768cbd05db994d49e941369e1
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 11:14:34 2013 +0100
+
+    sna: Transfer ownership of the cloned bo to the pixmaps
+    
+    Fix the leak from the previous commit.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 5d9315873e02d4acc5ddffc698dbf8984cbd5c42
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 10:51:44 2013 +0100
+
+    sna: Avoid replacing pinned bo when undoing a clone
+    
+    Otherwise we end up cloning the scanout only to leave it dangling if the
+    client copies the from the front-buffer and then writes to it.
+    
+    Reported-by: Nick Bowler &amp;lt;nbowler&amp;lt; at &amp;gt;draconx.ca&amp;gt;
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64675
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 3efe143e367acfa2ff38c63388d24a8d06331944
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 17 10:30:51 2013 +0100
+
+    sna: Clear mapped hints upon cloning a pair of pixmaps
+    
+    Once cloned, we do not want to use inplace operations and instead force
+    a copy. However, if we do not relinquish the hints when copying across
+    the bo, then those hints become stale and lead to corruption.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit f57a65c35268f215c17f1a02b3af50a6678ce3c1
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue May 14 16:15:57 2013 +0100
+
+    sna: Correct assertions to allow discarding of cpu hint for inplace ops
+    
+    Reported-by: Zdenek Kabelac &amp;lt;zkabelac&amp;lt; at &amp;gt;redhat.com&amp;gt;
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit bb0969e6a5c2bddcd0499d81c0c241003f8b07ef
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue May 14 15:22:59 2013 +0100
+
+    sna: Assert that the mapping is released before closing the GEM handle
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 16a64649e9c440ab9457467fe04be25719a73e7c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 10 15:48:58 2013 +0100
+
+    sna: Basic copy-on-write support for cloning pixmaps
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit d89b2647dc0b72d6fa6ff89065acd3776b04cd3f
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 10 18:17:24 2013 +0100
+
+    sna: Propagate clears when using the BLT composite routines
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 810a0ce2f89ba6b343b5043963626c0f2d50fb22
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 10 12:02:10 2013 +0100
+
+    sna: Propagate clear color when replacing by a CopyArea
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 07a4400fffe4f83df3debe62abd2c37b45f8f0c0
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri May 10 11:59:59 2013 +0100
+
+    sna: Attempt to discard overwritten operations before CopyArea
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 3ee42de066e4629f78e254c27d07dc33e16dbc02
+Author: Rodrigo Vivi &amp;lt;rodrigo.vivi&amp;lt; at &amp;gt;gmail.com&amp;gt;
+Date:   Mon May 13 17:56:30 2013 -0300
+
+    Adding more reserved PCI IDs for Haswell.
+    
+    As Chris mentioned there is a tendency for us to find out more
+    PCI IDs only when users report. So let's add all new reserved Haswell IDs.
+    I didn't have better names for this reserved ids and didn't want to use rsvd1
+    and rsvd2 groups, so I decided to use "B" and "E" that stands for the last
+    id digit.
+    
+    Cc: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+    Signed-off-by: Rodrigo Vivi &amp;lt;rodrigo.vivi&amp;lt; at &amp;gt;gmail.com&amp;gt;
+
+commit ee96de8b1e7e4a305ee31c0ece1d9d38df8328f9
+Author: Rodrigo Vivi &amp;lt;rodrigo.vivi&amp;lt; at &amp;gt;gmail.com&amp;gt;
+Date:   Mon May 13 17:56:29 2013 -0300
+
+    Fix Haswell GT3 names.
+    
+    When publishing first HSW ids we weren't allowed to use "GT3" codname.
+    But this is the correct codname and Mesa is using it already.
+    So to avoid people getting confused why in Mesa it is called GT3 and here
+    it is called GT2_PLUS let's fix this name in a standard and correct way.
+    
+    Signed-off-by: Rodrigo Vivi &amp;lt;rodrigo.vivi&amp;lt; at &amp;gt;gmail.com&amp;gt;
+
+commit 979d2f8d0038aa621e1c75200b10a3819e024a66
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon Apr 22 18:00:32 2013 +0100
+
+    sna/gen4: Tidy testing for an active vertex buffer id
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 7ba63307058337af5a120ad01c93b423a3e422eb
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon Apr 22 17:43:21 2013 +0100
+
+    sna/gen4: Drop unused gen parameter to SF state setup
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 2217f6356b53263b6ce8f92b5c29c0614d4ef2a5
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 13:46:11 2013 +0100
+
+    sna/trapezoids: Fix the determination of the trapezoid origin
+    
+    "src-x and src-y register the pattern to
+    the floor of the top x and y coordinate of the left edge of the
+    first trapezoid,"
+    
+    Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1178020
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 6e98df06fa9d218a6139730140a83a1940b05980
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 13:45:38 2013 +0100
+
+    sna: Add more debugging to unaligned trapezoids
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 5d62ec25937ad296114bf890a7a5ac11ff03508c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 13:44:24 2013 +0100
+
+    sna/gen7: Add DBG for channel setup for render source
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit debdcd6a09464251324238ccbd935a6ade265d94
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 13:43:57 2013 +0100
+
+    sna: Add DBG statements for choice of spans vertex emitter
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit c6e4088dcb261d89fa0065eb7d9b62eada049dbd
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu May 9 11:30:05 2013 +0100
+
+    sna: Handle cached upload buffers for partial migration to GPU
+    
+    Since the extended use of move_area_to_gpu for partial migration of
+    render sources, we exposed the lack of handling of upload caches along
+    that path.
+    
+    Reported-by: Zdenek Kabelac &amp;lt;zkabelac&amp;lt; at &amp;gt;redhat.com&amp;gt;
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 262ee1ef1e98cb84fa0af6e679c8cd61dc93f008
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue May 7 10:35:53 2013 +0100
+
+    sna: Do not attempt to clean an active scanout
+    
+    For simplicity, skip buffers that are still in use by the batch - they
+    will be removed later.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 5637c173f85a5bb9a77572e4c070e0d612e6f49d
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed May 1 15:14:55 2013 +0100
+
+    sna: Be careful not to preemptively upload portions of a SHM pixmap
+    
+    Only upload the portion of the pixmap being used for this rendering
+    operation, as outside of that may remain undefined and to be written by
+    the client before a future operation.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit ca4a32c20d4c1f91552c02b9008ae16435b92d71
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed May 1 10:18:23 2013 +0100
+
+    sna: Page align requests to userptr
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit ab576a42650d8a743dd91108f774c220d866de95
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Sat Apr 27 12:06:30 2013 +0100
+
+    Add all reserved PCI-IDs for Haswell
+    
+    There is a tendency for a product to ship based on a 'reserved' PCI-ID
+    prior to us being notified about it. In other words, the first we find
+    out about such a product is when customers start complaining about their
+    shiny new hardware not being supported...
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=63701
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 7dfb359677027310f4617b49f3da2321727a076f
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 26 13:20:36 2013 +0100
+
+    uxa/dri: Fix compile error for unknown 'bool'
+    
+    It appears that it is only accidentally pulled in on some systems, but
+    not all.
+    
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63957
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 8eaafdb43998b5cdefb20b8098c558fa5decb115
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 24 15:48:14 2013 +0100
+
+    sna: Prevent accessing an uninitialised region in move_area_to_gpu()
+    
+    If we skip the migration, we need to avoid using the unitialiased
+    region. There is no bad consequence as both branches of the if are
+    no-ops, but it does silence the static checkers and should make the
+    predicate cheaper.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit b4871f1dac3d3c8d81101ef0f29eb69099ff2dcf
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Thu Apr 18 09:51:39 2013 +0100
+
+    sna: Rephrase initialisation without a specific backend
+    
+    "generic" sounds more impressive than "no"
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 6668f68054cb33e0cd3425f5403d14092a4a17f8
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 17 15:32:49 2013 +0100
+
+    Revert "xgvevent"
+    
+    This reverts commit ddd75d6539dcf692cb76747cd63d1f301180f18a.
+    
+    This is a WIP patch, not ready for upstream. The danger of mixing topic
+    branches.
+
+commit 1bf0d869ae07ffc5b9cd79904b421cd37997ae8c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 17 15:24:10 2013 +0100
+
+    Prefer i830_dri.so for gen2 chipsets
+    
+    Probe for i830_dri.so and, if it exists, use that driver in preference
+    to i915_dri.so for DRI (i.e. GL clients). This was suggested in the
+    context of distributions supplying i915g as the main DRI driver for
+    gen3, in which case we need to provide a separate DRI driver for gen2.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit ddd75d6539dcf692cb76747cd63d1f301180f18a
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 19:13:46 2013 +0100
+
+    xgvevent
+
+commit ddd3cc4ed6ac9b69f178147b49628b7a7f3f3104
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 16 11:55:23 2013 +0100
+
+    sna: Add VALGRIND_CFLAGS whilst compiling with --enable-valgrind
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit f0b6ae2cfb811a8c234634c878800ca1fb95703f
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon Apr 15 11:42:20 2013 +0100
+
+    sna: Only release the scanout cache whilst DRM_MASTER
+    
+    If we try to release the framebuffers whilst not DRM_MASTER, the
+    operation will fail and we will leak the buffers. So do not bother
+    during the normal expiration to clean the scanout cache if vt switched
+    away.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit d68270ca84dc01a930c2ed0c05cecfac88c8cc4b
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 14:48:04 2013 +0100
+
+    sna/xvmc: silence a compiler warning
+    
+    sna_video_hwmc.c: In function 'create_context':
+    sna_video_hwmc.c:95: warning: assignment from incompatible pointer type
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit a64490c794e2e98c77e0c7f9cec6778fd1e06465
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 14:28:18 2013 +0100
+
+    sna: Add missing ';'
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 9dae6f9f1f169c228929185a8bd94e82afe92574
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 11:01:08 2013 +0100
+
+    sna: Flush the scanout cache after resizing the display
+    
+    And ensure that any new scanout allocations make the requested size.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 97fc1d4c5bd268f331aaa9f7144e4fe40837fbb0
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 10:23:43 2013 +0100
+
+    sna/gen5: Force a MI_FLUSH between using the BLT and RENDER engines
+    
+    There is a workaround that says the first RENDER command following use of
+    the BLT should be a non-pipelined command. To be safe, emit a MI_FLUSH
+    before setting up the invariants.
+    
+    Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1168066
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit aff14a23f98b1230a9053a1b8434f5cc9f766d14
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Fri Apr 12 09:49:47 2013 +0100
+
+    sna: Refine assertion about the existence of CPU damage when GPU damaged
+    
+    One particular buffer type is quite cunning and simultaneously sets both
+    CPU/GPU as all damaged (the upload buffer) so be aware when making bold
+    assertions.
+    
+    Reported-by: Jiri Slaby &amp;lt;jirislaby&amp;lt; at &amp;gt;gmail.com&amp;gt;
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit afe61281d8f92d6eb841e2522ab18e0d2fe73773
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 10 12:13:37 2013 +0100
+
+    sna/gen7: Cache our kernels in L3
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit caf3118f90bad7f88f5f08e49177a1696bf97ccb
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 10 12:16:34 2013 +0100
+
+    sna: Align uploads to start on page boundaries
+    
+    This reduces the number of loops and restarts required in the kernel.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 092e30de8a3476ab99446264edaf9b250a41736b
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 20:43:19 2013 +0100
+
+    sna/xvmc: Wrap each output adaptor
+    
+    Each of the overlay, sprite and textured video can support XvMC
+    passthrough, so we need to setup an XvMC adaptor for each of our Xv
+    adaptors.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 540802595fee7f8b2c73e74c2b44e9a21f6471ae
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Wed Apr 10 10:33:48 2013 +0100
+
+    sna: Suppress hotplug events whilst VT switched away
+    
+    Whilst we are not DRM master, not only is another server in control of
+    the outputs and responding to the udev event, we ourselves cannot
+    change modes and just cause contention upon the DRM device. Instead
+    inform userspace of the change as soon as we are DRM master again and
+    back in control.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 7afe2b45556f07b7e3a36e36da5a6d1c60366c25
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 20:57:23 2013 +0100
+
+    sna: Add a DBG option for testing userptr more thoroughly
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit fbe081061a2790e0e6e6a4065af313df0d1d6a84
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 09:52:13 2013 +0100
+
+    sna: Document fence limits for gen4+
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 5f1367d611b91008ba28a8c99a6b98a3e84449dc
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 09:18:41 2013 +0100
+
+    sna/video: Textured video passthrough no longer relies upon XvMC
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 21294eaaf16a1e35fefe0f45a237826d38dc62eb
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Tue Apr 9 09:10:33 2013 +0100
+
+    sna/video: Expand passthrough support for overlay planes
+    
+    The passthrough is actually a generic, albeit private, mechanism that
+    anything can use to pass along a GEM handle for use with Xv.
+    
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
+commit 86efddd9e4b921fcfc1a4b7492ba9174b84de64c
+Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+Date:   Mon Apr 8 10:54:56 2013 +0100
+
+    sna: Remove assertions for mapped GPU bo if priv-&amp;gt;cpu after GPU bo creation
+    
+    The condition that we have a mapped GPU bo iff priv-&amp;gt;cpu is only true if
+    we have a GPU bo at the time of using the CPU -- if we create the GPU bo
+    during move_to_gpu, then that assertion is bogus.
+    
+    Reported-by: Jiri Slaby &amp;lt;jirislaby&amp;lt; at &amp;gt;gmail.com&amp;gt;
+    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
+
 commit 678279eb373310f1a71a3d74e5a500b343e98830
 Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
 Date:   Sat Apr 6 15:58:50 2013 +0100
diff --git a/debian/changelog b/debian/changelog
index fce74d8..d9e874a 100644
--- a/debian/changelog
+++ b/debian/changelog
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-xserver-xorg-video-intel (2:2.21.6-1) UNRELEASED; urgency=low
+xserver-xorg-video-intel (2:2.21.7-1) UNRELEASED; urgency=low
 
   [ Timo Aaltonen ]
   * New upstream release.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -6,6 +6,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xserver-xorg-video-intel (2:2.21.6-1) UNRELEASED; urgency=low
   [ Maarten Lankhorst ]
   * Add valgrind to build-depends.
   * Enable valgrind by default.
+  * New upstream release.
 
  -- Timo Aaltonen &amp;lt;tjaalton&amp;lt; at &amp;gt;ubuntu.com&amp;gt;  Fri, 07 Dec 2012 09:33:39 +0200
 

commit e65ee10dfd7155230ac18a6d24a67b68336dc973
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Tue May 21 11:01:50 2013 +0100

    2.21.7 release

diff --git a/NEWS b/NEWS
index 4fc9a6b..3173f21 100644
--- a/NEWS
+++ b/NEWS
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,35 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+Release 2.21.7 (2013-05-21)
+===========================
+A couple of weeks turned into a month and a couple of weeks... Amidst
+the usual bug fixes, we have added the complete set of Haswell PCI IDs -
+hopefully future proofing ourselves against being surprised by new
+products. We can also now use the correct term for the top of the range
+Haswell variants, GT3.
+
+ * Fix several assertion failures hit by Jiri Slaby.
+
+ * Allow XvMC to also target overlay/sprite planes.
+
+ * Throw in a paranoid MI_FLUSH between BLT and RENDER operations on
+   Ironlake.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1168066
+
+ * Prevent reuse of old framebuffers after a resize.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1157678
+
+ * Fix compilation with --enable-valgrind and no --enable-debug
+
+ * Improve partial migration of render sources.
+
+ * Fix origin of trapezoids.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1178020
+
+ * Introduce copy-on-write support for cloning pixmaps. The ultimate
+   goal here is to efficiently support the TearFree mode of operation,
+   but this provides immediate benefits with firefox - most importantly
+   because of the inefficient way it now implements scrolling.
+
+
 Release 2.21.6 (2013-04-06)
 ===========================
 A surprising highlight of this release is a little refresh to the KMS
diff --git a/configure.ac b/configure.ac
index d30686f..be1e8d1 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -23,7 +23,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-intel],
-        [2.21.6],
+        [2.21.7],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-intel])
 AC_CONFIG_SRCDIR([Makefile.am])

commit ef9dc6fae585d5616446eedc1e6e91173f4064c1
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Mon May 20 11:08:51 2013 +0100

    sna: Undo a few more overwritten operations upon a bo
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna.h b/src/sna/sna.h
index aed3e08..ee3f821 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -507,6 +507,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct kgem_bo *sna_pixmap_change_tiling(PixmapPtr pixmap, uint32_t tiling);
 #define FORCE_GPU0x2
 #define RENDER_GPU0x4
 #define IGNORE_CPU0x8
+#define REPLACES0x10
 struct kgem_bo *
 sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
     struct sna_damage ***damage);
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 2c78570..6ed9e77 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2946,6 +2946,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
      box-&amp;gt;x1, box-&amp;gt;y1, box-&amp;gt;x2, box-&amp;gt;y2,
      flags));
 
+assert((hint &amp;amp; REPLACES) == 0 || (hint &amp;amp; IGNORE_CPU));
+
 assert(box-&amp;gt;x2 &amp;gt; box-&amp;gt;x1 &amp;amp;&amp;amp; box-&amp;gt;y2 &amp;gt; box-&amp;gt;y1);
 assert(pixmap-&amp;gt;refcnt);
 assert_pixmap_damage(pixmap);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3001,7 +3003,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
      __FUNCTION__, priv-&amp;gt;flush, priv-&amp;gt;shm, priv-&amp;gt;cpu, flags));
 
 if ((flags &amp;amp; PREFER_GPU) == 0 &amp;amp;&amp;amp;
-    (!priv-&amp;gt;gpu_damage || !kgem_bo_is_busy(priv-&amp;gt;gpu_bo))) {
+    (flags &amp;amp; REPLACES || !priv-&amp;gt;gpu_damage || !kgem_bo_is_busy(priv-&amp;gt;gpu_bo))) {
 DBG(("%s: try cpu as GPU bo is idle\n", __FUNCTION__));
 goto use_cpu_bo;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -12179,18 +12181,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
 }
 hint |= IGNORE_CPU;
 }
-if (priv-&amp;gt;cpu_damage == NULL &amp;amp;&amp;amp;
-    (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable) ||
-     box_inplace(pixmap, &amp;amp;region.extents))) {
-DBG(("%s: promoting to full GPU\n", __FUNCTION__));
-if (priv-&amp;gt;gpu_bo) {
-assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
-sna_damage_all(&amp;amp;priv-&amp;gt;gpu_damage,
-       pixmap-&amp;gt;drawable.width,
-       pixmap-&amp;gt;drawable.height);
-}
-}
+if (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable))
+hint |= REPLACES;
 if (priv-&amp;gt;cpu_damage == NULL) {
+if (hint &amp;amp; REPLACES &amp;amp;&amp;amp;
+    box_inplace(pixmap, &amp;amp;region.extents)) {
+DBG(("%s: promoting to full GPU\n",
+     __FUNCTION__));
+if (priv-&amp;gt;gpu_bo) {
+assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
+sna_damage_all(&amp;amp;priv-&amp;gt;gpu_damage,
+       pixmap-&amp;gt;drawable.width,
+       pixmap-&amp;gt;drawable.height);
+}
+}
 DBG(("%s: dropping last-cpu hint\n", __FUNCTION__));
 priv-&amp;gt;cpu = false;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -12209,6 +12213,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
 DBG(("%s: not using GPU, hint=%x\n", __FUNCTION__, hint));
 goto fallback;
 }
+if (hint &amp;amp; REPLACES)
+kgem_bo_undo(&amp;amp;sna-&amp;gt;kgem, bo);
 
 if (gc_is_solid(gc, &amp;amp;color)) {
 DBG(("%s: solid fill [%08x], testing for blt\n",
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index ae63e68..17cc68c 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -933,8 +933,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_composite_rectangles(CARD8 op,
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
 list_del(&amp;amp;priv-&amp;gt;flush_list);
 }
-if (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable) ||
-    box_inplace(pixmap, &amp;amp;region.extents)) {
+if (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable))
+hint |= REPLACES;
+if (hint &amp;amp; REPLACES || box_inplace(pixmap, &amp;amp;region.extents)) {
 DBG(("%s: promoting to full GPU\n", __FUNCTION__));
 if (priv-&amp;gt;gpu_bo &amp;amp;&amp;amp; priv-&amp;gt;cpu_damage == NULL) {
 assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -958,6 +959,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_composite_rectangles(CARD8 op,
 DBG(("%s: fallback due to no GPU bo\n", __FUNCTION__));
 goto fallback;
 }
+if (hint &amp;amp; REPLACES)
+kgem_bo_undo(&amp;amp;sna-&amp;gt;kgem, bo);
 
 if (!sna-&amp;gt;render.fill_boxes(sna, op, dst-&amp;gt;format, color,
     pixmap, bo, boxes, num_boxes)) {

commit d6c30d1d4df6bcdfa075bd29da7c8aabee20774c
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 12:11:34 2013 +0100

    sna: Clear the cow_list when discarding the clone upon pixmap destroy
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index a50f4d4..2c78570 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1366,6 +1366,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static Bool sna_destroy_pixmap(PixmapPtr pixmap)
 
 if (priv-&amp;gt;cow) {
 struct sna_cow *cow = COW(priv-&amp;gt;cow);
+DBG(("%s: pixmap=%ld discarding cow, refcnt=%d\n",
+     __FUNCTION__, pixmap-&amp;gt;drawable.serialNumber, cow-&amp;gt;refcnt));
+assert(cow-&amp;gt;refcnt);
+list_del(&amp;amp;priv-&amp;gt;cow_list);
 if (!--cow-&amp;gt;refcnt)
 free(cow);
 priv-&amp;gt;cow = NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1556,8 +1560,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 list_del(&amp;amp;priv-&amp;gt;cow_list);
 
 if (!--cow-&amp;gt;refcnt) {
+assert(list_is_empty(&amp;amp;cow-&amp;gt;list));
 free(cow);
-} else if (IS_COW_OWNER(priv-&amp;gt;cow)) {
+} else if (IS_COW_OWNER(priv-&amp;gt;cow) &amp;amp;&amp;amp; priv-&amp;gt;pinned) {
 PixmapPtr pixmap = priv-&amp;gt;pixmap;
 struct kgem_bo *bo;
 BoxRec box;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1589,7 +1594,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 return false;
 }
 
-cow-&amp;gt;bo = bo;
 assert(!list_is_empty(&amp;amp;cow-&amp;gt;list));
 while (!list_is_empty(&amp;amp;cow-&amp;gt;list)) {
 struct sna_pixmap *clone;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1598,9 +1602,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
  struct sna_pixmap, cow_list);
 list_del(&amp;amp;clone-&amp;gt;cow_list);
 
+assert(clone-&amp;gt;gpu_bo == cow-&amp;gt;bo);
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, clone-&amp;gt;gpu_bo);
 clone-&amp;gt;gpu_bo = kgem_bo_reference(bo);
 }
+cow-&amp;gt;bo = bo;
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, bo);
 } else {
 struct kgem_bo *bo = NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1681,6 +1687,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 cow-&amp;gt;bo = src_priv-&amp;gt;gpu_bo;
 cow-&amp;gt;refcnt = 1;
 
+DBG(("%s: attaching source cow to pixmap=%ld\n",
+     __FUNCTION__, src_priv-&amp;gt;pixmap-&amp;gt;drawable.serialNumber));
+
 src_priv-&amp;gt;cow = MAKE_COW_OWNER(cow);
 list_init(&amp;amp;src_priv-&amp;gt;cow_list);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1691,8 +1700,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 }
 assert(!src_priv-&amp;gt;mapped);
 
-if (cow == COW(dst_priv-&amp;gt;cow))
+if (cow == COW(dst_priv-&amp;gt;cow)) {
+assert(dst_priv-&amp;gt;gpu_bo == cow-&amp;gt;bo);
 return true;
+}
 
 if (dst_priv-&amp;gt;cow)
 sna_pixmap_undo_cow(sna, dst_priv, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1704,6 +1715,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 list_add(&amp;amp;dst_priv-&amp;gt;cow_list, &amp;amp;cow-&amp;gt;list);
 cow-&amp;gt;refcnt++;
 
+DBG(("%s: attaching clone to pixmap=%ld\n",
+     __FUNCTION__, dst_priv-&amp;gt;pixmap-&amp;gt;drawable.serialNumber));
+
 if (dst_priv-&amp;gt;mapped) {
 dst_priv-&amp;gt;pixmap-&amp;gt;devPrivate.ptr = NULL;
 dst_priv-&amp;gt;mapped = false;

commit 21f17455650d52848467290f609c678e85b8ceab
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 11:46:16 2013 +0100

    sna: Add the missing ref(bo) when undoing the source clone
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 7e3c0bb..a50f4d4 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1599,7 +1599,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 list_del(&amp;amp;clone-&amp;gt;cow_list);
 
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, clone-&amp;gt;gpu_bo);
-clone-&amp;gt;gpu_bo = bo;
+clone-&amp;gt;gpu_bo = kgem_bo_reference(bo);
 }
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, bo);
 } else {

commit ee166ca856ac02ca8900b9ff44ed3899add2c72a
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 11:30:03 2013 +0100

    sna: Undo the clone when replacing the DRI pixmap
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna.h b/src/sna/sna.h
index c8a954d..aed3e08 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -451,6 +451,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; PixmapPtr sna_pixmap_create_unattached(ScreenPtr screen,
        int width, int height, int depth);
 void sna_pixmap_destroy(PixmapPtr pixmap);
 
+bool
+sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags);
+
 #define MOVE_WRITE 0x1
 #define MOVE_READ 0x2
 #define MOVE_INPLACE_HINT 0x4
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index b3dca97..7e3c0bb 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1538,7 +1538,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline bool use_cpu_bo_for_upload(struct sna *sna,
 return kgem_bo_is_busy(priv-&amp;gt;gpu_bo) || kgem_bo_is_busy(priv-&amp;gt;cpu_bo);
 }
 
-static bool
+bool
 sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 {
 struct sna_cow *cow = COW(priv-&amp;gt;cow);
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index 99f9d12..06d1f21 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -505,11 +505,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo)
 assert(pixmap-&amp;gt;drawable.height * bo-&amp;gt;pitch &amp;lt;= kgem_bo_size(bo));
 assert(bo-&amp;gt;proxy == NULL);
 assert(bo-&amp;gt;flush);
-assert(priv-&amp;gt;cow == NULL);
 assert(priv-&amp;gt;pinned &amp;amp; PIN_DRI);
 assert((priv-&amp;gt;pinned &amp;amp; PIN_PRIME) == 0);
 assert(priv-&amp;gt;flush);
 
+if (priv-&amp;gt;cow)
+sna_pixmap_undo_cow(sna, priv, 0);
+
 /* Post damage on the new front buffer so that listeners, such
  * as DisplayLink know take a copy and shove it over the USB,
  * also for software cursors and the like.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -529,7 +531,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo)
 
 assert(bo-&amp;gt;refcnt);
 if (priv-&amp;gt;gpu_bo != bo) {
-kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, priv-&amp;gt;gpu_bo);
+if (priv-&amp;gt;gpu_bo)
+kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, priv-&amp;gt;gpu_bo);
 priv-&amp;gt;gpu_bo = ref(bo);
 if (priv-&amp;gt;mapped) {
 assert(!priv-&amp;gt;shm &amp;amp;&amp;amp; priv-&amp;gt;stride);

commit 8d31fe771b423a3768cbd05db994d49e941369e1
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 11:14:34 2013 +0100

    sna: Transfer ownership of the cloned bo to the pixmaps
    
    Fix the leak from the previous commit.
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 1dd8491..b3dca97 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1590,6 +1590,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 }
 
 cow-&amp;gt;bo = bo;
+assert(!list_is_empty(&amp;amp;cow-&amp;gt;list));
 while (!list_is_empty(&amp;amp;cow-&amp;gt;list)) {
 struct sna_pixmap *clone;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1600,6 +1601,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, clone-&amp;gt;gpu_bo);
 clone-&amp;gt;gpu_bo = bo;
 }
+kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, bo);
 } else {
 struct kgem_bo *bo = NULL;
 

commit 5d9315873e02d4acc5ddffc698dbf8984cbd5c42
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 10:51:44 2013 +0100

    sna: Avoid replacing pinned bo when undoing a clone
    
    Otherwise we end up cloning the scanout only to leave it dangling if the
    client copies the from the front-buffer and then writes to it.
    
    Reported-by: Nick Bowler &amp;lt;nbowler&amp;lt; at &amp;gt;draconx.ca&amp;gt;
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64675
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna.h b/src/sna/sna.h
index e381ce4..c8a954d 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -108,6 +108,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 struct sna_cow {
 struct kgem_bo *bo;
+struct list list;
 int refcnt;
 };
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -119,7 +120,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct sna_pixmap {
 void *ptr;
 #define PTR(ptr) ((void*)((uintptr_t)(ptr) &amp;amp; ~1))
 
-struct list list;
+struct list flush_list;
+struct list cow_list;
 
 uint32_t stride;
 uint32_t clear_color;
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 8125455..1dd8491 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -101,6 +101,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define IS_STATIC_PTR(ptr) ((uintptr_t)(ptr) &amp;amp; 1)
 #define MAKE_STATIC_PTR(ptr) ((void*)((uintptr_t)(ptr) | 1))
 
+#define IS_COW_OWNER(ptr) ((uintptr_t)(ptr) &amp;amp; 1)
+#define MAKE_COW_OWNER(ptr) ((void*)((uintptr_t)(ptr) | 1))
+#define COW(ptr) (void *)((uintptr_t)(ptr) &amp;amp; ~1)
+
 #if 0
 static void __sna_fallback_flush(DrawablePtr d)
 {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -513,7 +517,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void __sna_pixmap_free_cpu(struct sna *sna, struct sna_pixmap *priv)
 static void sna_pixmap_free_cpu(struct sna *sna, struct sna_pixmap *priv)
 {
 assert(priv-&amp;gt;cpu_damage == NULL);
-assert(list_is_empty(&amp;amp;priv-&amp;gt;list));
+assert(list_is_empty(&amp;amp;priv-&amp;gt;flush_list));
 
 if (IS_STATIC_PTR(priv-&amp;gt;ptr))
 return;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -653,7 +657,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline void sna_set_pixmap(PixmapPtr pixmap, struct sna_pixmap *sna)
 static struct sna_pixmap *
 _sna_pixmap_init(struct sna_pixmap *priv, PixmapPtr pixmap)


&lt;/pre&gt;</description>
    <dc:creator>Maarten Lankhorst</dc:creator>
    <dc:date>2013-05-23T07:46:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110921">
    <title>xserver-xorg-video-intel: Changes to 'upstream-experimental'</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110921</link>
    <description>&lt;pre&gt; Makefile.am                  |    2 
 NEWS                         |   32 +++
 configure.ac                 |    7 
 m4/ac_define_dir.m4          |   49 ++++
 src/intel_dri.c              |   15 +
 src/intel_driver.h           |   51 +++-
 src/intel_module.c           |   99 +++++++--
 src/sna/Makefile.am          |    2 
 src/sna/compiler.h           |    2 
 src/sna/gen4_render.c        |   10 
 src/sna/gen4_vertex.c        |    6 
 src/sna/gen5_render.c        |    7 
 src/sna/gen6_render.c        |    2 
 src/sna/gen7_render.c        |   31 ++
 src/sna/kgem.c               |  144 ++++++++++---
 src/sna/kgem.h               |    9 
 src/sna/sna.h                |   18 +
 src/sna/sna_accel.c          |  445 +++++++++++++++++++++++++++++++++++++------
 src/sna/sna_blt.c            |   46 +++-
 src/sna/sna_composite.c      |   20 +
 src/sna/sna_display.c        |   23 +-
 src/sna/sna_dri.c            |   27 ++
 src/sna/sna_driver.c         |   23 +-
 src/sna/sna_render.c         |   13 -
 src/sna/sna_trapezoids.c     |   85 +++++---
 src/sna/sna_video.c          |   10 
 src/sna/sna_video.h          |   19 +
 src/sna/sna_video_hwmc.c     |   75 +++----
 src/sna/sna_video_hwmc.h     |    4 
 src/sna/sna_video_overlay.c  |   53 +++--
 src/sna/sna_video_sprite.c   |   46 +++-
 src/sna/sna_video_textured.c |   57 -----
 32 files changed, 1087 insertions(+), 345 deletions(-)

New commits:
commit e65ee10dfd7155230ac18a6d24a67b68336dc973
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Tue May 21 11:01:50 2013 +0100

    2.21.7 release

diff --git a/NEWS b/NEWS
index 4fc9a6b..3173f21 100644
--- a/NEWS
+++ b/NEWS
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,3 +1,35 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+Release 2.21.7 (2013-05-21)
+===========================
+A couple of weeks turned into a month and a couple of weeks... Amidst
+the usual bug fixes, we have added the complete set of Haswell PCI IDs -
+hopefully future proofing ourselves against being surprised by new
+products. We can also now use the correct term for the top of the range
+Haswell variants, GT3.
+
+ * Fix several assertion failures hit by Jiri Slaby.
+
+ * Allow XvMC to also target overlay/sprite planes.
+
+ * Throw in a paranoid MI_FLUSH between BLT and RENDER operations on
+   Ironlake.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1168066
+
+ * Prevent reuse of old framebuffers after a resize.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1157678
+
+ * Fix compilation with --enable-valgrind and no --enable-debug
+
+ * Improve partial migration of render sources.
+
+ * Fix origin of trapezoids.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1178020
+
+ * Introduce copy-on-write support for cloning pixmaps. The ultimate
+   goal here is to efficiently support the TearFree mode of operation,
+   but this provides immediate benefits with firefox - most importantly
+   because of the inefficient way it now implements scrolling.
+
+
 Release 2.21.6 (2013-04-06)
 ===========================
 A surprising highlight of this release is a little refresh to the KMS
diff --git a/configure.ac b/configure.ac
index d30686f..be1e8d1 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -23,7 +23,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-intel],
-        [2.21.6],
+        [2.21.7],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-intel])
 AC_CONFIG_SRCDIR([Makefile.am])

commit ef9dc6fae585d5616446eedc1e6e91173f4064c1
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Mon May 20 11:08:51 2013 +0100

    sna: Undo a few more overwritten operations upon a bo
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna.h b/src/sna/sna.h
index aed3e08..ee3f821 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -507,6 +507,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct kgem_bo *sna_pixmap_change_tiling(PixmapPtr pixmap, uint32_t tiling);
 #define FORCE_GPU0x2
 #define RENDER_GPU0x4
 #define IGNORE_CPU0x8
+#define REPLACES0x10
 struct kgem_bo *
 sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
     struct sna_damage ***damage);
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 2c78570..6ed9e77 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2946,6 +2946,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
      box-&amp;gt;x1, box-&amp;gt;y1, box-&amp;gt;x2, box-&amp;gt;y2,
      flags));
 
+assert((hint &amp;amp; REPLACES) == 0 || (hint &amp;amp; IGNORE_CPU));
+
 assert(box-&amp;gt;x2 &amp;gt; box-&amp;gt;x1 &amp;amp;&amp;amp; box-&amp;gt;y2 &amp;gt; box-&amp;gt;y1);
 assert(pixmap-&amp;gt;refcnt);
 assert_pixmap_damage(pixmap);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3001,7 +3003,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
      __FUNCTION__, priv-&amp;gt;flush, priv-&amp;gt;shm, priv-&amp;gt;cpu, flags));
 
 if ((flags &amp;amp; PREFER_GPU) == 0 &amp;amp;&amp;amp;
-    (!priv-&amp;gt;gpu_damage || !kgem_bo_is_busy(priv-&amp;gt;gpu_bo))) {
+    (flags &amp;amp; REPLACES || !priv-&amp;gt;gpu_damage || !kgem_bo_is_busy(priv-&amp;gt;gpu_bo))) {
 DBG(("%s: try cpu as GPU bo is idle\n", __FUNCTION__));
 goto use_cpu_bo;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -12179,18 +12181,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
 }
 hint |= IGNORE_CPU;
 }
-if (priv-&amp;gt;cpu_damage == NULL &amp;amp;&amp;amp;
-    (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable) ||
-     box_inplace(pixmap, &amp;amp;region.extents))) {
-DBG(("%s: promoting to full GPU\n", __FUNCTION__));
-if (priv-&amp;gt;gpu_bo) {
-assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
-sna_damage_all(&amp;amp;priv-&amp;gt;gpu_damage,
-       pixmap-&amp;gt;drawable.width,
-       pixmap-&amp;gt;drawable.height);
-}
-}
+if (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable))
+hint |= REPLACES;
 if (priv-&amp;gt;cpu_damage == NULL) {
+if (hint &amp;amp; REPLACES &amp;amp;&amp;amp;
+    box_inplace(pixmap, &amp;amp;region.extents)) {
+DBG(("%s: promoting to full GPU\n",
+     __FUNCTION__));
+if (priv-&amp;gt;gpu_bo) {
+assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
+sna_damage_all(&amp;amp;priv-&amp;gt;gpu_damage,
+       pixmap-&amp;gt;drawable.width,
+       pixmap-&amp;gt;drawable.height);
+}
+}
 DBG(("%s: dropping last-cpu hint\n", __FUNCTION__));
 priv-&amp;gt;cpu = false;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -12209,6 +12213,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
 DBG(("%s: not using GPU, hint=%x\n", __FUNCTION__, hint));
 goto fallback;
 }
+if (hint &amp;amp; REPLACES)
+kgem_bo_undo(&amp;amp;sna-&amp;gt;kgem, bo);
 
 if (gc_is_solid(gc, &amp;amp;color)) {
 DBG(("%s: solid fill [%08x], testing for blt\n",
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index ae63e68..17cc68c 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -933,8 +933,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_composite_rectangles(CARD8 op,
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
 list_del(&amp;amp;priv-&amp;gt;flush_list);
 }
-if (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable) ||
-    box_inplace(pixmap, &amp;amp;region.extents)) {
+if (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable))
+hint |= REPLACES;
+if (hint &amp;amp; REPLACES || box_inplace(pixmap, &amp;amp;region.extents)) {
 DBG(("%s: promoting to full GPU\n", __FUNCTION__));
 if (priv-&amp;gt;gpu_bo &amp;amp;&amp;amp; priv-&amp;gt;cpu_damage == NULL) {
 assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -958,6 +959,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_composite_rectangles(CARD8 op,
 DBG(("%s: fallback due to no GPU bo\n", __FUNCTION__));
 goto fallback;
 }
+if (hint &amp;amp; REPLACES)
+kgem_bo_undo(&amp;amp;sna-&amp;gt;kgem, bo);
 
 if (!sna-&amp;gt;render.fill_boxes(sna, op, dst-&amp;gt;format, color,
     pixmap, bo, boxes, num_boxes)) {

commit d6c30d1d4df6bcdfa075bd29da7c8aabee20774c
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 12:11:34 2013 +0100

    sna: Clear the cow_list when discarding the clone upon pixmap destroy
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index a50f4d4..2c78570 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1366,6 +1366,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static Bool sna_destroy_pixmap(PixmapPtr pixmap)
 
 if (priv-&amp;gt;cow) {
 struct sna_cow *cow = COW(priv-&amp;gt;cow);
+DBG(("%s: pixmap=%ld discarding cow, refcnt=%d\n",
+     __FUNCTION__, pixmap-&amp;gt;drawable.serialNumber, cow-&amp;gt;refcnt));
+assert(cow-&amp;gt;refcnt);
+list_del(&amp;amp;priv-&amp;gt;cow_list);
 if (!--cow-&amp;gt;refcnt)
 free(cow);
 priv-&amp;gt;cow = NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1556,8 +1560,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 list_del(&amp;amp;priv-&amp;gt;cow_list);
 
 if (!--cow-&amp;gt;refcnt) {
+assert(list_is_empty(&amp;amp;cow-&amp;gt;list));
 free(cow);
-} else if (IS_COW_OWNER(priv-&amp;gt;cow)) {
+} else if (IS_COW_OWNER(priv-&amp;gt;cow) &amp;amp;&amp;amp; priv-&amp;gt;pinned) {
 PixmapPtr pixmap = priv-&amp;gt;pixmap;
 struct kgem_bo *bo;
 BoxRec box;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1589,7 +1594,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 return false;
 }
 
-cow-&amp;gt;bo = bo;
 assert(!list_is_empty(&amp;amp;cow-&amp;gt;list));
 while (!list_is_empty(&amp;amp;cow-&amp;gt;list)) {
 struct sna_pixmap *clone;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1598,9 +1602,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
  struct sna_pixmap, cow_list);
 list_del(&amp;amp;clone-&amp;gt;cow_list);
 
+assert(clone-&amp;gt;gpu_bo == cow-&amp;gt;bo);
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, clone-&amp;gt;gpu_bo);
 clone-&amp;gt;gpu_bo = kgem_bo_reference(bo);
 }
+cow-&amp;gt;bo = bo;
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, bo);
 } else {
 struct kgem_bo *bo = NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1681,6 +1687,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 cow-&amp;gt;bo = src_priv-&amp;gt;gpu_bo;
 cow-&amp;gt;refcnt = 1;
 
+DBG(("%s: attaching source cow to pixmap=%ld\n",
+     __FUNCTION__, src_priv-&amp;gt;pixmap-&amp;gt;drawable.serialNumber));
+
 src_priv-&amp;gt;cow = MAKE_COW_OWNER(cow);
 list_init(&amp;amp;src_priv-&amp;gt;cow_list);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1691,8 +1700,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 }
 assert(!src_priv-&amp;gt;mapped);
 
-if (cow == COW(dst_priv-&amp;gt;cow))
+if (cow == COW(dst_priv-&amp;gt;cow)) {
+assert(dst_priv-&amp;gt;gpu_bo == cow-&amp;gt;bo);
 return true;
+}
 
 if (dst_priv-&amp;gt;cow)
 sna_pixmap_undo_cow(sna, dst_priv, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1704,6 +1715,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 list_add(&amp;amp;dst_priv-&amp;gt;cow_list, &amp;amp;cow-&amp;gt;list);
 cow-&amp;gt;refcnt++;
 
+DBG(("%s: attaching clone to pixmap=%ld\n",
+     __FUNCTION__, dst_priv-&amp;gt;pixmap-&amp;gt;drawable.serialNumber));
+
 if (dst_priv-&amp;gt;mapped) {
 dst_priv-&amp;gt;pixmap-&amp;gt;devPrivate.ptr = NULL;
 dst_priv-&amp;gt;mapped = false;

commit 21f17455650d52848467290f609c678e85b8ceab
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 11:46:16 2013 +0100

    sna: Add the missing ref(bo) when undoing the source clone
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 7e3c0bb..a50f4d4 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1599,7 +1599,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 list_del(&amp;amp;clone-&amp;gt;cow_list);
 
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, clone-&amp;gt;gpu_bo);
-clone-&amp;gt;gpu_bo = bo;
+clone-&amp;gt;gpu_bo = kgem_bo_reference(bo);
 }
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, bo);
 } else {

commit ee166ca856ac02ca8900b9ff44ed3899add2c72a
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 11:30:03 2013 +0100

    sna: Undo the clone when replacing the DRI pixmap
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna.h b/src/sna/sna.h
index c8a954d..aed3e08 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -451,6 +451,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; PixmapPtr sna_pixmap_create_unattached(ScreenPtr screen,
        int width, int height, int depth);
 void sna_pixmap_destroy(PixmapPtr pixmap);
 
+bool
+sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags);
+
 #define MOVE_WRITE 0x1
 #define MOVE_READ 0x2
 #define MOVE_INPLACE_HINT 0x4
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index b3dca97..7e3c0bb 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1538,7 +1538,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline bool use_cpu_bo_for_upload(struct sna *sna,
 return kgem_bo_is_busy(priv-&amp;gt;gpu_bo) || kgem_bo_is_busy(priv-&amp;gt;cpu_bo);
 }
 
-static bool
+bool
 sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 {
 struct sna_cow *cow = COW(priv-&amp;gt;cow);
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index 99f9d12..06d1f21 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -505,11 +505,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo)
 assert(pixmap-&amp;gt;drawable.height * bo-&amp;gt;pitch &amp;lt;= kgem_bo_size(bo));
 assert(bo-&amp;gt;proxy == NULL);
 assert(bo-&amp;gt;flush);
-assert(priv-&amp;gt;cow == NULL);
 assert(priv-&amp;gt;pinned &amp;amp; PIN_DRI);
 assert((priv-&amp;gt;pinned &amp;amp; PIN_PRIME) == 0);
 assert(priv-&amp;gt;flush);
 
+if (priv-&amp;gt;cow)
+sna_pixmap_undo_cow(sna, priv, 0);
+
 /* Post damage on the new front buffer so that listeners, such
  * as DisplayLink know take a copy and shove it over the USB,
  * also for software cursors and the like.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -529,7 +531,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo)
 
 assert(bo-&amp;gt;refcnt);
 if (priv-&amp;gt;gpu_bo != bo) {
-kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, priv-&amp;gt;gpu_bo);
+if (priv-&amp;gt;gpu_bo)
+kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, priv-&amp;gt;gpu_bo);
 priv-&amp;gt;gpu_bo = ref(bo);
 if (priv-&amp;gt;mapped) {
 assert(!priv-&amp;gt;shm &amp;amp;&amp;amp; priv-&amp;gt;stride);

commit 8d31fe771b423a3768cbd05db994d49e941369e1
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 11:14:34 2013 +0100

    sna: Transfer ownership of the cloned bo to the pixmaps
    
    Fix the leak from the previous commit.
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 1dd8491..b3dca97 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1590,6 +1590,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 }
 
 cow-&amp;gt;bo = bo;
+assert(!list_is_empty(&amp;amp;cow-&amp;gt;list));
 while (!list_is_empty(&amp;amp;cow-&amp;gt;list)) {
 struct sna_pixmap *clone;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1600,6 +1601,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, clone-&amp;gt;gpu_bo);
 clone-&amp;gt;gpu_bo = bo;
 }
+kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, bo);
 } else {
 struct kgem_bo *bo = NULL;
 

commit 5d9315873e02d4acc5ddffc698dbf8984cbd5c42
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 10:51:44 2013 +0100

    sna: Avoid replacing pinned bo when undoing a clone
    
    Otherwise we end up cloning the scanout only to leave it dangling if the
    client copies the from the front-buffer and then writes to it.
    
    Reported-by: Nick Bowler &amp;lt;nbowler&amp;lt; at &amp;gt;draconx.ca&amp;gt;
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64675
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna.h b/src/sna/sna.h
index e381ce4..c8a954d 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -108,6 +108,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 struct sna_cow {
 struct kgem_bo *bo;
+struct list list;
 int refcnt;
 };
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -119,7 +120,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct sna_pixmap {
 void *ptr;
 #define PTR(ptr) ((void*)((uintptr_t)(ptr) &amp;amp; ~1))
 
-struct list list;
+struct list flush_list;
+struct list cow_list;
 
 uint32_t stride;
 uint32_t clear_color;
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 8125455..1dd8491 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -101,6 +101,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define IS_STATIC_PTR(ptr) ((uintptr_t)(ptr) &amp;amp; 1)
 #define MAKE_STATIC_PTR(ptr) ((void*)((uintptr_t)(ptr) | 1))
 
+#define IS_COW_OWNER(ptr) ((uintptr_t)(ptr) &amp;amp; 1)
+#define MAKE_COW_OWNER(ptr) ((void*)((uintptr_t)(ptr) | 1))
+#define COW(ptr) (void *)((uintptr_t)(ptr) &amp;amp; ~1)
+
 #if 0
 static void __sna_fallback_flush(DrawablePtr d)
 {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -513,7 +517,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void __sna_pixmap_free_cpu(struct sna *sna, struct sna_pixmap *priv)
 static void sna_pixmap_free_cpu(struct sna *sna, struct sna_pixmap *priv)
 {
 assert(priv-&amp;gt;cpu_damage == NULL);
-assert(list_is_empty(&amp;amp;priv-&amp;gt;list));
+assert(list_is_empty(&amp;amp;priv-&amp;gt;flush_list));
 
 if (IS_STATIC_PTR(priv-&amp;gt;ptr))
 return;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -653,7 +657,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline void sna_set_pixmap(PixmapPtr pixmap, struct sna_pixmap *sna)
 static struct sna_pixmap *
 _sna_pixmap_init(struct sna_pixmap *priv, PixmapPtr pixmap)
 {
-list_init(&amp;amp;priv-&amp;gt;list);
+list_init(&amp;amp;priv-&amp;gt;flush_list);
 priv-&amp;gt;source_count = SOURCE_BIAS;
 priv-&amp;gt;pixmap = pixmap;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1304,7 +1308,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void sna_add_flush_pixmap(struct sna *sna,
 assert(bo);
 assert(bo-&amp;gt;flush);
 assert(priv-&amp;gt;gpu_damage == NULL || priv-&amp;gt;gpu_bo);
-list_move(&amp;amp;priv-&amp;gt;list, &amp;amp;sna-&amp;gt;flush_pixmaps);
+list_move(&amp;amp;priv-&amp;gt;flush_list, &amp;amp;sna-&amp;gt;flush_pixmaps);
 
 if (bo-&amp;gt;exec == NULL &amp;amp;&amp;amp; kgem_is_idle(&amp;amp;sna-&amp;gt;kgem)) {
 DBG(("%s: new flush bo, flushin before\n", __FUNCTION__));
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1316,7 +1320,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void __sna_free_pixmap(struct sna *sna,
       PixmapPtr pixmap,
       struct sna_pixmap *priv)
 {
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 
 assert(priv-&amp;gt;gpu_damage == NULL);
 assert(priv-&amp;gt;cpu_damage == NULL);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1361,8 +1365,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static Bool sna_destroy_pixmap(PixmapPtr pixmap)
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
 
 if (priv-&amp;gt;cow) {
-if (!--priv-&amp;gt;cow-&amp;gt;refcnt)
-free(priv-&amp;gt;cow);
+struct sna_cow *cow = COW(priv-&amp;gt;cow);
+if (!--cow-&amp;gt;refcnt)
+free(cow);
 priv-&amp;gt;cow = NULL;
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1536,17 +1541,65 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline bool use_cpu_bo_for_upload(struct sna *sna,
 static bool
 sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 {
+struct sna_cow *cow = COW(priv-&amp;gt;cow);
+
 DBG(("%s: pixmap=%ld, handle=%ld, flags=%x\n",
      __FUNCTION__,
      priv-&amp;gt;pixmap-&amp;gt;drawable.serialNumber,
      priv-&amp;gt;gpu_bo-&amp;gt;handle,
      flags));
 
-assert(priv-&amp;gt;gpu_bo == priv-&amp;gt;cow-&amp;gt;bo);
+assert(priv-&amp;gt;gpu_bo == cow-&amp;gt;bo);
 assert(!priv-&amp;gt;mapped);
+assert(cow-&amp;gt;refcnt);
+
+list_del(&amp;amp;priv-&amp;gt;cow_list);
+
+if (!--cow-&amp;gt;refcnt) {
+free(cow);
+} else if (IS_COW_OWNER(priv-&amp;gt;cow)) {
+PixmapPtr pixmap = priv-&amp;gt;pixmap;
+struct kgem_bo *bo;
+BoxRec box;
+
+DBG(("%s: copying the Holy cow\n", __FUNCTION__));
+
+box.x1 = box.y1 = 0;
+box.x2 = pixmap-&amp;gt;drawable.width;
+box.y2 = pixmap-&amp;gt;drawable.height;
 
-if (!--priv-&amp;gt;cow-&amp;gt;refcnt) {
-free(priv-&amp;gt;cow);
+bo = kgem_create_2d(&amp;amp;sna-&amp;gt;kgem,
+    box.x2, box.y2,
+    pixmap-&amp;gt;drawable.bitsPerPixel,
+    sna_pixmap_choose_tiling(pixmap, DEFAULT_TILING),
+    0);
+if (bo == NULL) {
+cow-&amp;gt;refcnt++;
+DBG(("%s: allocation failed\n", __FUNCTION__));
+return false;
+}
+
+if (!sna-&amp;gt;render.copy_boxes(sna, GXcopy,
+    pixmap, priv-&amp;gt;gpu_bo, 0, 0,
+    pixmap, bo, 0, 0,
+    &amp;amp;box, 1, 0)) {
+DBG(("%s: copy failed\n", __FUNCTION__));
+kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, bo);
+cow-&amp;gt;refcnt++;
+return false;
+}
+
+cow-&amp;gt;bo = bo;
+while (!list_is_empty(&amp;amp;cow-&amp;gt;list)) {
+struct sna_pixmap *clone;
+
+clone = list_first_entry(&amp;amp;cow-&amp;gt;list,
+ struct sna_pixmap, cow_list);
+list_del(&amp;amp;clone-&amp;gt;cow_list);
+
+kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, clone-&amp;gt;gpu_bo);
+clone-&amp;gt;gpu_bo = bo;
+}
 } else {
 struct kgem_bo *bo = NULL;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1566,7 +1619,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
     sna_pixmap_choose_tiling(pixmap, DEFAULT_TILING),
     0);
 if (bo == NULL) {
-priv-&amp;gt;cow-&amp;gt;refcnt++;
+cow-&amp;gt;refcnt++;
 DBG(("%s: allocation failed\n", __FUNCTION__));
 return false;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1577,7 +1630,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
     &amp;amp;box, 1, 0)) {
 DBG(("%s: copy failed\n", __FUNCTION__));
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, bo);
-priv-&amp;gt;cow-&amp;gt;refcnt++;
+cow-&amp;gt;refcnt++;
 return false;
 }
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1607,25 +1660,27 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
      dst_priv-&amp;gt;pixmap-&amp;gt;drawable.serialNumber,
      src_priv-&amp;gt;gpu_bo-&amp;gt;handle));
 
-if (src_priv-&amp;gt;pinned &amp;amp; PIN_DRI || dst_priv-&amp;gt;pinned) {
-DBG(("%s: can't cow, src pinned=%x, dst_pinned=%x\n",
-     __FUNCTION__, src_priv-&amp;gt;pinned, dst_priv-&amp;gt;pinned));
+if (dst_priv-&amp;gt;pinned) {
+DBG(("%s: can't cow, dst_pinned=%x\n",
+     __FUNCTION__, dst_priv-&amp;gt;pinned));
 return false;
 }
 
-assert(!src_priv-&amp;gt;flush);
 assert(!dst_priv-&amp;gt;flush);
 
-cow = src_priv-&amp;gt;cow;
+cow = COW(src_priv-&amp;gt;cow);
 if (cow == NULL) {
 cow = malloc(sizeof(*cow));
 if (cow == NULL)
 return false;
 
+list_init(&amp;amp;cow-&amp;gt;list);
+
 cow-&amp;gt;bo = src_priv-&amp;gt;gpu_bo;
 cow-&amp;gt;refcnt = 1;
 
-src_priv-&amp;gt;cow = cow;
+src_priv-&amp;gt;cow = MAKE_COW_OWNER(cow);
+list_init(&amp;amp;src_priv-&amp;gt;cow_list);
 
 if (src_priv-&amp;gt;mapped) {
 src_priv-&amp;gt;pixmap-&amp;gt;devPrivate.ptr = NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1634,7 +1689,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 }
 assert(!src_priv-&amp;gt;mapped);
 
-if (cow == dst_priv-&amp;gt;cow)
+if (cow == COW(dst_priv-&amp;gt;cow))
 return true;
 
 if (dst_priv-&amp;gt;cow)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1644,6 +1699,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 kgem_bo_destroy(&amp;amp;sna-&amp;gt;kgem, dst_priv-&amp;gt;gpu_bo);
 dst_priv-&amp;gt;gpu_bo = kgem_bo_reference(cow-&amp;gt;bo);
 dst_priv-&amp;gt;cow = cow;
+list_add(&amp;amp;dst_priv-&amp;gt;cow_list, &amp;amp;cow-&amp;gt;list);
 cow-&amp;gt;refcnt++;
 
 if (dst_priv-&amp;gt;mapped) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1742,7 +1798,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; _sna_pixmap_move_to_cpu(PixmapPtr pixmap, unsigned int flags)
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
 priv-&amp;gt;clear = false;
 priv-&amp;gt;cpu = false;
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 
 assert(!priv-&amp;gt;shm);
 assert(priv-&amp;gt;cpu_bo == NULL || !priv-&amp;gt;cpu_bo-&amp;gt;flush);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1800,7 +1856,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; skip_inplace_map:
        pixmap-&amp;gt;drawable.height);
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
 sna_pixmap_free_cpu(sna, priv);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 priv-&amp;gt;clear = false;
 }
 priv-&amp;gt;cpu = false;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1839,7 +1895,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; skip_inplace_map:
        pixmap-&amp;gt;drawable.height);
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
 sna_pixmap_free_cpu(sna, priv);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 priv-&amp;gt;clear = false;
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2184,7 +2240,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_drawable_move_region_to_cpu(DrawablePtr drawable,
      __FUNCTION__));
 assert(priv-&amp;gt;cpu == false || (priv-&amp;gt;mapped &amp;amp;&amp;amp; IS_CPU_MAP(priv-&amp;gt;gpu_bo-&amp;gt;map)));
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 } else
 sna_damage_subtract(&amp;amp;priv-&amp;gt;cpu_damage,
     region);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2505,7 +2561,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; out:
 priv-&amp;gt;source_count = SOURCE_BIAS;
 assert(priv-&amp;gt;gpu_bo == NULL || priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
 assert(priv-&amp;gt;gpu_bo || priv-&amp;gt;gpu_damage == NULL);
-assert(!priv-&amp;gt;flush || !list_is_empty(&amp;amp;priv-&amp;gt;list));
+assert(!priv-&amp;gt;flush || !list_is_empty(&amp;amp;priv-&amp;gt;flush_list));
 }
 if ((flags &amp;amp; MOVE_ASYNC_HINT) == 0 &amp;amp;&amp;amp; priv-&amp;gt;cpu_bo) {
 DBG(("%s: syncing cpu bo\n", __FUNCTION__));
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2663,7 +2719,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int fl
 assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
 assert(priv-&amp;gt;cpu == false || (priv-&amp;gt;mapped &amp;amp;&amp;amp; IS_CPU_MAP(priv-&amp;gt;gpu_bo-&amp;gt;map)));
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 goto done;
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2682,7 +2738,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int fl
 assert_pixmap_damage(pixmap);
 
 if (priv-&amp;gt;cpu_damage == NULL) {
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 return sna_pixmap_move_to_gpu(pixmap, flags);
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2851,7 +2907,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; done:
 sna_pixmap_free_cpu(sna, priv);
 }
 if (priv-&amp;gt;cpu_damage == NULL &amp;amp;&amp;amp; priv-&amp;gt;flush)
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 
 assert(!priv-&amp;gt;gpu_bo-&amp;gt;proxy || (flags &amp;amp; MOVE_WRITE) == 0);
 return sna_pixmap_mark_active(sna, priv) != NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3012,7 +3068,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
 
 sna_damage_subtract(&amp;amp;priv-&amp;gt;cpu_damage, &amp;amp;region);
 if (priv-&amp;gt;cpu_damage == NULL) {
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 priv-&amp;gt;cpu = false;
 }
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3105,7 +3161,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; done:
       pixmap-&amp;gt;drawable.width,
       pixmap-&amp;gt;drawable.height)) {
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 *damage = NULL;
 } else
 *damage = &amp;amp;priv-&amp;gt;gpu_damage;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3357,7 +3413,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags)
 assert(priv-&amp;gt;gpu_bo-&amp;gt;proxy == NULL);
 assert(priv-&amp;gt;cpu == false || (priv-&amp;gt;mapped &amp;amp;&amp;amp; IS_CPU_MAP(priv-&amp;gt;gpu_bo-&amp;gt;map)));
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 goto active;
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3508,7 +3564,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags)
 sna_pixmap_free_cpu(sna, priv);
 }
 done:
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 
 sna_damage_reduce_all(&amp;amp;priv-&amp;gt;gpu_damage,
       pixmap-&amp;gt;drawable.width,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4545,7 +4601,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
 dst_priv-&amp;gt;gpu_bo = NULL;
 }
 sna_damage_destroy(&amp;amp;dst_priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;dst_priv-&amp;gt;list);
+list_del(&amp;amp;dst_priv-&amp;gt;flush_list);
 dst_priv-&amp;gt;cpu = false;
 }
 if (region-&amp;gt;data == NULL)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4619,7 +4675,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
        dst_pixmap-&amp;gt;drawable.width,
        dst_pixmap-&amp;gt;drawable.height);
 sna_damage_destroy(&amp;amp;dst_priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;dst_priv-&amp;gt;list);
+list_del(&amp;amp;dst_priv-&amp;gt;flush_list);
 if (dst_priv-&amp;gt;shm)
 sna_add_flush_pixmap(sna, dst_priv, dst_priv-&amp;gt;cpu_bo);
 return;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4866,7 +4922,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
 sna_damage_all(&amp;amp;dst_priv-&amp;gt;gpu_damage,
        dst_pixmap-&amp;gt;drawable.width,
        dst_pixmap-&amp;gt;drawable.height);
-list_del(&amp;amp;dst_priv-&amp;gt;list);
+list_del(&amp;amp;dst_priv-&amp;gt;flush_list);
 } else
 sna_damage_add(&amp;amp;dst_priv-&amp;gt;gpu_damage,
        region);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -9652,7 +9708,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_poly_fill_rect_blt(DrawablePtr drawable,
        pixmap-&amp;gt;drawable.width,
        pixmap-&amp;gt;drawable.height);
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 priv-&amp;gt;clear = true;
 priv-&amp;gt;clear_color = gc-&amp;gt;alu == GXcopy ? pixel : 0;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -12103,7 +12159,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
 priv-&amp;gt;gpu_bo = NULL;
 }
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 }
 hint |= IGNORE_CPU;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -13965,9 +14021,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_accel_flush_callback(CallbackListPtr *list,
 bool ret;
 
 priv = list_first_entry(&amp;amp;sna-&amp;gt;flush_pixmaps,
-struct sna_pixmap, list);
+struct sna_pixmap, flush_list);
 
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 if (priv-&amp;gt;shm) {
 DBG(("%s: syncing SHM pixmap=%ld (refcnt=%d)\n",
      __FUNCTION__,
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index df2aa1a..ae63e68 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -627,7 +627,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_composite(CARD8 op,
 
 sna_damage_subtract(&amp;amp;priv-&amp;gt;cpu_damage, &amp;amp;region);
 if (priv-&amp;gt;cpu_damage == NULL) {
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 priv-&amp;gt;cpu = false;
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -931,7 +931,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_composite_rectangles(CARD8 op,
 priv-&amp;gt;gpu_bo = NULL;
 }
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 }
 if (region_subsumes_drawable(&amp;amp;region, &amp;amp;pixmap-&amp;gt;drawable) ||
     box_inplace(pixmap, &amp;amp;region.extents)) {
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index 77b2e07..99f9d12 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -443,7 +443,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void _sna_dri_destroy_buffer(struct sna *sna, DRI2Buffer2Ptr buffer)
      pixmap-&amp;gt;drawable.serialNumber,
      pixmap == sna-&amp;gt;front));
 
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 
 priv-&amp;gt;gpu_bo-&amp;gt;flush = false;
 priv-&amp;gt;pinned &amp;amp;= ~PIN_DRI;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -524,7 +524,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo)
        pixmap-&amp;gt;drawable.width,
        pixmap-&amp;gt;drawable.height);
 sna_damage_destroy(&amp;amp;priv-&amp;gt;cpu_damage);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 priv-&amp;gt;cpu = false;
 
 assert(bo-&amp;gt;refcnt);
diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c
index 7907e8d..5af7d41 100644
--- a/src/sna/sna_trapezoids.c
+++ b/src/sna/sna_trapezoids.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -6712,7 +6712,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mark_damaged(PixmapPtr pixmap, struct sna_pixmap *priv,
 sna_damage_all(&amp;amp;priv-&amp;gt;gpu_damage,
        pixmap-&amp;gt;drawable.width,
        pixmap-&amp;gt;drawable.height);
-list_del(&amp;amp;priv-&amp;gt;list);
+list_del(&amp;amp;priv-&amp;gt;flush_list);
 } else {
 sna_damage_add_box(&amp;amp;priv-&amp;gt;gpu_damage, box);
 sna_damage_subtract_box(&amp;amp;priv-&amp;gt;cpu_damage, box);

commit 3efe143e367acfa2ff38c63388d24a8d06331944
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Fri May 17 10:30:51 2013 +0100

    sna: Clear mapped hints upon cloning a pair of pixmaps
    
    Once cloned, we do not want to use inplace operations and instead force
    a copy. However, if we do not relinquish the hints when copying across
    the bo, then those hints become stale and lead to corruption.
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index f6246a3..8125455 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1536,14 +1536,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline bool use_cpu_bo_for_upload(struct sna *sna,
 static bool
 sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags)
 {
-assert(priv-&amp;gt;gpu_bo == priv-&amp;gt;cow-&amp;gt;bo);
-
 DBG(("%s: pixmap=%ld, handle=%ld, flags=%x\n",
      __FUNCTION__,
      priv-&amp;gt;pixmap-&amp;gt;drawable.serialNumber,
      priv-&amp;gt;gpu_bo-&amp;gt;handle,
      flags));
 
+assert(priv-&amp;gt;gpu_bo == priv-&amp;gt;cow-&amp;gt;bo);
+assert(!priv-&amp;gt;mapped);
+
 if (!--priv-&amp;gt;cow-&amp;gt;refcnt) {
 free(priv-&amp;gt;cow);
 } else {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1612,6 +1613,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 return false;
 }
 
+assert(!src_priv-&amp;gt;flush);
 assert(!dst_priv-&amp;gt;flush);
 
 cow = src_priv-&amp;gt;cow;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1624,7 +1626,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 cow-&amp;gt;refcnt = 1;
 
 src_priv-&amp;gt;cow = cow;
+
+if (src_priv-&amp;gt;mapped) {
+src_priv-&amp;gt;pixmap-&amp;gt;devPrivate.ptr = NULL;
+src_priv-&amp;gt;mapped = false;
+}
 }
+assert(!src_priv-&amp;gt;mapped);
 
 if (cow == dst_priv-&amp;gt;cow)
 return true;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1638,6 +1646,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sna_pixmap_make_cow(struct sna *sna,
 dst_priv-&amp;gt;cow = cow;
 cow-&amp;gt;refcnt++;
 
+if (dst_priv-&amp;gt;mapped) {
+dst_priv-&amp;gt;pixmap-&amp;gt;devPrivate.ptr = NULL;
+dst_priv-&amp;gt;mapped = false;
+}
+
 return true;
 }
 

commit f57a65c35268f215c17f1a02b3af50a6678ce3c1
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Tue May 14 16:15:57 2013 +0100

    sna: Correct assertions to allow discarding of cpu hint for inplace ops
    
    Reported-by: Zdenek Kabelac &amp;lt;zkabelac&amp;lt; at &amp;gt;redhat.com&amp;gt;
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 067e2dd..f6246a3 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1711,6 +1711,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; _sna_pixmap_move_to_cpu(PixmapPtr pixmap, unsigned int flags)
 DBG(("%s: write inplace\n", __FUNCTION__));
 assert(!priv-&amp;gt;shm);
 assert(priv-&amp;gt;gpu_bo-&amp;gt;exec == NULL);
+assert((flags &amp;amp; MOVE_READ) == 0 || priv-&amp;gt;cpu_damage == NULL);
 
 pixmap-&amp;gt;devPrivate.ptr =
 kgem_bo_map(&amp;amp;sna-&amp;gt;kgem, priv-&amp;gt;gpu_bo);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1769,7 +1770,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; skip_inplace_map:
     pixmap_inplace(sna, pixmap, priv, (flags &amp;amp; MOVE_READ) == 0) &amp;amp;&amp;amp;
      sna_pixmap_create_mappable_gpu(pixmap, (flags &amp;amp; MOVE_READ) == 0)) {
 DBG(("%s: try to operate inplace (GTT)\n", __FUNCTION__));
-assert((flags &amp;amp; MOVE_READ) == 0 || priv-&amp;gt;cpu == false);
+assert((flags &amp;amp; MOVE_READ) == 0 || priv-&amp;gt;cpu_damage == NULL);
 /* XXX only sync for writes? */
 kgem_bo_submit(&amp;amp;sna-&amp;gt;kgem, priv-&amp;gt;gpu_bo);
 assert(priv-&amp;gt;gpu_bo-&amp;gt;exec == NULL);

commit bb0969e6a5c2bddcd0499d81c0c241003f8b07ef
Author: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;
Date:   Tue May 14 15:22:59 2013 +0100

    sna: Assert that the mapping is released before closing the GEM handle
    
    Signed-off-by: Chris Wilson &amp;lt;chris&amp;lt; at &amp;gt;chris-wilson.co.uk&amp;gt;

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 8b096c5..ef8f036 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1499,6 +1499,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void kgem_bo_free(struct kgem *kgem, struct kgem_bo *bo)
 if (bo-&amp;gt;map)
 kgem_bo_release_map(kgem, bo);
 assert(list_is_empty(&amp;amp;bo-&amp;gt;vma));
+assert(bo-&amp;gt;map == NULL);
 
 _list_del(&amp;amp;bo-&amp;gt;list);
 _list_del(&amp;amp;bo-&amp;gt;request);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2182,6 +2183,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void kgem_commit(struct kgem *kgem)
 kgem_retire(kgem);
 assert(list_is_empty(&amp;amp;rq-&amp;gt;buffers));
 
+assert(rq-&amp;gt;bo-&amp;gt;map == NULL);
 gem_close(kgem-&amp;gt;fd, rq-&amp;gt;bo-&amp;gt;handle);
 kgem_cleanup_cache(kgem);
 } else {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5796,7 +5798,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; kgem_replace_bo(struct kgem *kgem,
 return NULL;
 
 dst = __kgem_bo_alloc(handle, size);


&lt;/pre&gt;</description>
    <dc:creator>Maarten Lankhorst</dc:creator>
    <dc:date>2013-05-23T07:46:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110920">
    <title>Processed: reassign 145048 to libx11-6</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110920</link>
    <description>&lt;pre&gt;Processing commands for control&amp;lt; at &amp;gt;bugs.debian.org:

Bug #145048 [libxt6] libxt6: XtAppInitialize() SEGVs if an app-defaults file #includes itself
Bug #447836 [libxt6] segfault in xterm (reading resources database?)
Bug reassigned from package 'libxt6' to 'libx11-6'.
Bug reassigned from package 'libxt6' to 'libx11-6'.
No longer marked as found in versions libxt/1:1.1.0-1.
No longer marked as found in versions libxt/1:1.1.0-1.
Ignoring request to alter fixed versions of bug #145048 to the same values previously set
Ignoring request to alter fixed versions of bug #447836 to the same values previously set
Stopping processing here.

Please contact me if you need assistance.
&lt;/pre&gt;</description>
    <dc:creator>Debian Bug Tracking System</dc:creator>
    <dc:date>2013-05-23T06:27:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110919">
    <title>Bug#677657:</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110919</link>
    <description>&lt;pre&gt;Dear maintainer,

This issue still occur, making cross-compilation unusable on X-based programs

I've tested the package for all archs available, files are the same;

Please add Multi-Arch: same on debian/control

Thanks,

Alexandre Bruyelles


&lt;/pre&gt;</description>
    <dc:creator>Alexandre Bruyelles</dc:creator>
    <dc:date>2013-05-22T22:03:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110918">
    <title>Bug#680514: Debian Wheezy freezing</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110918</link>
    <description>&lt;pre&gt;

It has been reported according to http://www.debian.org/Bugs/Reporting 
and is 100% related to the original bugreport 
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680514).

Have a nice day.

--lyon


&lt;/pre&gt;</description>
    <dc:creator>lyon</dc:creator>
    <dc:date>2013-05-22T16:50:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110917">
    <title>Processed: retitle 687571 to weston: Missing Homepage field in debian/control</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110917</link>
    <description>&lt;pre&gt;Processing commands for control&amp;lt; at &amp;gt;bugs.debian.org:

Bug #687571 [weston] patch for weston
Changed Bug title to 'weston: Missing Homepage field in debian/control' from 'patch for weston'
Stopping processing here.

Please contact me if you need assistance.
&lt;/pre&gt;</description>
    <dc:creator>Debian Bug Tracking System</dc:creator>
    <dc:date>2013-05-22T13:42:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110916">
    <title>Bug#709272: Crash: fail post-validate sync</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110916</link>
    <description>&lt;pre&gt;Package: libdrm-nouveau1a
Version: 2.4.40-1~deb7u2
Severity: important

Sometimes my system crash, and these are the unique related lines in logs I could find (just before the system start):

May 22 08:06:05 r2d2 kernel: [  581.449893] [drm] nouveau 0000:01:00.0: fail post-validate sync
May 22 08:06:05 r2d2 kernel: [  581.449899] [drm] nouveau 0000:01:00.0: validate vram_list
May 22 08:06:05 r2d2 kernel: [  581.449925] [drm] nouveau 0000:01:00.0: validate: -16

The system hangs, and I have to reboot by powering off the machine.

Please, let me know if you need further details or this bugs correspond to other package.

&lt;/pre&gt;</description>
    <dc:creator>Arturo Borrero Gonzalez</dc:creator>
    <dc:date>2013-05-22T06:58:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110915">
    <title>Bug#675977: Please update to new version</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110915</link>
    <description>&lt;pre&gt;Hi,

Too late now for Wheezy :)
Cyril, do you mind integrating Andrew's patch in the package and maybe
upgrading to the new version 13.0?

Thanks in advance! Please let me know if I can help in any way.

Regards,
Pedro
&lt;/pre&gt;</description>
    <dc:creator>Pedro Ribeiro</dc:creator>
    <dc:date>2013-05-21T22:24:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110914">
    <title>Processed: Re: Processed (with 1 errors): Re: qtiplot: calculations in tables don't work after last update</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110914</link>
    <description>&lt;pre&gt;Processing commands for control&amp;lt; at &amp;gt;bugs.debian.org:

Bug #707746 [xterm] no Chinese when pick Huge Fonts
Unset Bug forwarded-to-address
Stopping processing here.

Please contact me if you need assistance.
&lt;/pre&gt;</description>
    <dc:creator>Debian Bug Tracking System</dc:creator>
    <dc:date>2013-05-21T17:51:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110913">
    <title>Bug#708980: xserver-xephyr does not open a window</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110913</link>
    <description>&lt;pre&gt;

[...]

That doesn't look like something Xephyr normally does.

Cheers,
Julien
&lt;/pre&gt;</description>
    <dc:creator>Julien Cristau</dc:creator>
    <dc:date>2013-05-21T15:06:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110912">
    <title>Processed: Re: Bug#673349: [xserver-xorg]</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110912</link>
    <description>&lt;pre&gt;Processing control commands:

Bug #673349 {Done: Julien Cristau &amp;lt;jcristau&amp;lt; at &amp;gt;debian.org&amp;gt;} [xserver-xorg] xserver-xorg: Memory leak in process /usr/bin/X
Bug reopened
Ignoring request to alter fixed versions of bug #673349 to the same values previously set

&lt;/pre&gt;</description>
    <dc:creator>Debian Bug Tracking System</dc:creator>
    <dc:date>2013-05-21T13:03:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.debian.devel.x/110911">
    <title>Bug#673349: [xserver-xorg]</title>
    <link>http://permalink.gmane.org/gmane.linux.debian.devel.x/110911</link>
    <description>&lt;pre&gt;Control: reopen -1

On Mon, May 20, 2013 at 23:45:22 +0200, Nicolas Vinot wrote:

*sigh* and please don't hijack other people's bug reports.

Cheers,
Julien
&lt;/pre&gt;</description>
    <dc:creator>Julien Cristau</dc:creator>
    <dc:date>2013-05-21T13:02:06</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.debian.devel.x">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.debian.devel.x</link>
  </textinput>
</rdf:RDF>
