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