Hello community,

here is the log from the commit of package xf86-video-vmware for 
openSUSE:Factory checked in at 2015-01-25 21:13:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-vmware (Old)
 and      /work/SRC/openSUSE:Factory/.xf86-video-vmware.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xf86-video-vmware"

Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-vmware/xf86-video-vmware.changes      
2014-10-15 16:20:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-video-vmware.new/xf86-video-vmware.changes 
2015-01-25 21:13:48.000000000 +0100
@@ -1,0 +2,55 @@
+Fri Jan 23 00:00:28 UTC 2015 - sfal...@opensuse.org
+
+- Update to version 13.1.0:
+  + Adapt to GC client clip changes in server 1.17
+  + Fix xf86xv.h cannot be included without first including
+    xorg-server.h
+  + Fix saa_check_poly_fill_rect_noreadback v2
+  + Fix saa_check_copy_window dirty region v3
+  + Revert "vmware/saa: Disable the noreadback polyfillrect
+    optimization"
+  + Fix cursor problem with multimon
+  + Don't add puixmaps to the pixmap list if they're already
+    on it.
+  + Fix overlay related compile breakage on earlier X servers
+  + Fix bootstrap related compile errors on earlier X servers
+  + Clear the PITCHLOCK register if available before modeset
+  + Fix out of bound array indexing
+  + Fix compilation issue on older X servers
+  + Fix uninitialized values in video commands
+  + Fix an error path segfault (fdo#80645)
+  + Fix auto colorkey fill usage
+  + Better error logging when handling cursors
+  + Don't move cursors without images
+  + Fix xwayland build on newer XA versions
+  + Add support for server managed fds
+  + Add support for XSERVER_PLATFORM_BUS
+  + Fix initial dirty region for pixmaps
+  + Set desired modes after xMir screen init
+  + Don't tell XA that we have a mask when we haven't
+  + Don't change backing-store of active scanout services
+  + Fix build without xatracker
+- Changes from version 13.0.1
+  + Fix compilation on newer X servers
+  + Always allocate shared hardware surfaces
+  + Require libdrm 2.4.38 to build XMir
+  + Block DMA to prime surfaces for now
+  + Enable direct dmas
+  + Add support for XWayland
+  + Add support for XMir v2
+  + Add an infrastructure to be able to run hosted under
+    a compositor v2
+  + Fix compile breakage on XA version 1
+  + Really allow XA version 2
+  + Revert "vmwgfx: Get rid of device-specific DMA code"
+  + Support also XA version 1 v2
+  + Handle changes of DamageUnregister API in 1.14.99.2
+  + Implement textured video completely on top of XA
+  + Avoid HW operations when not master
+  + Update for XA API changes
++ Dropped (patches accepted upstream):
+  + U_vmware-vmwgfx-Don-t-add-pixmaps-to-the-pixmap-list-i.patch
+  + u_xf86xv.h-cannot-be-included-without-first-including-.patch
+  + xf86-video-vmware-13.0.2.tar.bz2
+
+-------------------------------------------------------------------

Old:
----
  U_vmware-vmwgfx-Don-t-add-pixmaps-to-the-pixmap-list-i.patch
  u_xf86xv.h-cannot-be-included-without-first-including-.patch
  xf86-video-vmware-13.0.2.tar.bz2

New:
----
  xf86-video-vmware-13.1.0.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xf86-video-vmware.spec ++++++
--- /var/tmp/diff_new_pack.SQhPCk/_old  2015-01-25 21:13:49.000000000 +0100
+++ /var/tmp/diff_new_pack.SQhPCk/_new  2015-01-25 21:13:49.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package xf86-video-vmware
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,16 +17,14 @@
 
 
 Name:           xf86-video-vmware
-Version:        13.0.2
+Version:        13.1.0
 Release:        0
 Summary:        VMware SVGA video driver for the Xorg X server
 License:        MIT
 Group:          System/X11/Servers/XF86_4
 Url:            http://xorg.freedesktop.org/
 #http://xorg.freedesktop.org/releases/individual/driver/
-Source0:        %{name}-%{version}.tar.bz2
-Patch0:         u_xf86xv.h-cannot-be-included-without-first-including-.patch
-Patch1:         U_vmware-vmwgfx-Don-t-add-pixmaps-to-the-pixmap-list-i.patch
+Source0:        
http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.bz2
 ExclusiveArch:  %ix86 x86_64
 BuildRequires:  pkg-config
 BuildRequires:  pkgconfig(fontsproto)
@@ -51,8 +49,6 @@
 
 %prep
 %setup -q
-%patch0 -p1
-%patch1 -p1
 
 %build
 %configure

++++++ xf86-video-vmware-13.0.2.tar.bz2 -> xf86-video-vmware-13.1.0.tar.bz2 
++++++
++++ 9250 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/ChangeLog new/xf86-video-vmware-13.1.0/ChangeLog
--- old/xf86-video-vmware-13.0.2/ChangeLog      2014-03-26 13:17:30.000000000 
+0100
+++ new/xf86-video-vmware-13.1.0/ChangeLog      2015-01-19 14:06:27.000000000 
+0100
@@ -1,3 +1,384 @@
+commit 891ee48e4c1baa2643eda048b4207f8263a37dca
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Mon Jan 19 11:23:50 2015 +0100
+
+    vmware: Bump version number for release
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+
+commit 79289b0ffc553ded902eea7b8b9803b098f340e3
+Author: Adam Jackson <a...@redhat.com>
+Date:   Thu Dec 4 10:35:04 2014 -0500
+
+    saa: Adapt to GC client clip changes in xserver 1.17
+    
+    1.17 always stores the client clip as a region, so there's no longer a
+    clientClipType member to look at.  Change the code to just inspect
+    whether the clientClip is non-null, since that works both before and
+    after 1.17.
+    
+    Signed-off-by: Adam Jackson <a...@redhat.com>
+    Reviewed-by: Thomas Hellstrom <thellst...@vmware.com>
+
+commit 4664412d7a5266d2b392957406b34abc5db95e48
+Author: Stefan Dirsch <sndir...@suse.de>
+Date:   Tue Oct 7 11:29:32 2014 +0200
+
+    xf86xv.h cannot be included without first including xorg-server.h.
+    
+    Without this the build fails on systems with the latest glibc,
+    throwing this error:
+    
+    In file included from /usr/include/string.h:634:0,
+                     from /usr/include/xorg/os.h:53,
+                     from /usr/include/xorg/misc.h:115,
+                     from /usr/include/xorg/screenint.h:50,
+                     from /usr/include/xorg/scrnintstr.h:50,
+                     from /usr/include/xorg/xvdix.h:55,
+                     from /usr/include/xorg/xf86xv.h:32,
+                     from vmwgfx_overlay.c:38:
+    /usr/include/xorg/os.h:579:1: error: expected identifier or '(' before 
'__extension__'
+    strndup(const char *str, size_t n);
+    
+    This is caused by HAVE_STRNDUP not being set (it is set from 
xorg-server.h),
+    causing os.h to redefine it.
+    
+    Signed-off-by: Stefan Dirsch <sndir...@suse.de>
+    Reviewed-by: Daniel Stone <dani...@collabora.com>
+    Acked-by: Thomas Hellstrom <thellst...@vmware.com>
+
+commit 8e1c4e5bd521ec2d4f1a21da432f110c606b3fde
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Mon Sep 22 12:09:13 2014 +0200
+
+    vmware/saa: Fix saa_check_poly_fill_rect_noreadback v2
+    
+    We were not clipping the dirty region correctly, Fix this.
+    Also actually do what the comment in the function says: If there are more 
than
+    an ad-hoc number of rectangles to read back, then revert to the default
+    saa_check_poly_fill_rect function that reads back the whole damage region.
+    
+    v2: Fix commit log message.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Brian Paul <bri...@vmware.com>
+    Reviewed-by: Sinclair Yeh <s...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit c23fd33d8ce8491891255d93c04e053bf333bd4e
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Mon Sep 22 11:43:02 2014 +0200
+
+    vmware/saa: Fix saa_check_copy_window dirty region v3
+    
+    The saa_check_copy_window could dirty regions that were never touched, 
since
+    we were using the X server provided damage region rather than the more
+    detailed region actually copied. This would have been OK if we had first 
done
+    a read-back of the region to be dirtied, but since we want to avoid that,
+    instead compute the detailed destination region and use that for dirtying.
+    
+    This fixes rendering glitches seen with motif applications.
+    
+    v2: Fix whitespace error.
+    v3: Move dirty region computation.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Brian Paul <bri...@vmware.com>
+    Reviewed-by: Sinclair Yeh <s...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit f86434ac69bd288c7fba65d178c22a91a0f4f6c2
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Mon Sep 15 15:13:53 2014 +0200
+
+    Revert "vmware/saa: Disable the noreadback polyfillrect optimization"
+    
+    This reverts commit 88c487cb19aaf2882d582f7f887a52935ef8d92e.
+    
+    While the commit made the rendering artefacts less frequent, they didn't
+    disappear completely and are likely caused by something else, so revert 
this
+    commit.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Acked-by: Sinclair Yeh <s...@vmware.com>
+
+commit 8545a166931617af0d2a9ca8175fd8b11c67e246
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Tue Sep 9 01:59:07 2014 -0700
+
+    vmware/vmwgfx: Fix cursor problem with multimon
+    
+    In a multimon environment, the cursor would sometimes disappear on the
+    newly enabled screen. Fix this.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 32562129750077a23f26f2e69adc8403eb24bf3f
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Wed Sep 3 07:08:41 2014 -0700
+
+    vmware/vmwgfx: Don't add pixmaps to the pixmap list if they're already on 
it
+    
+    This could cause loops through the list to spin indefinitely.
+    This would most likely occur at VT switches.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 8b6316a312689d83ca8f8de939698bc137206f58
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Thu Aug 28 15:32:45 2014 +0200
+
+    vmware/legacy: Fix overlay related compile breakage on earlier X servers
+    
+    Introduced by commit:
+    vmware/legacy: Apply same fix to auto colrkey fill
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 8a47e9a45036005d46a60cf8df366baffcb9a8d1
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Thu Aug 28 13:43:03 2014 +0200
+
+    vmware: Fix bootstrap related compile errors on earlier X servers
+    
+    Introduced by commit
+    Add support for XSERVER_PLATFORM_BUS
+    
+    Note that the vmware DriverRec declaration can be cleaned up
+    considerably using C99 designated initializers. Perhaps something for
+    the next release...
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit f5d8c8f1fe2de727018600f471b6a8829fe492ad
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Wed Aug 20 13:02:58 2014 +0200
+
+    vmware: Clear the PITCHLOCK register if available before modeset
+    
+    In some situations the fbdev driver may have set this register before 
legacy
+    driver startup causing a weird-looking desktop. Make sure this register
+    is cleared on each modeset.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit b1697434348799b0808a6c9e9a899394075b980c
+Author: Jakob Bornecrantz <ja...@vmware.com>
+Date:   Thu Aug 14 16:42:05 2014 +0200
+
+    vmware/legacy: Fix out of bound array indexing
+    
+    Spotted by coverity.
+    
+    Reported-by: Adam Jackson <a...@redhat.com>
+    Reviewed-by: Adam Jackson <a...@redhat.com>
+    Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 0825d98744b20a20af7bd81d347334ab4a1de015
+Author: Jakob Bornecrantz <ja...@vmware.com>
+Date:   Sat Aug 9 00:19:17 2014 +0200
+
+    vmware/vmwgfx: Fix compilation issue on older X servers
+    
+    Introduced in 268307 "Add support for server managed fds"
+    
+    Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
+    Reviewed-by: Brian Paul <bri...@vmware.com>
+
+commit 0a212afefd8670a1823c9b6474de8bf26d33bdeb
+Author: Jakob Bornecrantz <ja...@vmware.com>
+Date:   Fri Aug 8 21:37:38 2014 +0200
+
+    vmware/legacy: Fix uninitialized values in video commands
+    
+    Fixed bug where video stopped working on systems that didn't have the new 
kms
+    enabled kernel driver installed. Found on CentOS 6.4.
+    
+    After updating the register header SVGA_VIDEO_NUM_REGS value got upped by 
two
+    in order to support GMR and Screen Objects. Since this path is mostly used
+    on older hosts that may not support them, don't send them at all.
+    
+    Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
+    Reviewed-by: Brian Paul <bri...@vmware.com>
+
+commit 0a596fd0c92fdcf73071869a59029263a2596018
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Wed Jul 2 14:21:45 2014 +0200
+
+    vmware/vmwgfx: Fix an error path segfault
+    
+    Part of freedesktop.org bugzilla bug #80645
+    If taking a scanout reference on a pixmap fails, the
+    struct vmwgfx_screen_entry::pixmap pointer must be set to NULL, otherwise
+    the driver will incorrectly attempt to remove the scanout reference in the
+    error path, causing a segfault.
+    
+    This problem is seen in the above-mentioned bug, but it is not the root
+    cause of the problem. With this patch applied, the server will terminate
+    cleanly instead of segfaulting.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 4e378a730d2d2deffc915af2a3d013d2a994a1b0
+Author: Jakob Bornecrantz <ja...@vmware.com>
+Date:   Wed May 21 11:52:29 2014 +0200
+
+    vmware/legacy: Apply same fix to auto colorkey fill
+    
+    Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
+    Reviewed-by: Thomas Hellström <thellst...@vmware.com>
+
+commit 82c9b0c1d34459c568d004521e3f35a69f5d7ae3
+Author: Jakob Bornecrantz <ja...@vmware.com>
+Date:   Wed May 21 11:51:46 2014 +0200
+
+    vmware/vmwgfx: Fix auto colorkey fill usage
+    
+    Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
+    Reviewed-by: Thomas Hellström <thellst...@vmware.com>
+
+commit 43e043868fbd74e28cd392a3665b36abdfe87de0
+Author: Jakob Bornecrantz <ja...@vmware.com>
+Date:   Wed May 21 11:54:48 2014 +0200
+
+    vmware/vmwgfx: A bit more error logging when handling cursors
+    
+    Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
+    Reviewed-by: Thomas Hellström <thellst...@vmware.com>
+
+commit aa7309254808e27a4ac5d3dc674be179646280b5
+Author: Jakob Bornecrantz <ja...@vmware.com>
+Date:   Wed May 21 11:54:24 2014 +0200
+
+    vmware/vmwgfx: Don't move cursors without images
+    
+    Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
+    Reviewed-by: Thomas Hellström <thellst...@vmware.com>
+
+commit e8d6facf34adf1c601a3afd0a984ce90ad8fe059
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Tue May 20 06:29:19 2014 -0700
+
+    vmware/vmwgfx: Fix xwayland build on newer XA versions
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 268307e85c06be27345a6808bcf2b3c9887bf8bc
+Author: Hans de Goede <hdego...@redhat.com>
+Date:   Tue May 6 16:33:21 2014 +0200
+
+    Add support for server managed fds
+    
+    Signed-off-by: Hans de Goede <hdego...@redhat.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 675fe58eee8acdb302c3501236b86a3289991053
+Author: Hans de Goede <hdego...@redhat.com>
+Date:   Tue May 6 16:00:50 2014 +0200
+
+    Add support for XSERVER_PLATFORM_BUS
+    
+    This is a preparation patch for adding support for server managed fds.
+    
+    Signed-off-by: Hans de Goede <hdego...@redhat.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 88c487cb19aaf2882d582f7f887a52935ef8d92e
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Fri May 9 09:35:59 2014 +0200
+
+    vmware/saa: Disable the noreadback polyfillrect optimization
+    
+    It causes rendering artefacts with some motif applications due to
+    damage area confusion. Until that is sorted out, temporarily disable the
+    optimization.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit f31eed4a578784329a7038aa01acaa10a2d0c246
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Thu May 8 09:24:04 2014 +0200
+
+    vmware/vmwgfx: Fix initial dirty region for pixmaps
+    
+    When storage is attached to pixmaps for the first time the dirty region is
+    set to cover either the hardware surface or the software buffer based on
+    the presence of the hardware surface.
+    
+    However, if the storage was created as part of an accelerated operation,
+    the dirty region was assigned before the hardware surface was assigned to 
the
+    pixmap, causing the dirty region to incorrectly cover the software buffer.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit 1ed14687a3f1092db8504fb9cf4f446451801665
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Thu Apr 10 14:05:24 2014 +0200
+
+    vmware/vmwgfx: Set desired modes after xMir screen init
+    
+    While XMir does initial mode configuration, it leaves setting initial
+    modes to the DDX driver.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Brian Paul <bri...@vmware.com>
+
+commit 64e0faf1480663a990e0f6aeef7af0e69845af49
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Wed Apr 2 14:05:23 2014 +0200
+
+    vmware/vmwgfx: Don't tell XA that we have a mask when we haven't
+    
+    In some cases, the X server sends us a composit operation with
+    mask_pict != NULL, but mask_pix == NULL. Assume there's no mask
+    involved in that case.
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Brian Paul <bri...@vmware.com>
+
+commit c062d08a50a26c99a3b8f565a8b2b00e8dc21c3f
+Author: Thomas Hellstrom <thellst...@vmware.com>
+Date:   Thu Jan 16 18:27:57 2014 +0100
+
+    vmware/vmwgfx: Don't change backing-store of active scanout surfaces
+    
+    With option "HwPresents" on, the driver would sometimes change backing
+    store of active scanout surfaces, making the kernel module refuse to
+    present. This was caused by scanout surfaces not having the RENDERTARGET 
flag
+    on by default. So when rendered to, using copies or composites, they
+    would be reallocated. Fix this by adding the RENDERTARGET flag from start.
+    
+    Also add code that prints out an error message when we change backing store
+    of active scanout surfaces
+    
+    Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+
+commit c42e1f750629f18144d065b8bba5e2eaf6cbf675
+Author: Julien Cristau <jcris...@debian.org>
+Date:   Tue Apr 1 10:11:13 2014 +0200
+
+    configure: fix build without xatracker
+    
+    ACTION-IF-NOT-FOUND is the fourth argument to PKG_CHECK_MODULES, not the
+    fifth.
+    
+    Debian bug#743239 <https://bugs.debian.org/743239>
+    
+    Reviewed-by: Thomas Klausner <w...@netbsd.org>
+    Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
+    Signed-off-by: Julien Cristau <jcris...@debian.org>
+    Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
+
 commit cbd56b3759f01ec18ae0705d023e4c0b2ab38c25
 Author: Jakob Bornecrantz <ja...@vmware.com>
 Date:   Wed Mar 26 12:45:52 2014 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/INSTALL new/xf86-video-vmware-13.1.0/INSTALL
--- old/xf86-video-vmware-13.0.2/INSTALL        2014-03-26 13:17:30.000000000 
+0100
+++ new/xf86-video-vmware-13.1.0/INSTALL        2015-01-19 14:06:27.000000000 
+0100
@@ -1,291 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007, 2008 Free Software Foundation, Inc.
-
-   This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
-Basic Installation
-==================
-
-   Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package.  The following
-more-detailed instructions are generic; see the `README' file for
-instructions specific to this package.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
-   It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
-   The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.
-
-     Running `configure' might take a while.  While running, it prints
-     some messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-  6. Often, you can also type `make uninstall' to remove the installed
-     files again.
-
-Compilers and Options
-=====================
-
-   Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  Run `./configure --help'
-for details on some of the pertinent environment variables.
-
-   You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment.  Here
-is an example:
-
-     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-
-   *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
-   You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you can use GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   With a non-GNU `make', it is safer to compile the package for one
-architecture at a time in the source code directory.  After you have
-installed the package for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
-   On MacOS X 10.5 and later systems, you can create libraries and
-executables that work on multiple system types--known as "fat" or
-"universal" binaries--by specifying multiple `-arch' options to the
-compiler but only a single `-arch' option to the preprocessor.  Like
-this:
-
-     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
-                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
-                 CPP="gcc -E" CXXCPP="g++ -E"
-
-   This is not guaranteed to produce working output in all cases, you
-may have to build one architecture at a time and combine the results
-using the `lipo' tool if you have problems.
-
-Installation Names
-==================
-
-   By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc.  You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
-   In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Particular systems
-==================
-
-   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
-CC is not installed, it is recommended to use the following options in
-order to use an ANSI C compiler:
-
-     ./configure CC="cc -Ae"
-
-and if that doesn't work, install pre-built binaries of GCC for HP-UX.
-
-   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
-a workaround.  If GNU CC is not installed, it is therefore recommended
-to try
-
-     ./configure CC="cc"
-
-and if that doesn't work, try
-
-     ./configure CC="cc -nodtk"
-
-Specifying the System Type
-==========================
-
-   There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on.  Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
-     CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
-     OS KERNEL-OS
-
-   See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
-   If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
-   If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
-   If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
-   Variables not defined in a site shell script can be set in the
-environment passed to `configure'.  However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost.  In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'.  For example:
-
-     ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug.  Until the bug is fixed you can use this workaround:
-
-     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-`configure' Invocation
-======================
-
-   `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
-     Print a summary of all of the options to `configure', and exit.
-
-`--help=short'
-`--help=recursive'
-     Print a summary of the options unique to this package's
-     `configure', and exit.  The `short' variant lists options used
-     only in the top level, while the `recursive' variant lists options
-     also present in any nested packages.
-
-`--version'
-`-V'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
-
-`--cache-file=FILE'
-     Enable the cache: use and save the results of the tests in FILE,
-     traditionally `config.cache'.  FILE defaults to `/dev/null' to
-     disable caching.
-
-`--config-cache'
-`-C'
-     Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
-     messages will still be shown).
-
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
-
-`--prefix=DIR'
-     Use DIR as the installation prefix.  *Note Installation Names::
-     for more details, including other options available for fine-tuning
-     the installation locations.
-
-`--no-create'
-`-n'
-     Run the configure checks, but stop before creating any output
-     files.
-
-`configure' also accepts some other, not widely useful, options.  Run
-`configure --help' for more details.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/compile new/xf86-video-vmware-13.1.0/compile
--- old/xf86-video-vmware-13.0.2/compile        2014-03-26 13:03:46.000000000 
+0100
+++ new/xf86-video-vmware-13.1.0/compile        2015-01-19 12:11:05.000000000 
+0100
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-01-04.17; # UTC
+scriptversion=2012-03-05.13; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
 # Software Foundation, Inc.
@@ -79,6 +79,48 @@
   esac
 }
 
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
 # func_cl_wrapper cl arg...
 # Adjust compile command to suit cl
 func_cl_wrapper ()
@@ -109,43 +151,34 @@
              ;;
          esac
          ;;
+       -I)
+         eat=1
+         func_file_conv "$2" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
        -I*)
          func_file_conv "${1#-I}" mingw
          set x "$@" -I"$file"
          shift
          ;;
+       -l)
+         eat=1
+         func_cl_dashl "$2"
+         set x "$@" "$lib"
+         shift
+         ;;
        -l*)
-         lib=${1#-l}
-         found=no
-         save_IFS=$IFS
-         IFS=';'
-         for dir in $lib_path $LIB
-         do
-           IFS=$save_IFS
-           if $shared && test -f "$dir/$lib.dll.lib"; then
-             found=yes
-             set x "$@" "$dir/$lib.dll.lib"
-             break
-           fi
-           if test -f "$dir/$lib.lib"; then
-             found=yes
-             set x "$@" "$dir/$lib.lib"
-             break
-           fi
-         done
-         IFS=$save_IFS
-
-         test "$found" != yes && set x "$@" "$lib.lib"
+         func_cl_dashl "${1#-l}"
+         set x "$@" "$lib"
          shift
          ;;
+       -L)
+         eat=1
+         func_cl_dashL "$2"
+         ;;
        -L*)
-         func_file_conv "${1#-L}"
-         if test -z "$lib_path"; then
-           lib_path=$file
-         else
-           lib_path="$lib_path;$file"
-         fi
-         linker_opts="$linker_opts -LIBPATH:$file"
+         func_cl_dashL "${1#-L}"
          ;;
        -static)
          shared=false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/configure.ac 
new/xf86-video-vmware-13.1.0/configure.ac
--- old/xf86-video-vmware-13.0.2/configure.ac   2014-03-26 12:44:54.000000000 
+0100
+++ new/xf86-video-vmware-13.1.0/configure.ac   2015-01-19 11:23:45.000000000 
+0100
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-vmware],
-        [13.0.2],
+        [13.1.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-vmware])
 AC_CONFIG_SRCDIR([Makefile.am])
@@ -126,7 +126,7 @@
                          [PKG_CHECK_EXISTS([xatracker = 2.0.0],
                          [AC_DEFINE([HAVE_XA_2], 1,
                                  [Has version 2 of XA])])],
-                         [],[BUILD_VMWGFX=no])
+                         [BUILD_VMWGFX=no])
 #
 # Check for prime.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/saa/saa.c new/xf86-video-vmware-13.1.0/saa/saa.c
--- old/xf86-video-vmware-13.0.2/saa/saa.c      2012-06-15 20:19:35.000000000 
+0200
+++ new/xf86-video-vmware-13.1.0/saa/saa.c      2015-01-19 11:23:14.000000000 
+0100
@@ -349,7 +349,7 @@
 {
     return ((pGC->alu != GXcopy && pGC->alu != GXclear && pGC->alu != GXset &&
             pGC->alu != GXcopyInverted) || pGC->fillStyle == FillStippled ||
-           pGC->clientClipType != CT_NONE ||
+           pGC->clientClip != NULL ||
            !SAA_PM_IS_SOLID(pDrawable, pGC->planemask));
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/saa/saa_unaccel.c 
new/xf86-video-vmware-13.1.0/saa/saa_unaccel.c
--- old/xf86-video-vmware-13.0.2/saa/saa_unaccel.c      2012-06-15 
20:19:33.000000000 +0200
+++ new/xf86-video-vmware-13.1.0/saa/saa_unaccel.c      2014-10-15 
07:35:33.000000000 +0200
@@ -421,17 +421,20 @@
     if (!region)
        goto out_no_region;
 
-    REGION_TRANSLATE(pGC->pScreen, region, xoff + pDrawable->x,
-                    yoff + pDrawable->y);
-
+    REGION_TRANSLATE(pGC->pScreen, region, pDrawable->x, pDrawable->y);
+    REGION_INTERSECT(pGC->pScreen, region, fbGetCompositeClip(pGC), region);
+    REGION_TRANSLATE(pGC->pScreen, region, xoff, yoff);
 
     access = SAA_ACCESS_W;
     if (saa_gc_reads_destination(pDrawable, pGC)) {
        /*
         * We need to do a readback anyway. In case of more than an
-        * ad hoc number of say 10 rectangles, we might as well do a
+        * ad hoc number of say 4 rectangles, we might as well do a
         * readback of the whole damage area to avoid fragmentation.
         */
+       if (REGION_NUM_RECTS(region) > 4)
+           goto out_no_access;
+
        access |= SAA_ACCESS_R;
        ret = saa_prepare_access_pixmap(pPixmap, access, region);
     } else
@@ -451,13 +454,8 @@
     saa_finish_access_pixmap(pPixmap, access);
 
     if (spix->damage) {
-       /*
-        * Not sure why the region can be larger than the pending damage region
-        * at this point, (happens on clipped-away drawables). To avoid 
potential
-        * rendering problems, we clip to the pending damage region.
-        */
-       REGION_INTERSECT(pGC->pScreen, region, region, 
saa_pix_damage_pending(spix));
-
+       REGION_INTERSECT(pGC->pScreen, region, region,
+                        saa_pix_damage_pending(spix));
        saa_pixmap_dirty(pPixmap, FALSE, region);
     }
 
@@ -617,10 +615,32 @@
        goto out_no_access;;
 
     if (saa_prepare_access_pixmap(pPixmap, SAA_ACCESS_W, NULL)) {
+       struct saa_pixmap *spix;
+       RegionRec rgnDst;
+
+       REGION_NULL(pScreen, &rgnDst);
+       REGION_COPY(pScreen, &rgnDst, prgnSrc);
+
        saa_swap(sscreen, pScreen, CopyWindow);
        pScreen->CopyWindow(pWin, ptOldOrg, prgnSrc);
        saa_swap(sscreen, pScreen, CopyWindow);
-       saa_fad_write(pDrawable, SAA_ACCESS_W);
+       saa_finish_access_pixmap(pPixmap, SAA_ACCESS_W);
+
+       spix = saa_get_saa_pixmap(pPixmap);
+       if (spix->damage) {
+           int dx, dy;
+
+           dx = ptOldOrg.x - pWin->drawable.x;
+           dy = ptOldOrg.y - pWin->drawable.y;
+           REGION_TRANSLATE(pScreen, &rgnDst, -dx, -dy);
+           REGION_INTERSECT(pSreen, &rgnDst, &pWin->borderClip, &rgnDst);
+           REGION_TRANSLATE(pScreen, &rgnDst, xoff, yoff);
+
+           REGION_INTERSECT(pScreen, &rgnDst, &rgnDst,
+                            saa_pix_damage_pending(spix));
+           saa_pixmap_dirty(pPixmap, FALSE, &rgnDst);
+       }
+       REGION_UNINIT(pScreen, &rgnDst);
     }
     saa_fad_read(pDrawable);
  out_no_access:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/src/vmware.c 
new/xf86-video-vmware-13.1.0/src/vmware.c
--- old/xf86-video-vmware-13.0.2/src/vmware.c   2013-04-17 12:02:10.000000000 
+0200
+++ new/xf86-video-vmware-13.1.0/src/vmware.c   2014-08-20 13:02:35.000000000 
+0200
@@ -310,9 +310,6 @@
     pVMWARE->pvtSema = &pScrn->vtSema;
 
     pVMWARE->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
-    if (pVMWARE->pEnt->location.type != BUS_PCI) {
-        return FALSE;
-    }
     pVMWARE->PciInfo = xf86GetPciInfoForEntity(pVMWARE->pEnt->index);
     if (pVMWARE->PciInfo == NULL) {
         return FALSE;
@@ -378,7 +375,8 @@
 #ifdef ACCELERATE_OPS
     pVMWARE->vmwareCapability = vmwareReadReg(pVMWARE, SVGA_REG_CAPABILITIES);
 #else
-    pVMWARE->vmwareCapability = 0;
+    pVMWARE->vmwareCapability = vmwareReadReg(pVMWARE, SVGA_REG_CAPABILITIES) &
+       SVGA_CAP_PITCHLOCK;
 #endif
 
     pVMWARE->bitsPerPixel = vmwareReadReg(pVMWARE,
@@ -861,6 +859,8 @@
         return FALSE;
     pScrn->vtSema = TRUE;
 
+    if (pVMWARE->vmwareCapability & SVGA_CAP_PITCHLOCK)
+       vmwareWriteReg(pVMWARE, SVGA_REG_PITCHLOCK, 0);
     vmwareReg->svga_reg_enable = 1;
     vmwareReg->svga_reg_width = max(mode->HDisplay, pScrn->virtualX);
     vmwareReg->svga_reg_height = max(mode->VDisplay, pScrn->virtualY);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/src/vmware_bootstrap.c 
new/xf86-video-vmware-13.1.0/src/vmware_bootstrap.c
--- old/xf86-video-vmware-13.0.2/src/vmware_bootstrap.c 2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/src/vmware_bootstrap.c 2014-09-23 
09:42:55.000000000 +0200
@@ -50,6 +50,10 @@
 #include <xf86_libc.h>
 #endif
 
+#ifdef XSERVER_PLATFORM_BUS
+#include "xf86platformBus.h"
+#endif
+
 #ifdef HaveDriverFuncs
 #define VMWARE_DRIVER_FUNC HaveDriverFuncs
 #else
@@ -247,9 +251,6 @@
     vmwlegacy_hookup(pScrn);
 
     pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
-    if (pEnt->location.type != BUS_PCI)
-        return FALSE;
-
     pciInfo = xf86GetPciInfoForEntity(pEnt->index);
     if (pciInfo == NULL)
         return FALSE;
@@ -407,6 +408,45 @@
 }
 #endif
 
+#ifdef XSERVER_PLATFORM_BUS
+static Bool
+VMwarePlatformProbe(DriverPtr drv, int entity, int flags,
+                    struct xf86_platform_device *dev, intptr_t match_data)
+{
+    ScrnInfoPtr pScrn;
+    int scrnFlag = 0;
+
+    if (!dev->pdev)
+        return FALSE;
+
+    if (flags & PLATFORM_PROBE_GPU_SCREEN)
+        scrnFlag = XF86_ALLOCATE_GPU_SCREEN;
+
+    pScrn = xf86AllocateScreen(drv, scrnFlag);
+    if (!pScrn)
+        return FALSE;
+
+    if (xf86IsEntitySharable(entity))
+        xf86SetEntityShared(entity);
+
+    xf86AddEntityToScreen(pScrn, entity);
+
+    pScrn->driverVersion = VMWARE_DRIVER_VERSION;
+    pScrn->driverName = VMWARE_DRIVER_NAME;
+    pScrn->name = VMWARE_NAME;
+    pScrn->Probe = NULL;
+#ifdef BUILD_VMWGFX
+    vmwgfx_hookup(pScrn);
+#else
+    vmwlegacy_hookup(pScrn);
+#endif
+    pScrn->driverPrivate = pScrn->PreInit;
+    pScrn->PreInit = VMwarePreinitStub;
+
+    return TRUE;
+}
+#endif
+
 static void
 VMWAREIdentify(int flags)
 {
@@ -456,6 +496,10 @@
                              pScrn->yDpi / 2) / pScrn->yDpi;
       }
       return TRUE;
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 18
+   case SUPPORTS_SERVER_FDS:
+      return TRUE;
+#endif
    default:
       return FALSE;
    }
@@ -478,9 +522,21 @@
 #if VMWARE_DRIVER_FUNC
     VMWareDriverFunc,
 #endif
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 4
 #if XSERVER_LIBPCIACCESS
     VMwareDeviceMatch,
     VMwarePciProbe,
+#else
+    NULL,
+    NULL,
+#endif
+#endif
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 13
+#ifdef XSERVER_PLATFORM_BUS
+    VMwarePlatformProbe,
+#else
+    NULL,
+#endif
 #endif
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/src/vmwarevideo.c 
new/xf86-video-vmware-13.1.0/src/vmwarevideo.c
--- old/xf86-video-vmware-13.0.2/src/vmwarevideo.c      2012-08-07 
00:31:14.000000000 +0200
+++ new/xf86-video-vmware-13.1.0/src/vmwarevideo.c      2014-09-23 
09:42:55.000000000 +0200
@@ -58,6 +58,10 @@
      ((GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) == 1) && \
       (GET_ABI_MINOR(ABI_VIDEODRV_VERSION) >= 2)))
 
+#if HAVE_FILLKEYHELPERDRAWABLE
+#include <damage.h>
+#endif
+
 #define MAKE_ATOM(a) MakeAtom(a, sizeof(a) - 1, TRUE)
 
 /*
@@ -687,7 +691,12 @@
        int nBoxes = REGION_NUM_RECTS(&pVid->clipBoxes);
 
 #if HAVE_FILLKEYHELPERDRAWABLE
-       xf86XVFillKeyHelperDrawable(draw, pVid->colorKey, clipBoxes);
+       if (draw->type == DRAWABLE_WINDOW) {
+           xf86XVFillKeyHelperDrawable(draw, pVid->colorKey, clipBoxes);
+           DamageDamageRegion(draw, clipBoxes);
+       } else {
+           xf86XVFillKeyHelper(pScrn->pScreen, pVid->colorKey, clipBoxes);
+        }
 #else
         xf86XVFillKeyHelper(pScrn->pScreen, pVid->colorKey, clipBoxes);
 #endif
@@ -789,7 +798,8 @@
     struct PACKED _body {
         uint32 escape;
         uint32 streamId;
-        struct _item items[SVGA_VIDEO_NUM_REGS];
+        /* Old hosts can not handle more then these regs */
+        struct _item items[SVGA_VIDEO_DATA_GMRID];
     };
 
     struct PACKED _cmdSetRegs {
@@ -831,7 +841,7 @@
     cmdSetRegs.body.streamId = pVid->streamId;
 
     items = cmdSetRegs.body.items;
-    for (i = SVGA_VIDEO_ENABLED; i < SVGA_VIDEO_NUM_REGS; i++) {
+    for (i = SVGA_VIDEO_ENABLED; i < SVGA_VIDEO_DATA_GMRID; i++) {
         items[i].regId = i;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_crtc.c 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_crtc.c
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_crtc.c   2013-04-17 
12:02:10.000000000 +0200
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_crtc.c   2014-09-23 
09:42:55.000000000 +0200
@@ -193,6 +193,7 @@
        crtcp->entry.pixmap = pixmap;
        crtcp->scanout_id = vmwgfx_scanout_ref(&crtcp->entry);
        if (crtcp->scanout_id == -1) {
+           crtcp->entry.pixmap = NULL;
            LogMessage(X_ERROR, "Failed to convert pixmap to scanout.\n");
            return FALSE;
        }
@@ -212,6 +213,15 @@
     crtc->active = TRUE;
 #endif
 
+    /*
+     * Strictly, this needs to be done only once per configuration change,
+     * not once per crtc, but there's no better place to put this. Since
+     * Intel wrote the crtc code, let's do what the xf86-video-intel driver
+     * does.
+     */
+    if (pScreen)
+       xf86_reload_cursors(pScreen);
+
     return TRUE;
 }
 
@@ -276,6 +286,10 @@
     modesettingPtr ms = modesettingPTR(crtc->scrn);
     struct crtc_private *crtcp = crtc->driver_private;
 
+    /* Seems like newer X servers try to move cursors without images */
+    if (!crtcp->cursor_bo)
+       return;
+
     drmModeMoveCursor(ms->fd, crtcp->drm_crtc->crtc_id, x, y);
 }
 
@@ -296,8 +310,11 @@
     if (!crtcp->cursor_bo) {
        size_t size = 64*64*4;
         crtcp->cursor_bo = vmwgfx_dmabuf_alloc(ms->fd, size);
-       if (!crtcp->cursor_bo)
+       if (!crtcp->cursor_bo) {
+           xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR,
+                      "Failed to create a dmabuf for cursor.\n");
            return;
+       }
        crtcp->cursor_handle = crtcp->cursor_bo->handle;
     }
 
@@ -305,6 +322,9 @@
     if (ptr) {
        memcpy(ptr, image, 64*64*4);
        vmwgfx_dmabuf_unmap(crtcp->cursor_bo);
+    } else {
+       xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR,
+                  "Failed to map cursor dmabuf.\n");
     }
 
     if (crtc->cursor_shown)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_driver.c 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_driver.c
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_driver.c 2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_driver.c 2015-01-19 
11:23:02.000000000 +0100
@@ -54,6 +54,10 @@
 
 #include <pciaccess.h>
 
+#ifdef XSERVER_PLATFORM_BUS
+#include "xf86platformBus.h"
+#endif
+
 #include "vmwgfx_driver.h"
 
 #include <saa.h>
@@ -243,6 +247,15 @@
     .resize = drv_crtc_resize
 };
 
+static Bool vmwgfx_use_server_fd(modesettingPtr ms)
+{
+#ifdef XF86_PDEV_SERVER_FD
+    return ms->platform_dev && (ms->platform_dev->flags & XF86_PDEV_SERVER_FD);
+#else
+    return FALSE;
+#endif
+}
+
 static Bool
 drv_init_drm(ScrnInfoPtr pScrn)
 {
@@ -253,6 +266,12 @@
 
        ms->fd = vmwgfx_hosted_drm_fd(ms->hdriver, ms->hosted, ms->PciInfo);
 
+#ifdef ODEV_ATTRIB_FD
+       if (ms->fd < 0 && vmwgfx_use_server_fd(ms))
+           ms->fd = xf86_get_platform_device_int_attrib(ms->platform_dev,
+                                                        ODEV_ATTRIB_FD, -1);
+#endif
+
        if (ms->fd < 0) {
 
            char bus_id[64];
@@ -465,13 +484,18 @@
 
     pScrn->displayWidth = 640;        /* default it */
 
-    if (ms->pEnt->location.type != BUS_PCI) {
+    ms->PciInfo = xf86GetPciInfoForEntity(ms->pEnt->index);
+    if (!ms->PciInfo) {
        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                   "Incorrect bus for device.\n");
        goto out_err_bus;
     }
 
-    ms->PciInfo = xf86GetPciInfoForEntity(ms->pEnt->index);
+#ifdef XSERVER_PLATFORM_BUS
+    if (pEnt->location.type == BUS_PLATFORM)
+        ms->platform_dev = pEnt->location.id.plat;
+#endif
+
     xf86SetPrimInitDone(pScrn->entityList[0]);
 
     ms->hdriver = vmwgfx_hosted_detect();
@@ -605,7 +629,7 @@
     free(ms->Options);
   out_depth:
   out_drm_version:
-    if (!vmwgfx_is_hosted(ms->hdriver))
+    if (!vmwgfx_is_hosted(ms->hdriver) && !vmwgfx_use_server_fd(ms))
        close(ms->fd);
   out_no_drm:
     vmwgfx_hosted_destroy(ms->hdriver, ms->hosted);
@@ -783,8 +807,8 @@
 {
     modesettingPtr ms = modesettingPTR(pScrn);
 
-    if (!vmwgfx_is_hosted(ms->hdriver) && !ms->isMaster &&
-       drmSetMaster(ms->fd) != 0) {
+    if (!vmwgfx_is_hosted(ms->hdriver) && !vmwgfx_use_server_fd(ms) &&
+            !ms->isMaster && drmSetMaster(ms->fd) != 0) {
        if (errno == EINVAL) {
            xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
                       "drmSetMaster failed: 2.6.29 or newer kernel required 
for "
@@ -1184,7 +1208,8 @@
 
     vmwgfx_saa_drop_master(pScrn->pScreen);
 
-    if (!vmwgfx_is_hosted(ms->hdriver) && drmDropMaster(ms->fd))
+    if (!vmwgfx_is_hosted(ms->hdriver) && !vmwgfx_use_server_fd(ms) &&
+            drmDropMaster(ms->fd))
        xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
                   "drmDropMaster failed: %s\n", strerror(errno));
     ms->isMaster = FALSE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_driver.h 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_driver.h
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_driver.h 2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_driver.h 2015-01-19 
11:23:02.000000000 +0100
@@ -83,6 +83,7 @@
 };
 
 struct vmwgfx_hosted;
+struct xf86_platform_device;
 
 typedef struct _modesettingRec
 {
@@ -98,6 +99,7 @@
     int Chipset;
     EntityInfoPtr pEnt;
     struct pci_device *PciInfo;
+    struct xf86_platform_device *platform_dev;
 
     /* Accel */
     Bool accelerate_render;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_overlay.c 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_overlay.c
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_overlay.c        2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_overlay.c        2014-10-15 
07:35:33.000000000 +0200
@@ -35,6 +35,7 @@
  */
 
 
+#include "xorg-server.h"
 #include "xf86xv.h"
 #include "fourcc.h"
 #define debug_printf(...)
@@ -162,7 +163,7 @@
     int (*play)(ScrnInfoPtr, struct vmwgfx_overlay_port *,
                 short, short, short, short, short,
                 short, short, short, int, unsigned char*,
-                short, short, RegionPtr);
+                short, short, RegionPtr, DrawablePtr);
 
     /* values to go into the SVGAOverlayUnit */
     uint32 streamId;
@@ -217,13 +218,15 @@
                                short drw_y, short src_w, short src_h,
                                short drw_w, short drw_h, int format,
                                unsigned char *buf, short width,
-                               short height, RegionPtr clipBoxes);
+                               short height, RegionPtr clipBoxes,
+                               DrawablePtr pDraw);
 static int vmw_video_port_play(ScrnInfoPtr pScrn, struct vmwgfx_overlay_port 
*port,
                                short src_x, short src_y, short drw_x,
                                short drw_y, short src_w, short src_h,
                                short drw_w, short drw_h, int format,
                                unsigned char *buf, short width,
-                               short height, RegionPtr clipBoxes);
+                               short height, RegionPtr clipBoxes,
+                               DrawablePtr pDraw);
 static void vmw_video_port_cleanup(ScrnInfoPtr pScrn, struct 
vmwgfx_overlay_port *port);
 
 static int vmw_video_buffer_alloc(int drm_fd, int size,
@@ -380,7 +383,7 @@
                     short drw_y, short src_w, short src_h,
                     short drw_w, short drw_h, int format,
                     unsigned char *buf, short width,
-                    short height, RegionPtr clipBoxes)
+                    short height, RegionPtr clipBoxes, DrawablePtr pDraw)
 {
     unsigned short w, h;
     int i, ret;
@@ -412,7 +415,7 @@
     REGION_NULL(pScrn->pScreen, &port->clipBoxes);
     port->play = vmw_video_port_play;
     return port->play(pScrn, port, src_x, src_y, drw_x, drw_y, src_w, src_h,
-                      drw_w, drw_h, format, buf, width, height, clipBoxes);
+                      drw_w, drw_h, format, buf, width, height, clipBoxes, 
pDraw);
 
   out_no_buffer:
     while(i-- != 0) {
@@ -448,7 +451,7 @@
                     short drw_y, short src_w, short src_h,
                     short drw_w, short drw_h, int format,
                     unsigned char *buf, short width,
-                    short height, RegionPtr clipBoxes)
+                    short height, RegionPtr clipBoxes, DrawablePtr pDraw)
 {
     struct drm_vmw_control_stream_arg arg;
     unsigned short w, h;
@@ -468,7 +471,7 @@
         vmw_xv_stop_video(pScrn, port, TRUE);
         return port->play(pScrn, port, src_x, src_y, drw_x, drw_y, src_w,
                           src_h, drw_w, drw_h, format, buf, width, height,
-                          clipBoxes);
+                          clipBoxes, pDraw);
     }
 
     memcpy(port->bufs[port->currBuf].data, buf, port->size);
@@ -502,8 +505,14 @@
      */
     if (!REGION_EQUAL(pScrn->pScreen, &port->clipBoxes, clipBoxes)) {
         REGION_COPY(pScrn->pScreen, &port->clipBoxes, clipBoxes);
-        if (port->isAutoPaintColorkey)
-            xf86XVFillKeyHelper(pScrn->pScreen, port->colorKey, clipBoxes);
+        if (port->isAutoPaintColorkey) {
+            if (pDraw->type == DRAWABLE_WINDOW) {
+                xf86XVFillKeyHelperDrawable(pDraw, port->colorKey, clipBoxes);
+                DamageDamageRegion(pDraw, clipBoxes);
+            } else {
+                xf86XVFillKeyHelper(pScrn->pScreen, port->colorKey, clipBoxes);
+            }
+        }
     }
 
     xorg_flush(pScrn->pScreen);
@@ -667,7 +676,7 @@
                 width, height);
 
     return port->play(pScrn, port, src_x, src_y, drw_x, drw_y, src_w, src_h,
-                      drw_w, drw_h, format, buf, width, height, clipBoxes);
+                      drw_w, drw_h, format, buf, width, height, clipBoxes, 
dst);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_saa.c 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_saa.c
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_saa.c    2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_saa.c    2014-09-23 
09:42:56.000000000 +0200
@@ -610,9 +610,9 @@
     }
 
     if (vpix->hw) {
-       if (xa_surface_redefine(vpix->hw, draw->width, draw->height,
-                               draw->depth, xa_type_argb,
-                               xa_format_unknown, vpix->xa_flags, 1) != 0)
+      if (!vmwgfx_xa_surface_redefine(vpix, vpix->hw, draw->width,
+                                     draw->height, draw->depth, xa_type_argb,
+                                     xa_format_unknown, vpix->xa_flags, 1))
            return FALSE;
     }
 
@@ -694,7 +694,8 @@
 
     vmwgfx_pix_resize(pixmap, old_pitch, old_height, old_width);
     vmwgfx_pixmap_free_storage(vpix);
-    WSBMLISTADDTAIL(&vpix->pixmap_list, &vsaa->pixmaps);
+    if (WSBMLISTEMPTY(&vpix->pixmap_list))
+       WSBMLISTADDTAIL(&vpix->pixmap_list, &vsaa->pixmaps);
 
     return TRUE;
 
@@ -824,11 +825,11 @@
        return FALSE;
 
     vpix->xa_flags = new_flags;
+    vpix->hw = hw;
 
     if (!vmwgfx_pixmap_add_damage(pixmap))
        goto out_no_damage;
 
-    vpix->hw = hw;
     vpix->backing |= VMWGFX_PIX_SURFACE;
     vmwgfx_pixmap_free_storage(vpix);
 
@@ -841,6 +842,7 @@
     return TRUE;
 
 out_no_damage:
+    vpix->hw = NULL;
     xa_surface_destroy(hw);
     return FALSE;
 }
@@ -1158,6 +1160,8 @@
      * and check whether XA can accelerate.
      */
 
+    if (!mask_pix)
+       mask_pict = NULL;
     xa_comp = vmwgfx_xa_setup_comp(vsaa->vcomp, op,
                                   src_pict, mask_pict, dst_pict);
     if (!xa_comp)
@@ -1504,7 +1508,8 @@
             * The KMS fb will be a HW surface. Create it, add damage
             * and get the handle.
             */
-           if (!vmwgfx_hw_accel_validate(pixmap, 0, XA_FLAG_SCANOUT, 0, NULL))
+           if (!vmwgfx_hw_accel_validate(pixmap, 0, XA_FLAG_SCANOUT |
+                                         XA_FLAG_RENDER_TARGET, 0, NULL))
                goto out_err;
            if (_xa_surface_handle(vpix->hw, &handle, &dummy) != 0)
                goto out_err;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_saa_priv.h 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_saa_priv.h
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_saa_priv.h       2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_saa_priv.h       2014-04-11 
12:34:06.000000000 +0200
@@ -100,6 +100,17 @@
 Bool
 vmwgfx_hw_commit(PixmapPtr pixmap);
 
+Bool
+vmwgfx_xa_surface_redefine(struct vmwgfx_saa_pixmap *vpix,
+                          struct xa_surface *srf,
+                          int width,
+                          int height,
+                          int depth,
+                          enum xa_surface_type stype,
+                          enum xa_formats rgb_format,
+                          unsigned int new_flags,
+                          int copy_contents);
+
 /*
  * vmwgfx_xa_composite.c
  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_xa_surface.c 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_xa_surface.c
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_xa_surface.c     2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_xa_surface.c     2014-04-11 
12:34:06.000000000 +0200
@@ -43,6 +43,52 @@
 static const unsigned int vmwgfx_stype_map_size =
     sizeof(vmwgfx_stype_map) / sizeof(enum xa_surface_type);
 
+/**
+ * vmwgfx_xa_surface_redefine - wrapper around xa_surface_redefine
+ *
+ * @vpix: Pointer to the struct vmwgfx_saa_pixmap the surface is attached to.
+ * @srf: The surface.
+ * @width: New width.
+ * @height: New height.
+ * @depth: New pixel depth.
+ * @stype: New surface type.
+ * @rgb_format: New rgb format.
+ * @new_flags: New surface flags.
+ * @copy_contents: Copy contents if new backing store is allocated.
+ *
+ * This is a wrapper that prints out an error message if the backing store
+ * of an active scanout surface is changed.
+ */
+Bool
+vmwgfx_xa_surface_redefine(struct vmwgfx_saa_pixmap *vpix,
+                          struct xa_surface *srf,
+                          int width,
+                          int height,
+                          int depth,
+                          enum xa_surface_type stype,
+                          enum xa_formats rgb_format,
+                          unsigned int new_flags,
+                          int copy_contents)
+{
+    uint32_t handle, new_handle, dummy;
+    Bool have_handle = FALSE;
+
+    if (!WSBMLISTEMPTY(&vpix->scanout_list))
+       have_handle = (_xa_surface_handle(srf, &handle, &dummy) == XA_ERR_NONE);
+
+    if (xa_surface_redefine(srf, width, height, depth, stype, rgb_format,
+                           new_flags, copy_contents) != XA_ERR_NONE)
+       return FALSE;
+
+    if (!WSBMLISTEMPTY(&vpix->scanout_list) && have_handle &&
+       _xa_surface_handle(srf, &new_handle, &dummy) == XA_ERR_NONE &&
+       new_handle != handle) {
+       LogMessage(X_ERROR, "Changed active scanout surface handle.\n");
+    }
+
+    return TRUE;
+}
+
 
 /*
  * Create an xa format from a PICT format.
@@ -323,13 +369,14 @@
        if (vpix->staging_format != xa_surface_format(vpix->hw))
            LogMessage(X_INFO, "Changing hardware format.\n");
 
-       if (xa_surface_redefine(vpix->hw,
-                               pixmap->drawable.width,
-                               pixmap->drawable.height,
-                               0,
-                               xa_type_other,
-                               vpix->staging_format,
-                               new_flags, 1) != XA_ERR_NONE)
+       if (!vmwgfx_xa_surface_redefine(vpix,
+                                       vpix->hw,
+                                       pixmap->drawable.width,
+                                       pixmap->drawable.height,
+                                       0,
+                                       xa_type_other,
+                                       vpix->staging_format,
+                                       new_flags, 1) != XA_ERR_NONE)
            return FALSE;
        vpix->xa_flags = new_flags;
     } else if (!vmwgfx_create_hw(vsaa, pixmap))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_xmir.c 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_xmir.c
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_xmir.c   2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_xmir.c   2014-05-21 
16:37:31.000000000 +0200
@@ -36,6 +36,7 @@
 
 #include "vmwgfx_hosted.h"
 #include "vmwgfx_saa.h"
+#include <xf86Crtc.h>
 #include <xf86Priv.h>
 #include <xmir.h>
 
@@ -103,6 +104,11 @@
        return FALSE;
 
     hosted->pScreen = pScreen;
+    if (!xf86SetDesiredModes(hosted->pScrn)) {
+       xmir_screen_close(hosted->pScreen, hosted->xmir);
+       hosted->pScreen = NULL;
+       return FALSE;
+    }
 
     return TRUE;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_xwayland.c 
new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_xwayland.c
--- old/xf86-video-vmware-13.0.2/vmwgfx/vmwgfx_xwayland.c       2014-03-20 
14:15:03.000000000 +0100
+++ new/xf86-video-vmware-13.1.0/vmwgfx/vmwgfx_xwayland.c       2014-05-21 
16:37:31.000000000 +0200
@@ -62,7 +62,7 @@
      * surface.
      */
     vpix->hw_is_hosted = TRUE;
-    if (xa_surface_handle(vpix->hw, &name, &pitch) != XA_ERR_NONE)
+    if (_xa_surface_handle(vpix->hw, &name, &pitch) != XA_ERR_NONE)
        return BadDrawable;
 
     return xwl_create_window_buffer_drm(xwl_window, pixmap, name);

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to