ChangeLog                        |  217 +++++++++++++++++++++++++++++++++++++++
 Xext/shm.c                       |   43 ++++++-
 composite/compinit.c             |   59 ----------
 configure.ac                     |    7 -
 debian/changelog                 |    9 +
 debian/control                   |   52 +++++++--
 dix/colormap.c                   |   64 +++++++++++
 dix/getevents.c                  |   13 ++
 exa/exa_migration_classic.c      |   10 -
 glx/glxscreens.c                 |   58 ----------
 hw/kdrive/ephyr/Xephyr.man.pre   |    5 
 hw/kdrive/ephyr/ephyrinit.c      |   16 ++
 hw/xfree86/common/xf86DGA.c      |   29 ++---
 hw/xfree86/modes/xf86Crtc.c      |    4 
 hw/xfree86/modes/xf86Crtc.h      |    8 +
 hw/xfree86/modes/xf86DiDGA.c     |   15 ++
 hw/xfree86/modes/xf86EdidModes.c |    2 
 hw/xfree86/modes/xf86Rotate.c    |   10 -
 include/colormap.h               |    5 
 render/glyph.c                   |   97 +++++++++--------
 render/render.c                  |    6 -
 21 files changed, 515 insertions(+), 214 deletions(-)

New commits:
commit 6b5473581567e059ce6f6787d4f7c1a4f2e23946
Author: Julien Cristau <jcris...@debian.org>
Date:   Fri Oct 2 15:25:32 2009 +0200

    Bump changelogs

diff --git a/ChangeLog b/ChangeLog
index 0db67cd..67410e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,220 @@
+commit 4257023c1e40387aff096d5f00d746d3f7a521b4
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Fri Oct 2 14:05:43 2009 +1000
+
+    xserver 1.7.0
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+
+commit 15b4faff281ad8abce6b32fe2fc855eb6da42476
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Thu Oct 1 21:19:11 2009 +1000
+
+    dix: force a minimum of 0 for screen coordinates.
+    
+    Currently the root coordinates may fall into ]-1..0] if the subpixel
+    remainder is less than 0. Screen coordinates mustn't go below 0, so use
+    miPointerSetPosition to cap off the remainder if the coordinates are below
+    0.
+    
+    This is cheating a bit, a more comprehensive solution to deal with 
subpixels
+    correctly when crossing screens is needed. For now, this'll do.
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    Acked-by: Simon Thum <simon.t...@gmx.de>
+    (cherry picked from commit 45f447dafded5adfe11b7df3325c2d8f6ae0639b)
+
+commit 3788113618977bdc83e3ec1e7ca3160bad9a0d13
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Fri Oct 2 09:34:24 2009 +1000
+
+    configure: if xnest was requested but modules weren't found, fail.
+    
+    Tested-by: Xavier Chantry <shinin...@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    Acked-by: Julien Cristau <jcris...@debian.org>
+    (cherry picked from commit 64fe5784b49347e1fd27b0c463be5c16557594c9)
+
+commit c3034dc3af450802dda156136d9fabbc1cc58836
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Thu Oct 1 15:25:55 2009 +1000
+
+    rotate: drop unwrapping inside block handler.
+    
+    Keith has shown half the block handlers wrappers are wrong, also
+    dynamic wrapping/unwrapping from what I can see will happen after
+    the drivers, so its really accidental ABI, that we can't change
+    now without modifing drivers. So be safe for 1.7.
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+    Declared-as-sane-by: Keith Packard <kei...@keithp.com>
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    (cherry picked from commit 3ebb82d61c2b56e8f7145443a552a4e913bbfc80)
+
+commit 47c0b80915d67346ec63b36b659a96b77e777a71
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Thu Oct 1 10:03:42 2009 +1000
+
+    render: Fix crash in RenderAddGlyphs (#23645)
+    
+    This patch fixes two bugs:
+    size is calculated as glyph height * padded_width. If the client submits
+    garbage, this may get above INT_MAX, resulting in a negative size if size 
is
+    unsigned. The sanity checks don't trigger for negative sizes and the server
+    goes and writes into random memory locations.
+    
+    If the client submits glyphs with a width or height 0, the destination
+    pixmap is NULL, causing a null-pointer dereference. Since there's nothing 
to
+    composite if the width/height is 0, we might as well skip the whole thing
+    anyway.
+    
+    Tested with Xvfb, Xephyr and Xorg.
+    
+    X.Org Bug 23645 <http://bugs.freedesktop.org/show_bug.cgi?id=23645>
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    Reviewed-by: Keith Packard <kei...@keithp.com>
+    (cherry picked from commit 622fc98fd08aba98369e6933c3ab8c9ff85385d5)
+
+commit 30ebee3bfcadf915be98d407610c615e3e00f9c1
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Thu Oct 1 15:22:19 2009 +1000
+
+    render: set the glyph picture to NULL by default.
+    
+    In a follow-up patch we may have glyphs with a NULL picture. To cope with
+    that, always set the pictures for glyphs to NULL at creation time and cope
+    with cleaning up such glyphs. Also, since compositing a NULL source doesn't
+    do a lot anyway, skip trying to do so.
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    Reviewed-by: Keith Packard <kei...@keithp.com>
+    (cherry picked from commit 758ab55d2defc78d0169fd61a7036eb9f889e9e7)
+
+commit 8026c5a08584419be3adecd5965dd03e793ddf81
+Author: Michel Dänzer <daen...@vmware.com>
+Date:   Thu Oct 1 15:17:11 2009 +1000
+
+    exa: avoid infinite loops if UTS sw fallbacks.
+    
+    The upload in finish access can cause an infinite loop if
+    UTS returns FALSE in here.
+    
+    Fixes fd.o bug #24246.
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    (cherry picked from commit b5fcc5553eb784c9f4826936e839079c0cdee55a)
+
+commit e182c1b4368c6958579732dd4ddc59de2b46359b
+Author: Keith Packard <kei...@keithp.com>
+Date:   Wed Sep 30 11:40:19 2009 -0700
+
+    Re-fix DGA removal.
+    
+    Removing DGA ended up breaking any drivers calling into the old
+    xf86DiDGAInit function as it tried to see if DGA was already enabled
+    and ended up crashing if the VT wasn't completely initialized. Oops.
+    
+    Also, if the driver initializes DGA itself, have the DiDGA
+    initialization overwrite that information as the DiDGA code will call
+    ReInit on mode detect.
+    
+    Signed-off-by: Keith Packard <kei...@keithp.com>
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    (cherry picked from commit db98b26ee145f70e732e2cf4a6ac3de77fdf4adc)
+
+commit 369b5d526b699cd1c5cd38bb5a823ec66c5286ef
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Tue Sep 29 11:49:09 2009 +1000
+
+    dix/glx/composite: consolidate visual resize in one place.
+    
+    The previous code was copied and in both cases incorrectly fixed
+    up the colormaps after resizing the visuals, this patch consolidates
+    the visual resize + colormaps fixups in one place. This version
+    also consolidates the vid allocation for the DepthPtr inside the
+    function.
+    
+    I'm not 100% sure colormap.[ch] is the correct place for this but
+    visuals are mostly created in fb and I know thats not the place to
+    be resizing them.
+    
+    Fixes fd.o bug #19470.
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+    Reviewed-by: Keith Packard <kei...@keithp.com>
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    (cherry picked from commit 6ffda5aae75272fabdc27d6f693ae827be119e95)
+
+commit d3ba814884154150ed3e6a71254dec7312593488
+Author: Michel Dänzer <daen...@vmware.com>
+Date:   Tue Sep 29 08:56:59 2009 +0200
+
+    Fix ShmPutImage non-ZPixmap case.
+    
+    Fixes http://bugs.freedesktop.org/show_bug.cgi?id=23298 .
+    (cherry picked from commit 11817a881cb93a89788105d1e575a468f2a8d27c)
+
+commit 8fc0d54cbaf791d947c7bab23f2e982cabd7c958
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Mon Sep 28 14:18:45 2009 +1000
+
+    ephyr: if -parent is given, check for a trailing -screen. (#24144)
+    
+    If -parent is given, don't open up a new window if -screen is given as 
well.
+    The commandline option -screen allows to set the depth of the embedded
+    Xephry instance, even though width and height are autoscaled on -parent.
+    
+    This patch checks for a -screen parameter after -parent and - if one is
+    found - delays initializing the screen. The parent window id is stored
+    temporarily but re-set after a -screen argument.
+    The following command is thus valid:
+    
+    Xephyr -parent 1234 -screen 640x...@8 -screen 1024x768
+    
+    It embeds the first 8-bit screen into window 1234 and opens up a new window
+    for the second screen. Multiple parent arguments are possible, the screens
+    are embedded in-order.
+    
+    X.Org Bug 24144 <http://bugs.freedesktop.org/show_bug.cgi?id=24144>
+    
+    Tested-by: Vic Lee
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    (cherry picked from commit 19be992d9dc542b61fa3f4fd32a09071c9e64880)
+
+commit 857ec3e6fff571398dfcd9b4728b5c38cbcd3fcb
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Mon Sep 28 13:59:25 2009 +1000
+
+    xfree86: use the DDC size if either width or height of DisplaySize is 
bogus.
+    
+    If either width or height of DisplaySize is invalid, assume that the
+    configuration is invalid and use the DDC-reported values instead.
+    
+    See Comment 9, Bug 9758.
+    http://bugs.freedesktop.org/show_bug.cgi?id=9758#c9
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    Acked-by: Dave Airlie <airl...@redhat.com>
+    (cherry picked from commit 83023ffd09a84ff48e6b99f57ebad101a00478db)
+
+commit 2d4bab18c0d894619f044f29769c67c2f63b540a
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Wed Sep 23 10:53:51 2009 +1000
+
+    render: Plug a memory leak in AddGlyph. (#23286)
+    
+    AddGlyph was missing the FreePicture() call that DeleteGlyph used, 
resulting
+    in a memory leak when more than one Glyph was added in a RenderAddGlyphs
+    request.
+    
+    Since the code in AddGlyph and DeleteGlyph is identical, move into a static
+    function to avoid such mistakes in the future.
+    
+    X.Org Bug 23286 <http://bugs.freedesktop.org/show_bug.cgi?id=23286>
+    (cherry picked from commit f772014c435f56db56520ca13ffa39431684f122)
+
 commit 290a9639db3e420ec4caf0e6aee9f7386724c765
 Author: Peter Hutterer <peter.hutte...@who-t.net>
 Date:   Mon Sep 28 21:05:11 2009 +1000
diff --git a/debian/changelog b/debian/changelog
index d492946..189bdf2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,13 @@
-xorg-server (2:1.6.99.903-2) UNRELEASED; urgency=low
+xorg-server (2:1.7.0-1) UNRELEASED; urgency=low
 
   * Add missing Conflicts on xserver-xorg-video-5 and xserver-xorg-input-4.
   * Add xkb-data to xserver-common's Depends.  XKB is mandatory in 1.7.
   * Make all servers depend on xserver-common (= ${source:Version}).
+  * New upstream release
+    + fixes Xvfb crashes (closes: #529927)
+    + fixes DGA init crash (closes: #548716)
 
- -- Julien Cristau <jcris...@debian.org>  Tue, 29 Sep 2009 21:58:49 +0200
+ -- Julien Cristau <jcris...@debian.org>  Fri, 02 Oct 2009 15:23:16 +0200
 
 xorg-server (2:1.6.99.903-1) experimental; urgency=low
 

commit d9a3996682de91cdb33cc36ef4bfe1f209de3bac
Author: Julien Cristau <jcris...@debian.org>
Date:   Fri Oct 2 12:07:06 2009 +0200

    Make all servers depend on xserver-common (= ${source:Version}).

diff --git a/debian/changelog b/debian/changelog
index 605a11c..d492946 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ xorg-server (2:1.6.99.903-2) UNRELEASED; urgency=low
 
   * Add missing Conflicts on xserver-xorg-video-5 and xserver-xorg-input-4.
   * Add xkb-data to xserver-common's Depends.  XKB is mandatory in 1.7.
+  * Make all servers depend on xserver-common (= ${source:Version}).
 
  -- Julien Cristau <jcris...@debian.org>  Tue, 29 Sep 2009 21:58:49 +0200
 
diff --git a/debian/control b/debian/control
index f48316a..a4b1ee9 100644
--- a/debian/control
+++ b/debian/control
@@ -78,7 +78,7 @@ Vcs-Browser: 
http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git
 Package: xserver-xorg-core
 Architecture: any
 Depends:
- xserver-common (>> 7),
+ xserver-common (= ${source:Version}),
  xserver-xorg,
  ${shlibs:Depends},
  ${misc:Depends},
@@ -152,7 +152,7 @@ Description: Xorg X server - development files
 Package: xdmx
 Architecture: any
 Depends:
- xserver-common,
+ xserver-common (= ${source:Version}),
  ${shlibs:Depends},
  ${misc:Depends},
 Description: distributed multihead X server
@@ -193,7 +193,7 @@ Description: Distributed Multihead X tools
 Package: xnest
 Architecture: any
 Depends:
- xserver-common,
+ xserver-common (= ${source:Version}),
  ${shlibs:Depends},
  ${misc:Depends},
 Recommends: libgl1-mesa-dri (>= 7.1~rc1)
@@ -215,7 +215,7 @@ Description: Nested X server
 Package: xvfb
 Architecture: any
 Depends:
- xserver-common,
+ xserver-common (= ${source:Version}),
  ${shlibs:Depends},
  ${misc:Depends},
 Recommends: xauth
@@ -245,7 +245,7 @@ Description: Virtual Framebuffer 'fake' X server
 Package: xserver-xephyr
 Architecture: any
 Depends:
- xserver-common,
+ xserver-common (= ${source:Version}),
  ${shlibs:Depends},
  ${misc:Depends},
 Recommends: xbase-clients, libgl1-mesa-dri (>= 7.1~rc1)
@@ -265,7 +265,7 @@ Description: nested X server
 Package: xserver-xfbdev
 Architecture: alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips 
mipsel powerpc ppc64 sh3 sh3eb sh4 sh4eb sparc
 Depends:
- xserver-common,
+ xserver-common (= ${source:Version}),
  ${shlibs:Depends},
  ${misc:Depends},
 Recommends: xbase-clients

commit 19aa04a60e460d4bb52227002b1249f8baaf9422
Author: Julien Cristau <jcris...@debian.org>
Date:   Fri Oct 2 12:01:07 2009 +0200

    Wrap all packages' Depends field

diff --git a/debian/control b/debian/control
index da186d0..f48316a 100644
--- a/debian/control
+++ b/debian/control
@@ -77,7 +77,11 @@ Vcs-Browser: 
http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git
 
 Package: xserver-xorg-core
 Architecture: any
-Depends: xserver-common (>> 7), ${shlibs:Depends}, ${misc:Depends}, 
xserver-xorg
+Depends:
+ xserver-common (>> 7),
+ xserver-xorg,
+ ${shlibs:Depends},
+ ${misc:Depends},
 Recommends: libgl1-mesa-dri (>= 7.1~rc1)
 Suggests: xfonts-base, xfonts-100dpi | xfonts-75dpi, xfonts-scalable
 Conflicts:
@@ -116,7 +120,7 @@ Description: Xorg X server - core server
 
 Package: xserver-xorg-dev
 Architecture: any
-Depends: ${misc:Depends},
+Depends:
  libpixman-1-dev (>= 0.15.20),
  x11proto-core-dev (>= 7.0.14),
  x11proto-input-dev (>= 1.9.99.902),
@@ -126,7 +130,8 @@ Depends: ${misc:Depends},
  x11proto-render-dev (>= 2:0.11),
  x11proto-dri2-dev (>= 2.1),
  x11proto-fonts-dev,
- libpciaccess-dev
+ libpciaccess-dev,
+ ${misc:Depends},
 Description: Xorg X server - development files
  This package provides development files for the X.Org ('Xorg') X server.
  This is not quite the same as the DDK (Driver Development Kit) from the
@@ -146,7 +151,10 @@ Description: Xorg X server - development files
 
 Package: xdmx
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, xserver-common
+Depends:
+ xserver-common,
+ ${shlibs:Depends},
+ ${misc:Depends},
 Description: distributed multihead X server
  Xdmx is a proxy X server that uses one or more other X servers as its
  display device(s). It provides multi-head X functionality for displays that
@@ -166,7 +174,10 @@ Description: distributed multihead X server
 
 Package: xdmx-tools
 Architecture: any
-Depends: xdmx, ${shlibs:Depends}, ${misc:Depends}
+Depends:
+ xdmx,
+ ${shlibs:Depends},
+ ${misc:Depends},
 Replaces: xdmx (<= 2:1.1.1-10)
 Description: Distributed Multihead X tools
  This package provides a collection of tools used for administration of
@@ -181,7 +192,10 @@ Description: Distributed Multihead X tools
 
 Package: xnest
 Architecture: any
-Depends: xserver-common, ${shlibs:Depends}, ${misc:Depends}
+Depends:
+ xserver-common,
+ ${shlibs:Depends},
+ ${misc:Depends},
 Recommends: libgl1-mesa-dri (>= 7.1~rc1)
 Description: Nested X server
  Xnest is a nested X server that simply relays all its requests to another
@@ -200,7 +214,10 @@ Description: Nested X server
 
 Package: xvfb
 Architecture: any
-Depends: xserver-common, ${shlibs:Depends}, ${misc:Depends}
+Depends:
+ xserver-common,
+ ${shlibs:Depends},
+ ${misc:Depends},
 Recommends: xauth
 Description: Virtual Framebuffer 'fake' X server
  Xvfb provides an X server that can run on machines with no display hardware
@@ -227,7 +244,10 @@ Description: Virtual Framebuffer 'fake' X server
 
 Package: xserver-xephyr
 Architecture: any
-Depends: xserver-common, ${shlibs:Depends}, ${misc:Depends}
+Depends:
+ xserver-common,
+ ${shlibs:Depends},
+ ${misc:Depends},
 Recommends: xbase-clients, libgl1-mesa-dri (>= 7.1~rc1)
 Description: nested X server
  Xephyr is an X server that can be run inside another X server,
@@ -244,7 +264,10 @@ Description: nested X server
 
 Package: xserver-xfbdev
 Architecture: alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips 
mipsel powerpc ppc64 sh3 sh3eb sh4 sh4eb sparc
-Depends: xserver-common, ${shlibs:Depends}, ${misc:Depends}
+Depends:
+ xserver-common,
+ ${shlibs:Depends},
+ ${misc:Depends},
 Recommends: xbase-clients
 Description: Linux framebuffer device tiny X server
  xserver-xfbdev is a Linux framebuffer device tiny X server based on the
@@ -259,7 +282,9 @@ Description: Linux framebuffer device tiny X server
 
 Package: xserver-xorg-core-dbg
 Architecture: any
-Depends: xserver-xorg-core (= ${binary:Version}), ${misc:Depends}
+Depends:
+ xserver-xorg-core (= ${binary:Version}),
+ ${misc:Depends},
 Priority: extra
 Section: debug
 Description: Xorg - the X.Org X server (debugging symbols)

commit e5c85c2bddb6989c6eda32544fe3aaadd46650c0
Author: Julien Cristau <jcris...@debian.org>
Date:   Fri Oct 2 11:57:48 2009 +0200

    Add xkb-data to xserver-common's Depends.  XKB is mandatory in 1.7.

diff --git a/debian/changelog b/debian/changelog
index 57aa91f..605a11c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 xorg-server (2:1.6.99.903-2) UNRELEASED; urgency=low
 
   * Add missing Conflicts on xserver-xorg-video-5 and xserver-xorg-input-4.
+  * Add xkb-data to xserver-common's Depends.  XKB is mandatory in 1.7.
 
  -- Julien Cristau <jcris...@debian.org>  Tue, 29 Sep 2009 21:58:49 +0200
 
diff --git a/debian/control b/debian/control
index 6cfbc87..da186d0 100644
--- a/debian/control
+++ b/debian/control
@@ -78,7 +78,7 @@ Vcs-Browser: 
http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git
 Package: xserver-xorg-core
 Architecture: any
 Depends: xserver-common (>> 7), ${shlibs:Depends}, ${misc:Depends}, 
xserver-xorg
-Recommends: xkb-data, libgl1-mesa-dri (>= 7.1~rc1)
+Recommends: libgl1-mesa-dri (>= 7.1~rc1)
 Suggests: xfonts-base, xfonts-100dpi | xfonts-75dpi, xfonts-scalable
 Conflicts:
  xserver-xorg (<< 6.8.2-38),
@@ -274,7 +274,10 @@ Description: Xorg - the X.Org X server (debugging symbols)
 
 Package: xserver-common
 Architecture: all
-Depends: x11-common, ${misc:Depends}
+Depends:
+ x11-common,
+ xkb-data,
+ ${misc:Depends},
 Replaces: xserver-xorg-core (<< 2:1.5.2)
 Description: common files used by various X servers
  This package provides files necessary for all X.Org based X servers.

commit 4257023c1e40387aff096d5f00d746d3f7a521b4
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Fri Oct 2 14:05:43 2009 +1000

    xserver 1.7.0
    
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>

diff --git a/configure.ac b/configure.ac
index 8145c64..9425bc9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.6.99.903, 
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2009-9-28"
+AC_INIT([xorg-server], 1.7.0, 
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2009-10-2"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE

commit 15b4faff281ad8abce6b32fe2fc855eb6da42476
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Thu Oct 1 21:19:11 2009 +1000

    dix: force a minimum of 0 for screen coordinates.
    
    Currently the root coordinates may fall into ]-1..0] if the subpixel
    remainder is less than 0. Screen coordinates mustn't go below 0, so use
    miPointerSetPosition to cap off the remainder if the coordinates are below
    0.
    
    This is cheating a bit, a more comprehensive solution to deal with subpixels
    correctly when crossing screens is needed. For now, this'll do.
    
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    Acked-by: Simon Thum <simon.t...@gmx.de>
    (cherry picked from commit 45f447dafded5adfe11b7df3325c2d8f6ae0639b)

diff --git a/dix/getevents.c b/dix/getevents.c
index 5224d31..2df32e8 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -781,6 +781,19 @@ positionSprite(DeviceIntPtr dev, int *x, int *y, float 
x_frac, float y_frac,
         *screeny_frac = dev->last.remainder[1];
     }
 
+    /* Hit the left screen edge? */
+    if (*screenx <= 0 && *screenx_frac < 0.0f)
+    {
+        *screenx_frac = 0.0f;
+        x_frac = 0.0f;
+    }
+    if (*screeny <= 0 && *screeny_frac < 0.0f)
+    {
+        *screeny_frac = 0.0f;
+        y_frac = 0.0f;
+    }
+
+
     old_screenx = *screenx;
     old_screeny = *screeny;
     /* This takes care of crossing screens for us, as well as clipping

commit 3788113618977bdc83e3ec1e7ca3160bad9a0d13
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Fri Oct 2 09:34:24 2009 +1000

    configure: if xnest was requested but modules weren't found, fail.
    
    Tested-by: Xavier Chantry <shinin...@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    Acked-by: Julien Cristau <jcris...@debian.org>
    (cherry picked from commit 64fe5784b49347e1fd27b0c463be5c16557594c9)

diff --git a/configure.ac b/configure.ac
index 9517595..8145c64 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1373,6 +1373,9 @@ AC_MSG_RESULT([$XNEST])
 AM_CONDITIONAL(XNEST, [test "x$XNEST" = xyes])
 
 if test "x$XNEST" = xyes; then
+       if test "x$have_xnest" = xno; then
+               AC_MSG_ERROR([Xnest build explicitly requested, but required 
modules not found.])
+       fi
        XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB 
$GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB 
$MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB 
$MAIN_LIB $OS_LIB $CONFIG_LIB"
        XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS"
        AC_SUBST([XNEST_LIBS])

commit c3034dc3af450802dda156136d9fabbc1cc58836
Author: Dave Airlie <airl...@redhat.com>
Date:   Thu Oct 1 15:25:55 2009 +1000

    rotate: drop unwrapping inside block handler.
    
    Keith has shown half the block handlers wrappers are wrong, also
    dynamic wrapping/unwrapping from what I can see will happen after
    the drivers, so its really accidental ABI, that we can't change
    now without modifing drivers. So be safe for 1.7.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>
    Declared-as-sane-by: Keith Packard <kei...@keithp.com>
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    (cherry picked from commit 3ebb82d61c2b56e8f7145443a552a4e913bbfc80)

diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index 9e65c99..5de6b0c 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -268,13 +268,9 @@ xf86RotateBlockHandler(int screenNum, pointer blockData,
     rotation_active = xf86RotateRedisplay(pScreen);
     pScreen->BlockHandler = xf86_config->BlockHandler;
     (*pScreen->BlockHandler) (screenNum, blockData, pTimeout, pReadmask);
-    if (rotation_active) {
-       /* Re-wrap if rotation is still happening */
-       xf86_config->BlockHandler = pScreen->BlockHandler;
-       pScreen->BlockHandler = xf86RotateBlockHandler;
-    } else {
-       xf86_config->BlockHandler = NULL;
-    }
+    /* cannot avoid re-wrapping until all wrapping is audited */
+    xf86_config->BlockHandler = pScreen->BlockHandler;
+    pScreen->BlockHandler = xf86RotateBlockHandler;
 }
 
 void

commit 47c0b80915d67346ec63b36b659a96b77e777a71
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Thu Oct 1 10:03:42 2009 +1000

    render: Fix crash in RenderAddGlyphs (#23645)
    
    This patch fixes two bugs:
    size is calculated as glyph height * padded_width. If the client submits
    garbage, this may get above INT_MAX, resulting in a negative size if size is
    unsigned. The sanity checks don't trigger for negative sizes and the server
    goes and writes into random memory locations.
    
    If the client submits glyphs with a width or height 0, the destination
    pixmap is NULL, causing a null-pointer dereference. Since there's nothing to
    composite if the width/height is 0, we might as well skip the whole thing
    anyway.
    
    Tested with Xvfb, Xephyr and Xorg.
    
    X.Org Bug 23645 <http://bugs.freedesktop.org/show_bug.cgi?id=23645>
    
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    Reviewed-by: Keith Packard <kei...@keithp.com>
    (cherry picked from commit 622fc98fd08aba98369e6933c3ab8c9ff85385d5)

diff --git a/render/render.c b/render/render.c
index a306766..a32d797 100644
--- a/render/render.c
+++ b/render/render.c
@@ -1043,7 +1043,7 @@ ProcRenderAddGlyphs (ClientPtr client)
     CARD32         *gids;
     xGlyphInfo     *gi;
     CARD8          *bits;
-    int                    size;
+    unsigned int    size;
     int                    err;
     int                    i, screen;
     PicturePtr     pSrc = NULL, pDst = NULL;
@@ -1131,6 +1131,10 @@ ProcRenderAddGlyphs (ClientPtr client)
                ScreenPtr   pScreen;
                int         error;
 
+               /* Skip work if it's invisibly small anyway */
+               if (!width || !height)
+                   break;
+
                pScreen = screenInfo.screens[screen];
                pSrcPix = GetScratchPixmapHeader (pScreen,
                                                  width, height,

commit 30ebee3bfcadf915be98d407610c615e3e00f9c1
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Thu Oct 1 15:22:19 2009 +1000

    render: set the glyph picture to NULL by default.
    
    In a follow-up patch we may have glyphs with a NULL picture. To cope with
    that, always set the pictures for glyphs to NULL at creation time and cope
    with cleaning up such glyphs. Also, since compositing a NULL source doesn't
    do a lot anyway, skip trying to do so.
    
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    Reviewed-by: Keith Packard <kei...@keithp.com>
    (cherry picked from commit 758ab55d2defc78d0169fd61a7036eb9f889e9e7)

diff --git a/render/glyph.c b/render/glyph.c
index 6327c9f..7fcdfd9 100644
--- a/render/glyph.c
+++ b/render/glyph.c
@@ -282,7 +282,8 @@ FreeGlyphPicture(GlyphPtr glyph)
     {
         ScreenPtr pScreen = screenInfo.screens[i];
 
-        FreePicture ((pointer) GlyphPicture (glyph)[i], 0);
+        if (GlyphPicture(glyph)[i])
+            FreePicture ((pointer) GlyphPicture (glyph)[i], 0);
 
         ps = GetPictureScreenIfSet (pScreen);
         if (ps)
@@ -414,6 +415,7 @@ AllocateGlyph (xGlyphInfo *gi, int fdepth)
 
     for (i = 0; i < screenInfo.numScreens; i++)
     {
+       GlyphPicture(glyph)[i] = NULL;
        ps = GetPictureScreenIfSet (screenInfo.screens[i]);
 
        if (ps)
@@ -721,32 +723,35 @@ miGlyphs (CARD8           op,
            glyph = *glyphs++;
            pPicture = GlyphPicture (glyph)[pScreen->myNum];
 
-           if (maskFormat)
+           if (pPicture)
            {
-               CompositePicture (PictOpAdd,
-                                 pPicture,
-                                 None,
-                                 pMask,
-                                 0, 0,
-                                 0, 0,
-                                 x - glyph->info.x,
-                                 y - glyph->info.y,
-                                 glyph->info.width,
-                                 glyph->info.height);
-           }
-           else
-           {
-               CompositePicture (op,
-                                 pSrc,
-                                 pPicture,
-                                 pDst,
-                                 xSrc + (x - glyph->info.x) - xDst,
-                                 ySrc + (y - glyph->info.y) - yDst,
-                                 0, 0,
-                                 x - glyph->info.x,
-                                 y - glyph->info.y,
-                                 glyph->info.width,
-                                 glyph->info.height);
+               if (maskFormat)
+               {
+                       CompositePicture (PictOpAdd,
+                                         pPicture,
+                                         None,
+                                         pMask,
+                                         0, 0,
+                                         0, 0,
+                                         x - glyph->info.x,
+                                         y - glyph->info.y,
+                                         glyph->info.width,
+                                         glyph->info.height);
+               }
+               else
+               {
+                   CompositePicture (op,
+                                     pSrc,
+                                     pPicture,
+                                     pDst,
+                                     xSrc + (x - glyph->info.x) - xDst,
+                                     ySrc + (y - glyph->info.y) - yDst,
+                                     0, 0,
+                                     x - glyph->info.x,
+                                     y - glyph->info.y,
+                                     glyph->info.width,
+                                     glyph->info.height);
+               }
            }
 
            x += glyph->info.xOff;

commit 8026c5a08584419be3adecd5965dd03e793ddf81
Author: Michel Dänzer <daen...@vmware.com>
Date:   Thu Oct 1 15:17:11 2009 +1000

    exa: avoid infinite loops if UTS sw fallbacks.
    
    The upload in finish access can cause an infinite loop if
    UTS returns FALSE in here.
    
    Fixes fd.o bug #24246.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    (cherry picked from commit b5fcc5553eb784c9f4826936e839079c0cdee55a)

diff --git a/exa/exa_migration_classic.c b/exa/exa_migration_classic.c
index 4819af8..6d7b9f5 100644
--- a/exa/exa_migration_classic.c
+++ b/exa/exa_migration_classic.c
@@ -242,11 +242,6 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, 
RegionPtr pValidSrc,
        pBox++;
     }
 
-    if (access_prepared)
-       exaFinishAccess(&pPixmap->drawable, fallback_index);
-    else if (need_sync && sync)
-       sync (pPixmap->drawable.pScreen);
-
     pExaPixmap->offscreen = save_offscreen;
     pPixmap->devKind = save_pitch;
 
@@ -261,6 +256,11 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, 
RegionPtr pValidSrc,
     REGION_UNION(pScreen, pValidDst, pValidDst, &CopyReg);
 
     REGION_UNINIT(pScreen, &CopyReg);
+
+    if (access_prepared)
+       exaFinishAccess(&pPixmap->drawable, fallback_index);
+    else if (need_sync && sync)
+       sync (pPixmap->drawable.pScreen);
 }
 
 /**

commit e182c1b4368c6958579732dd4ddc59de2b46359b
Author: Keith Packard <kei...@keithp.com>
Date:   Wed Sep 30 11:40:19 2009 -0700

    Re-fix DGA removal.
    
    Removing DGA ended up breaking any drivers calling into the old
    xf86DiDGAInit function as it tried to see if DGA was already enabled
    and ended up crashing if the VT wasn't completely initialized. Oops.
    
    Also, if the driver initializes DGA itself, have the DiDGA
    initialization overwrite that information as the DiDGA code will call
    ReInit on mode detect.
    
    Signed-off-by: Keith Packard <kei...@keithp.com>
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    (cherry picked from commit db98b26ee145f70e732e2cf4a6ac3de77fdf4adc)

diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
index 42b7c58..804fd37 100644
--- a/hw/xfree86/common/xf86DGA.c
+++ b/hw/xfree86/common/xf86DGA.c
@@ -120,8 +120,22 @@ DGAInit(
 
     DGAScreenKey = &DGAScreenKeyIndex;
 
-    if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
-       return FALSE;
+    pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen);
+
+    if (!pScreenPriv)
+    {
+       if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
+           return FALSE;
+       dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
+       pScreenPriv->CloseScreen = pScreen->CloseScreen;
+       pScreen->CloseScreen = DGACloseScreen;
+       pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
+       pScreen->DestroyColormap = DGADestroyColormap;
+       pScreenPriv->InstallColormap = pScreen->InstallColormap;
+       pScreen->InstallColormap = DGAInstallColormap;
+       pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
+       pScreen->UninstallColormap = DGAUninstallColormap;
+    }
 
     pScreenPriv->pScrn = pScrn;
     pScreenPriv->numModes = num;
@@ -146,17 +160,6 @@ DGAInit(
            modes[i].flags &= ~DGA_PIXMAP_AVAILABLE;
 #endif
 
-    dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
-    pScreenPriv->CloseScreen = pScreen->CloseScreen;
-    pScreen->CloseScreen = DGACloseScreen;
-    pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
-    pScreen->DestroyColormap = DGADestroyColormap;
-    pScreenPriv->InstallColormap = pScreen->InstallColormap;
-    pScreen->InstallColormap = DGAInstallColormap;
-    pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
-    pScreen->UninstallColormap = DGAUninstallColormap;
-
-
     return TRUE;
 }
 
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index c1e31e0..506fbb9 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -806,7 +806,7 @@ xf86CrtcScreenInit (ScreenPtr screen)
     screen->CloseScreen = xf86CrtcCloseScreen;
     
 #ifdef XFreeXDGA
-    xf86DiDGAInit(screen, 0);
+    _xf86_di_dga_init_internal(screen);
 #endif
 #ifdef RANDR_13_INTERFACE
     return RANDR_INTERFACE_VERSION;
@@ -1928,7 +1928,7 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
     scrn->currentMode = scrn->modes;
 #ifdef XFreeXDGA
     if (scrn->pScreen)
-           xf86DiDGAReInit(scrn->pScreen);
+           _xf86_di_dga_reinit_internal(scrn->pScreen);
 #endif
 }
 
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 69afaa5..9baa956 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -833,6 +833,10 @@ xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr 
pDDCBus);
 extern _X_EXPORT Bool
 xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address);
 
+/* this is the real function, used only internally */
+_X_INTERNAL Bool
+_xf86_di_dga_init_internal (ScreenPtr pScreen);
+
 /**
  * Re-initialize dga for this screen (as when the set of modes changes)
  */
@@ -841,6 +845,10 @@ extern _X_EXPORT Bool
 xf86DiDGAReInit (ScreenPtr pScreen);
 #endif
 
+/* This is the real function, used only internally */
+_X_INTERNAL Bool
+_xf86_di_dga_reinit_internal (ScreenPtr pScreen);
+
 /*
  * Set the subpixel order reported for the screen using
  * the information from the outputs
diff --git a/hw/xfree86/modes/xf86DiDGA.c b/hw/xfree86/modes/xf86DiDGA.c
index 0f7b834..60fbdbf 100644
--- a/hw/xfree86/modes/xf86DiDGA.c
+++ b/hw/xfree86/modes/xf86DiDGA.c
@@ -175,6 +175,12 @@ static DGAFunctionRec xf86_dga_funcs = {
 Bool
 xf86DiDGAReInit (ScreenPtr pScreen)
 {
+    return TRUE;
+}
+
+Bool
+_xf86_di_dga_reinit_internal (ScreenPtr pScreen)
+{
     ScrnInfoPtr                scrn = xf86Screens[pScreen->myNum];
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
     
@@ -190,12 +196,15 @@ xf86DiDGAReInit (ScreenPtr pScreen)
 Bool
 xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address)
 {
+    return TRUE;
+}
+
+Bool
+_xf86_di_dga_init_internal (ScreenPtr pScreen)
+{
     ScrnInfoPtr                scrn = xf86Screens[pScreen->myNum];
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
 
-    if (DGAAvailable(pScreen->myNum))
-       return TRUE;
-
     xf86_config->dga_flags = 0;
     xf86_config->dga_address = 0;
     xf86_config->dga_width = 0;

commit 369b5d526b699cd1c5cd38bb5a823ec66c5286ef
Author: Dave Airlie <airl...@redhat.com>
Date:   Tue Sep 29 11:49:09 2009 +1000


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to