summaryrefslogtreecommitdiff
path: root/xserver
diff options
context:
space:
mode:
Diffstat (limited to 'xserver')
-rw-r--r--xserver/ChangeLog1047
-rw-r--r--xserver/Makefile.in3
-rw-r--r--xserver/TODO12
-rw-r--r--xserver/Xext/Makefile.in3
-rw-r--r--xserver/Xext/panoramiXprocs.c4
-rw-r--r--xserver/Xext/saver.c2
-rw-r--r--xserver/Xext/shm.c17
-rw-r--r--xserver/Xi/Makefile.in3
-rw-r--r--xserver/Xi/exevents.c3
-rw-r--r--xserver/composite/Makefile.in3
-rw-r--r--xserver/config/Makefile.in3
-rw-r--r--xserver/configure84
-rw-r--r--xserver/configure.ac28
-rw-r--r--xserver/damageext/Makefile.in3
-rw-r--r--xserver/dbe/Makefile.in3
-rw-r--r--xserver/dix/Makefile.in3
-rw-r--r--xserver/dix/cursor.c23
-rw-r--r--xserver/dix/devices.c3
-rw-r--r--xserver/dix/enterleave.c20
-rw-r--r--xserver/dix/ptrveloc.c10
-rw-r--r--xserver/doc/Makefile.in3
-rw-r--r--xserver/doc/dtrace/Makefile.in3
-rw-r--r--xserver/dri3/Makefile.in3
-rw-r--r--xserver/exa/Makefile.in3
-rw-r--r--xserver/exa/exa_glyphs.c8
-rw-r--r--xserver/exa/exa_render.c3
-rw-r--r--xserver/fb/Makefile.in3
-rw-r--r--xserver/glamor/Makefile.in3
-rw-r--r--xserver/glamor/glamor.c45
-rw-r--r--xserver/glamor/glamor.h1
-rw-r--r--xserver/glamor/glamor_composite_glyphs.c5
-rw-r--r--xserver/glamor/glamor_compositerects.c18
-rw-r--r--xserver/glamor/glamor_copy.c8
-rw-r--r--xserver/glamor/glamor_dash.c3
-rw-r--r--xserver/glamor/glamor_egl.c11
-rw-r--r--xserver/glamor/glamor_fbo.c4
-rw-r--r--xserver/glamor/glamor_priv.h28
-rw-r--r--xserver/glamor/glamor_program.c8
-rw-r--r--xserver/glamor/glamor_render.c94
-rw-r--r--xserver/glamor/glamor_spans.c3
-rw-r--r--xserver/glamor/glamor_text.c13
-rw-r--r--xserver/glamor/glamor_transfer.c3
-rw-r--r--xserver/glamor/glamor_transform.c12
-rw-r--r--xserver/glamor/glamor_transform.h4
-rw-r--r--xserver/glx/Makefile.in3
-rw-r--r--xserver/glx/glxext.c6
-rw-r--r--xserver/hw/Makefile.in3
-rw-r--r--xserver/hw/dmx/Makefile.in3
-rw-r--r--xserver/hw/dmx/config/Makefile.in3
-rw-r--r--xserver/hw/dmx/config/man/Makefile.in3
-rw-r--r--xserver/hw/dmx/doc/Makefile.in3
-rw-r--r--xserver/hw/dmx/doxygen/Makefile.in3
-rw-r--r--xserver/hw/dmx/examples/Makefile.in3
-rw-r--r--xserver/hw/dmx/glxProxy/Makefile.in3
-rw-r--r--xserver/hw/dmx/input/Makefile.in3
-rw-r--r--xserver/hw/dmx/man/Makefile.in3
-rw-r--r--xserver/hw/kdrive/Makefile.in3
-rw-r--r--xserver/hw/kdrive/ephyr/Makefile.in3
-rw-r--r--xserver/hw/kdrive/ephyr/man/Makefile.in3
-rw-r--r--xserver/hw/kdrive/fake/Makefile.in3
-rw-r--r--xserver/hw/kdrive/fbdev/Makefile.in3
-rw-r--r--xserver/hw/kdrive/linux/Makefile.in3
-rw-r--r--xserver/hw/kdrive/linux/keyboard.c441
-rw-r--r--xserver/hw/kdrive/src/Makefile.in3
-rw-r--r--xserver/hw/vfb/Makefile.in3
-rw-r--r--xserver/hw/vfb/man/Makefile.in3
-rw-r--r--xserver/hw/xfree86/Makefile.in3
-rw-r--r--xserver/hw/xfree86/common/Makefile.in3
-rw-r--r--xserver/hw/xfree86/common/xf86Config.c69
-rw-r--r--xserver/hw/xfree86/common/xf86Configure.c2
-rw-r--r--xserver/hw/xfree86/common/xf86Init.c4
-rw-r--r--xserver/hw/xfree86/common/xf86Privstr.h1
-rw-r--r--xserver/hw/xfree86/ddc/Makefile.in3
-rw-r--r--xserver/hw/xfree86/dixmods/Makefile.in3
-rw-r--r--xserver/hw/xfree86/doc/Makefile.in3
-rw-r--r--xserver/hw/xfree86/dri/Makefile.in3
-rw-r--r--xserver/hw/xfree86/dri2/Makefile.in3
-rw-r--r--xserver/hw/xfree86/dri2/pci_ids/Makefile.in3
-rw-r--r--xserver/hw/xfree86/drivers/Makefile.in3
-rw-r--r--xserver/hw/xfree86/drivers/modesetting/Makefile.am2
-rw-r--r--xserver/hw/xfree86/drivers/modesetting/Makefile.in8
-rw-r--r--xserver/hw/xfree86/drivers/modesetting/driver.c85
-rw-r--r--xserver/hw/xfree86/drivers/modesetting/drmmode_display.c99
-rw-r--r--xserver/hw/xfree86/drivers/modesetting/drmmode_display.h2
-rw-r--r--xserver/hw/xfree86/drivers/modesetting/present.c9
-rw-r--r--xserver/hw/xfree86/drivers/modesetting/sh3224.c140
-rw-r--r--xserver/hw/xfree86/drivers/modesetting/sh3224.h7
-rw-r--r--xserver/hw/xfree86/exa/Makefile.in3
-rw-r--r--xserver/hw/xfree86/exa/man/Makefile.in3
-rw-r--r--xserver/hw/xfree86/fbdevhw/Makefile.in3
-rw-r--r--xserver/hw/xfree86/fbdevhw/man/Makefile.in3
-rw-r--r--xserver/hw/xfree86/glamor_egl/Makefile.in3
-rw-r--r--xserver/hw/xfree86/i2c/Makefile.in3
-rw-r--r--xserver/hw/xfree86/int10/Makefile.in3
-rw-r--r--xserver/hw/xfree86/int10/xf86x86emu.c2
-rw-r--r--xserver/hw/xfree86/loader/Makefile.in3
-rw-r--r--xserver/hw/xfree86/man/Makefile.in3
-rw-r--r--xserver/hw/xfree86/man/xorg.conf.man4
-rw-r--r--xserver/hw/xfree86/modes/Makefile.in3
-rw-r--r--xserver/hw/xfree86/modes/xf86Crtc.c3
-rw-r--r--xserver/hw/xfree86/os-support/Makefile.in3
-rw-r--r--xserver/hw/xfree86/os-support/bsd/Makefile.in3
-rw-r--r--xserver/hw/xfree86/os-support/bus/Makefile.in3
-rw-r--r--xserver/hw/xfree86/os-support/hurd/Makefile.in3
-rw-r--r--xserver/hw/xfree86/os-support/linux/Makefile.in3
-rw-r--r--xserver/hw/xfree86/os-support/linux/lnx_init.c10
-rw-r--r--xserver/hw/xfree86/os-support/misc/Makefile.in3
-rw-r--r--xserver/hw/xfree86/os-support/solaris/Makefile.in3
-rw-r--r--xserver/hw/xfree86/os-support/stub/Makefile.in3
-rw-r--r--xserver/hw/xfree86/parser/Makefile.in3
-rw-r--r--xserver/hw/xfree86/ramdac/Makefile.in3
-rw-r--r--xserver/hw/xfree86/shadowfb/Makefile.in3
-rw-r--r--xserver/hw/xfree86/utils/Makefile.in3
-rw-r--r--xserver/hw/xfree86/utils/cvt/Makefile.in3
-rw-r--r--xserver/hw/xfree86/utils/gtf/Makefile.in3
-rw-r--r--xserver/hw/xfree86/utils/man/Makefile.in3
-rw-r--r--xserver/hw/xfree86/vbe/Makefile.in3
-rw-r--r--xserver/hw/xfree86/vgahw/Makefile.in3
-rw-r--r--xserver/hw/xfree86/x86emu/Makefile.in3
-rw-r--r--xserver/hw/xfree86/x86emu/x86emu/regs.h8
-rw-r--r--xserver/hw/xnest/Makefile.in3
-rw-r--r--xserver/hw/xnest/man/Makefile.in3
-rw-r--r--xserver/hw/xquartz/GL/Makefile.in3
-rw-r--r--xserver/hw/xquartz/Makefile.in3
-rw-r--r--xserver/hw/xquartz/bundle/Info.plist.cpp23
-rw-r--r--xserver/hw/xquartz/bundle/Makefile.am6
-rw-r--r--xserver/hw/xquartz/bundle/Makefile.in10
-rw-r--r--xserver/hw/xquartz/mach-startup/Makefile.in3
-rw-r--r--xserver/hw/xquartz/man/Makefile.in3
-rw-r--r--xserver/hw/xquartz/pbproxy/Makefile.in3
-rw-r--r--xserver/hw/xquartz/xpr/Makefile.in3
-rw-r--r--xserver/hw/xwayland/Makefile.in3
-rw-r--r--xserver/hw/xwayland/xwayland-cursor.c15
-rw-r--r--xserver/hw/xwayland/xwayland-glamor-xv.c2
-rw-r--r--xserver/hw/xwayland/xwayland-glamor.c3
-rw-r--r--xserver/hw/xwayland/xwayland-output.c17
-rw-r--r--xserver/hw/xwayland/xwayland-shm.c10
-rw-r--r--xserver/hw/xwayland/xwayland.h2
-rw-r--r--xserver/hw/xwin/Makefile.in3
-rw-r--r--xserver/hw/xwin/glx/Makefile.in3
-rw-r--r--xserver/hw/xwin/man/Makefile.in3
-rw-r--r--xserver/hw/xwin/winclipboard/Makefile.in3
-rw-r--r--xserver/include/Makefile.in3
-rw-r--r--xserver/include/xkbsrv.h4
-rw-r--r--xserver/man/Makefile.in3
-rw-r--r--xserver/mi/Makefile.in3
-rw-r--r--xserver/miext/Makefile.in3
-rw-r--r--xserver/miext/damage/Makefile.in3
-rw-r--r--xserver/miext/rootless/Makefile.in3
-rw-r--r--xserver/miext/shadow/Makefile.in3
-rw-r--r--xserver/miext/sync/Makefile.in3
-rw-r--r--xserver/os/Makefile.in3
-rw-r--r--xserver/os/access.c44
-rw-r--r--xserver/present/Makefile.in3
-rw-r--r--xserver/present/present.c33
-rw-r--r--xserver/pseudoramiX/Makefile.in3
-rw-r--r--xserver/randr/Makefile.in3
-rw-r--r--xserver/randr/rrprovider.c2
-rw-r--r--xserver/record/Makefile.in3
-rw-r--r--xserver/render/Makefile.in3
-rw-r--r--xserver/render/picture.h2
-rw-r--r--xserver/test/Makefile.in3
-rw-r--r--xserver/test/xi1/Makefile.in3
-rw-r--r--xserver/test/xi2/Makefile.in3
-rw-r--r--xserver/xfixes/Makefile.in3
-rw-r--r--xserver/xkb/Makefile.in3
-rw-r--r--xserver/xkb/xkb.c5
-rw-r--r--xserver/xkb/xkbEvents.c2
-rw-r--r--xserver/xkb/xkbLEDs.c2
169 files changed, 2207 insertions, 710 deletions
diff --git a/xserver/ChangeLog b/xserver/ChangeLog
index a4c2a4df7..5cc1db39f 100644
--- a/xserver/ChangeLog
+++ b/xserver/ChangeLog
@@ -1,3 +1,1050 @@
+commit 8b312db7d1d98be67f0283d982428545cf948a66
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Jul 19 13:27:08 2016 -0400
+
+ xserver 1.18.4
+
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 42a74080ffe93502904ede7555652f01ab11d12d
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Wed Mar 30 18:23:04 2016 +0900
+
+ os: Use strtok instead of xstrtokenize in ComputeLocalClient
+
+ Fixes leaking the memory pointed to by the members of the array returned
+ by xstrtokenize.
+
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ (cherry picked from commit e156c0ccb530897d3a428255bd5585f7ea7b9b41)
+
+commit 3c4cead499f10dabac20ab87728746ec41dae799
+Author: Adam Jackson <ajax@redhat.com>
+Date: Mon Mar 28 18:11:09 2016 +0900
+
+ os: Treat ssh as a non-local client (v4)
+
+ By the time we get to ComputeLocalClient, we've already done
+ NextAvailableClient → ReserveClientIds → DetermineClientCmd (assuming
+ we're built with #define CLIENTIDS), so we can look up the name of the
+ client process and refuse to treat ssh's X forwarding as if it were
+ local.
+
+ v2: (Michel Dänzer)
+ * Only match "ssh" itself, not other executable names starting with
+ that prefix.
+ * Ignore executable path for the match.
+ v3: (Michel Dänzer)
+ * Use GetClientCmdName (Mark Kettenis)
+ * Perform check on Windows as well, but only ignore path on Cygwin
+ (Martin Peres, Emil Velikov, Jon Turney)
+ v4: (Michel Dänzer)
+ * Cut of any colon and whatever comes after it. (Adam Jackson)
+ * Add bugzilla reference.
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93261
+
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ (cherry picked from commit adefbaee499b9679c6cac21f52ec6545af2b36b5)
+
+commit aebfc6ad9be5bd33b7e0a813d424c81d6214ab07
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Fri Jul 1 12:34:20 2016 +0900
+
+ glamor: Translate solid text background region after clipping
+
+ Fixes incorrect clipping for redirected windows which don't happen to be
+ located at the top left corner of the screen.
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96742
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ (cherry picked from commit e8e36755abb17872d669b88d33ca9adc511029a0)
+
+commit 7a08d8d82007367a90197f9e9d549dbf0bc9ca2e
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Jul 12 10:04:18 2016 -0400
+
+ xfree86: Fix fallback driver sort order for Xorg -configure (v2)
+
+ The intent here was that fallback drivers would be at the end of the
+ list in order, but if a fallback driver happened to be at the end of the
+ list already that's not what would happen. Rather than open-code
+ something smarter, just use qsort.
+
+ Note that qsort puts things in ascending order, so somewhat backwardsly
+ fallbacks are greater than native drivers, and vesa is greater than
+ modesetting.
+
+ v2: Use strcmp to compare non-fallback drivers so we get a predictable
+ result if your libc's qsort isn't stable (Keith Packard)
+
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+ (cherry picked from commit 32a9504c69183485b0b796fa3966cd1e39992365)
+
+commit 8ff830d1ea4c3572b8fb770009c73c40007e132a
+Author: Andrew Eikum <aeikum@codeweavers.com>
+Date: Wed Jul 6 14:13:09 2016 -0500
+
+ shm: Also censor images returned by ShmGetImage
+
+ We currently censor images from dix's GetImage, but not from
+ ShmGetImage. This is a method to bypass XACE, creating a potential
+ leak. We should censor in both methods.
+
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
+ (cherry picked from commit 4926845a57fa8b53e18ea7d3434bf5539e9b7782)
+
+commit d4cbb1155a79a3dc1dc74cc155dbcfc303273856
+Author: Rui Matos <tiagomatos@gmail.com>
+Date: Wed Jul 13 19:19:09 2016 +0200
+
+ xwayland: Update RR state on wl_output.done instead of wl_output.mode
+
+ Otherwise if the geometry changes but the mode doesn't we end up with
+ the previous geometry from RR's point of view.
+
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=768710
+
+ Reviewed-by: Jonas Ã…dahl <jadahl@gmail.com>
+ Signed-off-by: Rui Matos <tiagomatos@gmail.com>
+ (cherry picked from commit cf6730c503f8090a5d1b80918fe253fc2c5bc090)
+
+commit 65c5eab6000f108762b7ef6b63869525222ff99d
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Tue Jun 28 17:22:47 2016 +0900
+
+ dix: Work around non-premultiplied ARGB cursor data
+
+ Some games incorrectly use non-premultiplied ARGB cursor data, presumably
+ because that's what Windows uses. On some hardware (and with SWcursor),
+ this breaks areas of the cursor which are supposed to be transparent
+ (and presumably also translucent areas, but that's less noticeable).
+
+ This change checks for pixels with alpha == 0 and any non-alpha component
+ != 0. If any such pixel is found, the data is assumed to be
+ non-premultiplied and fixed up by multiplying the RGB components with the
+ alpha component.
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92309
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ (cherry picked from commit 401a8d6e1379133863e3271374dc21850d0d3cab)
+
+commit c0b02ce45f48450d2896a424dc1eb9a2827ed4c5
+Author: Hans De Goede <hdegoede@redhat.com>
+Date: Thu Jul 7 10:55:04 2016 +0200
+
+ linux: Do not try to open /dev/vc/0, fix error msg when /dev/tty0 open fails
+
+ /dev/vc/0 is a devfs thing which is long dead, so stop trying to open
+ /dev/vc/0, besides being a (small) code cleanup this will also fix the
+ "parse_vt_settings: Cannot open /dev/tty0 (%s)\n" error message to
+ display the actual error, rather then the -ENOENT from also trying
+ /dev/vc/0.
+
+ BugLink: https://patchwork.freedesktop.org/patch/8768/
+ Reported-by: Chad Versace <chad.versace@linux.intel.com>
+ Suggested-by: Julien Cristau <jcristau@debian.org>
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ Reviewed-by: Julien Cristau <jcristau@debian.org>
+ Reviewed-by: Chad Versace <chad.versace@intel.com>
+ (cherry picked from commit 033888e7766d226a179357d970223428c19c4b53)
+
+commit b377a806693ec86df1743d7ddd5a931c88050ebb
+Author: Adam Jackson <ajax@redhat.com>
+Date: Mon Jul 18 12:46:51 2016 -0400
+
+ modesetting: resubmit dirty rects on EINVAL (v2)
+
+ This error code can mean we're submitting more rects at once than the
+ driver can handle. If that happens, resubmit one at a time.
+
+ v2: Make the rect submit loop more error-proof (Walter Harms)
+
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+ Reviewed-by: Michael Thayer <michael.thayer@oracle.com>
+ (cherry picked from commit 4b311d23e84356bd0e9e736aeed7448dd6382118)
+
+commit f091528457cc62fa9bd6cd24aeebacffb7296419
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Jul 22 12:14:06 2015 -0400
+
+ modesetting: Implement 32->24 bpp conversion in shadow update
+
+ 24bpp front buffers tend to be the least well tested path for client
+ rendering. On the qemu cirrus emulation, and on some Matrox G200 server
+ chips, the hardware can't do 32bpp at all. It's better to just allocate
+ a 32bpp shadow and downconvert in the upload hook than expose a funky
+ pixmap format to clients.
+
+ [ajax: Ported from RHEL and separate modesetting driver, lifted kbpp
+ into the drmmode struct, cleaned up commit message, fixed 16bpp]
+
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Dave Airlied <airlied@redhat.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ [hdegoede@redhat.com: rebase, also use kbpp for rotate shadow fb]
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+
+ (cherry picked from commit 21217d02168d1883b2d1f64399aec494f96a8b9d)
+
+commit d8eccab378dd8fe5a36dd31ff91561da47ec9ecf
+Author: Hans de Goede <hdegoede@redhat.com>
+Date: Wed Jun 1 15:14:32 2016 +0200
+
+ modesetting: Only add main fb if necessary
+
+ If we're doing reverse-prime; or doing rotation the main fb is not used,
+ and there is no reason to add it in this case.
+
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ Reviewed-by: Dave Airlie <airlied@redhat.com>
+ (cherry picked from commit 4313122dea0df9affc280ee698e929489061ccc6)
+
+commit 23a7010f3438e053f66c9fb0c4a13456fe33bf72
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Jul 19 13:08:31 2016 -0400
+
+ Revert "modesetting: Load on GPU-s with 0 outputs"
+
+ This reverts commit 713a21cc702561931ed5e84c3a5c3d7e7c580725.
+
+commit effd785aa8a97c9a044d86bde7ad63645cbca176
+Author: Takashi Iwai <tiwai@suse.de>
+Date: Mon Feb 16 17:00:55 2015 +0100
+
+ modesetting: Fix hw cursor check at the first call
+
+ With the previous patch, the modesetting driver can now return whether
+ the driver supports hw cursor. However, it alone doesn't suffice,
+ unfortunately. drmmode_load_cursor_argb_check() is called in the
+ following chain:
+
+ xf86CursorSetCursor()
+ -> xf86SetCursor()
+ -> xf86DriverLoadCursorARGB()
+ -> xf86_load_cursor_argb()
+ -> xf86_crtc_load_cursor_argb()
+ -> drmmode_load_cursor_argb_check()
+
+ *but* at first with drmmode_crtc->cursor_up = FALSE. Then the
+ function doesn't actually set the cursor but returns TRUE
+ unconditionally. The actual call of drmmode_set_cursor() is done at
+ first via the show_cursor callback, and there is no check of sw cursor
+ fallback any longer at this place. Since it's called only once per
+ cursor setup, so the xserver still thinks as if the hw cursor is
+ supported.
+
+ This patch is an ad hoc fix to correct the behavior somehow: it does
+ call drmmode_set_cursor() at the very first time even if cursor_up is
+ FALSE, then quickly hides again. In that way, whether the hw cursor
+ is supported is evaluated in the right place at the right time.
+
+ Of course, it might be more elegant if we have a more proper mechanism
+ to fall back to sw cursor at any call path. But it'd need more
+ rework, so I leave this workaround as is for now.
+
+ Signed-off-by: Takashi Iwai <tiwai@suse.de>
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ (cherry picked from commit af916477c65a083ec496ac3f088d766b410e8b6e)
+
+commit 61094504a774ac763cb457d1f4bf2a1476e03f56
+Author: Takashi Iwai <tiwai@suse.de>
+Date: Mon Feb 16 17:00:54 2015 +0100
+
+ modesetting: Use load_cursor_argb_check for sw cursor fallback
+
+ The modesetting driver still has an everlasting bug of invisible
+ cursor on cirrus and other KMS drivers where no hardware cursor is
+ supported. This patch is a part of an attempt to address it.
+
+ This patch particularly converts the current load_cursor_argb callback
+ of modesetting driver to load_cursor_argb_check so that it can return
+ whether the driver handles the hw cursor or falls back to the sw
+ cursor.
+
+ Signed-off-by: Takashi Iwai <tiwai@suse.de>
+ Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
+ [hdegoede@redhat.com: Add extra comment suggested by Kenneth]
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+
+ (cherry picked from commit 14c21ea1c9496638b1feb8e6145c440fb4f1d14b)
+
+commit 15f8aaa786ac89509843f22dcb5f446effba1024
+Author: Takashi Iwai <tiwai@suse.de>
+Date: Mon Feb 16 17:00:53 2015 +0100
+
+ modesetting: Fix the error check from DRM_IOCTL_MODE_CURSOR2
+
+ The error value isn't always -EINVAL, e.g. the kernel drm core returns
+ -ENXIO when the corresponding ops doesn't exist. Without this fix,
+ DRM_IOCTL_MODE_CURSOR2 would be dealt as success even if it
+ shouldn't.
+
+ Signed-off-by: Takashi Iwai <tiwai@suse.de>
+ Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ (cherry picked from commit 074cf58769b38550a3f35d5ecb73333330cb2aed)
+
+commit ee0fd6b2c68d88ef3511fe1796dd50601785ead0
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jun 28 11:42:41 2016 +1000
+
+ xkb: add a cause to the xkb indicator update after a keymap change
+
+ Regression introduce by ac164e58870d which calls
+ XkbUpdateAllDeviceIndicators() with two NULL arguments. A few layers down into
+ the stack and we triggered a NULL-pointer dereference. In theory a NULL cause
+ is acceptable since we don't actually change modifier state here. Instead of
+ updating all places to check for NULL just set the cause to the client
+ request and go to the pub.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=96384
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Julien Cristau <jcristau@debian.org>
+ Reviewed-by: Daniel Stone <daniels@collabora.com>
+ (cherry picked from commit d135100d6b17e54262a12aeaebe0fe2fe48da3bb)
+
+commit 54ba95861e5ae54051d3963e5e7ced7d69a6de7b
+Author: Guilherme Quentel Melo <gqmelo@gmail.com>
+Date: Tue May 10 00:29:58 2016 +0000
+
+ glx: avoid memory leak when using indirect rendering
+
+ When multiple processes are using GL with indirect rendering a race
+ condition can make drawables refcount never drop to zero.
+
+ This situation could happen when there are many X clients using indirect
+ GLX:
+
+ 1 - client1: calls glXMakeCurrent
+
+ 2 - client2: calls glXMakeCurrent
+ This is the first context switch for this client. So old_context_tag=0
+
+ 3 - client1: calls glXRender
+ For the client, its context is already current.
+ For the server side lastGLContext points to client2's context.
+
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Guilherme Quentel Melo <gqmelo@gmail.com>
+ (cherry picked from commit a134d1e7eada0ac90fb622f45833c87b72c9aa06)
+
+commit be8eb5c4a1dda472d54f96bd54ee3e9421daf2e7
+Author: Keith Packard <keithp@keithp.com>
+Date: Tue Jun 14 17:09:07 2016 -0700
+
+ glamor: Use DestroyPixmap instead of FreePicture for glyph atlas pixmap
+
+ Nice of FreePicture to take a void * instead of a PicturPtr so that
+ this error wasn't caught by the compiler.
+
+ Noticed when resetting the X server left a dangling pixmap around.
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
+ (cherry picked from commit 2d6230e77348e550c90e00c007b113ce38c81d12)
+
+commit 5c549168a2947c56727a7546baee21d04c46d563
+Author: Olivier Fourdan <ofourdan@redhat.com>
+Date: Mon Jun 6 09:22:28 2016 +0200
+
+ wayland: clear resource for pixmap on unrealize
+
+ On cursor unrealize, the associated pixmap is destroyed, make sure we
+ clear the pointer from the private resource and check for the value
+ being non-null when setting or destroying the cursor.
+
+ Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96246
+ (cherry picked from commit edd24aa50b17849b904a3ac5429e333bac9bac9c)
+
+commit f05a5859102409fe203bcffa96c0231c8b406659
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Fri Jun 3 10:25:20 2016 +0900
+
+ xwayland: Call eglBindAPI after eglInitialize
+
+ Current Mesa Git master checks that the EGL display actually supports
+ the API passed to eglBindAPI, which can only succeed after
+ eglInitialize.
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
+ (cherry picked from commit 166d4c817897f5aa197f639bf06b5b3e04994496)
+
+commit e4bf0e5ad5503c9a1d08080bca0b826ac64bd389
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Fri Jun 3 10:25:19 2016 +0900
+
+ glamor: Call eglBindAPI after eglInitialize
+
+ Current Mesa Git master checks that the EGL display actually supports
+ the API passed to eglBindAPI, which can only succeed after
+ eglInitialize.
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96344
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ (cherry picked from commit d798b8318adf298bc23166e74f31e49805f0d881)
+
+commit e02d2174570e42800c21a2205f83dd286881469f
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Thu May 26 19:01:59 2016 +0900
+
+ glamor: Cannot use copies when accessing outside of composite source
+
+ Commit b64108fa ("glamor: Check for composite operations which are
+ equivalent to copies") failed to copy conditions from exaComposite which
+ ensure that the composite operation doesn't access outside of the source
+ picture.
+
+ This fixes rendercheck regressions from the commit above.
+
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit 5ff75da317539e87cca429185d710d0eeb9d9222)
+
+commit f5b224a0e20f1d44d4ab1aeeddbb4e2d40dec998
+Author: Keith Packard <keithp@keithp.com>
+Date: Fri May 27 10:55:02 2016 -0700
+
+ glamor: Adjust for drawable x/y in composite's copy optimization
+
+ Patch b64108fa305e956e4edaae9d53071ff0abee268e added a short cut that
+ identifies composite operations that can be performed with a simple
+ copy instead.
+
+ glamor_copy works in absolute coordinates, so the dx and dy values
+ passed in need to be converted from drawable-relative to absolute by
+ adding the drawable x/y values.
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ (cherry picked from commit 8b9b4387e8473810f6174519ee76818fcaae725d)
+
+commit fad7cab684199b7a0e721e59bb25b1eb6f1a9aa8
+Author: Keith Packard <keithp@keithp.com>
+Date: Fri May 13 16:19:38 2016 -0700
+
+ glamor: Preserve GL_RED bits in R channel when destination is GL_RED [v2]
+
+ A1 and A8 pixmaps are usually stored in the Red channel to conform
+ with more recent GL versions. When using these pixmaps as mask values,
+ that works great. When using these pixmaps as source values, then the
+ value we want depends on what the destination looks like.
+
+ For RGBA or RGB destinations, then we want to use the Red channel
+ for A values and leave RGB all set to zero.
+
+ For A destinations, then we want to leave the R values in the Red
+ channel so that they end up in the Red channel of the output.
+
+ This patch adds a helper function, glamor_bind_texture, which performs
+ the glBindTexture call along with setting the swizzle parameter
+ correctly for the Red channel. The swizzle parameter for the Alpha
+ channel doesn't depend on the destination as it's safe to leave it
+ always swizzled from the Red channel.
+
+ This fixes incorrect rendering in firefox for this page:
+
+ https://gfycat.com/HoarseCheapAmericankestrel
+
+ while not breaking rendering for this page:
+
+ https://feedly.com
+
+ v2: Add change accidentally left in patch for missing
+ glDisable(GL_COLOR_LOGIC_OP).
+ Found by Emil Velikov <emil.l.velikov@gmail.com>
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63397
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Tested-by: Michel Dänzer <michel.daenzer@amd.com>
+ (cherry picked from commit 181a4bd0cc436f89582408196038ff37032f9bac)
+
+commit 0c9a6d4093d6cdfadecb9a703cfb090e43ccf6aa
+Author: Keith Packard <keithp@keithp.com>
+Date: Sat May 14 08:22:17 2016 -0700
+
+ glamor: glamor_make_current sooner in glamor_composite_with_shader
+
+ glamor_make_current is supposed to be called before any GL APIs.
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
+ (cherry picked from commit b07bc700b3cf2f5c8912fc5b9e0dad2baf395525)
+
+commit e63e9b8f197889b6c162ba36988d6e5656cb0c10
+Author: Keith Packard <keithp@keithp.com>
+Date: Fri May 13 04:25:43 2016 -0700
+
+ glamor: Disable logic ops when doing compositing [v4]
+
+ If the logic op gets left enabled, it overrides the blending
+ operation, causing incorrect contents on the display.
+
+ v2: Disable only on non-ES2, but disable even for PictOpSrc
+
+ v3: Found another place this is needed in
+ glamor_composite_set_shader_blend
+
+ v4: Remove change dependent on new glamor_set_composite_texture
+ API. This belongs in a different patch.
+ Found by Emil Velikov <emil.l.velikov@gmail.com>
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
+ (cherry picked from commit 743b6f231e999d8b2909228412266dc13cc433c5)
+
+commit d37329cba42fa8e72fe4be8a7be18e512268b5bd
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Wed May 25 19:09:23 2016 +0900
+
+ glamor: Check for composite operations which are equivalent to copies
+
+ Increases x11perf -compwinwin500 numbers by a factor of 10 for me with
+ radeonsi.
+
+ Conditions copied from exaComposite().
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ (cherry picked from commit b64108fa305e956e4edaae9d53071ff0abee268e)
+
+commit 009304ef129f21b286086f3c841b60c5f865241a
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Tue May 24 18:12:42 2016 +0900
+
+ glamor: Fix sampling outside of RGBx source/mask pictures
+
+ RENDER requires that sampling outside of any source/mask picture results
+ in alpha == 0.0.
+
+ The OpenGL border colour cannot set alpha = 0.0 if the texture format
+ doesn't have an alpha channel, so we have to use the RepeatFix handling
+ in that case.
+
+ Also, only force alpha = 1.0 when sampling inside of RGBx source/mask
+ pictures.
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94514
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ (cherry picked from commit 4711ebc174206b5a50e6ae8a7f974cd835e4ebd3)
+
+commit 888e5f636a32945b0a1f59d6db6e143d094cc2a0
+Author: Andrew Comminos <andrew@comminos.com>
+Date: Tue Dec 29 23:41:27 2015 -0800
+
+ Input: Send XI2 FocusOut NotifyPointer events to the pointer window.
+
+ This changes XInput 2's propagation of NotifyPointer focus out events to
+ include the pointer window as well, similar to core events. This fixes
+ a potential permanent focus in GDK when the focus moves to PointerRoot.
+
+ Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93539
+
+ Signed-off-by: Andrew Comminos <andrew@comminos.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 2fbf5c2f91d33efbda573c4be036248b1d8ed7f1)
+
+commit 81bd4fc18c407ebe8e535ffbe83b7578261e1643
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Fri Apr 1 18:24:00 2016 +0900
+
+ EXA: Honour op parameter to exaGlyphs even if maskFormat == NULL
+
+ Reported-by: Uli Schlachter <psychon@znc.in>
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94775
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Uli Schlachter <psychon@znc.in>
+ (cherry picked from commit 140c2f1a54dbc2503311e9a011e841aa1f277cbd)
+
+commit e849aecb65aabe2fc6abeab6e0ab0a721710c25c
+Author: Andreas Schwab <schwab@suse.de>
+Date: Thu Apr 28 14:47:33 2016 +0200
+
+ x86emu: Change include order to avoid conflict with system header
+
+ R_SP is also defined in <sys/ucontext.h> on m68k. Also remove duplicate
+ definitions.
+
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Andreas Schwab <schwab@suse.de>
+ (cherry picked from commit 23dfa017298ceceac818f83779858e490c7757b6)
+
+commit 0f947779c7afcdaf246849b627c13a11987a4bbf
+Author: Dave Airlie <airlied@redhat.com>
+Date: Fri Mar 11 09:22:00 2016 +1000
+
+ glamor: add glamor_finish API
+
+ Some drivers are calling glFinish, they really should be doing this.
+
+ This also is needed for some reverse prime scenarios.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+ Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Eric Anholt <eric@anholt.net>
+ (cherry picked from commit aa4e757130010dd3202f10ec6cb0c306c1dbcfbc)
+
+commit d25bb3ae9de1661ed0988a44119abeb52d52d4b7
+Author: Marek Chalupa <mchqwerty@gmail.com>
+Date: Mon Apr 25 11:33:00 2016 +0200
+
+ xwayland-shm: fortify fallocate against EINTR
+
+ If posix_fallocate or ftruncate is interrupted by signal while working,
+ we return -1 as fd and the allocation process returns BadAlloc error.
+ That causes xwayland clients to abort with 'BadAlloc (insufficient
+ resources for operation)' even when there's a lot of resources
+ available.
+
+ Fix it by trying again when we get EINTR.
+
+ Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
+ Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
+ (cherry picked from commit f48b0534f110397246809d279225afedb28aa233)
+
+commit acbfff1d3b27bb71faf2fe95061de8414b536004
+Author: Alexandre Courbot <acourbot@nvidia.com>
+Date: Wed Mar 23 13:47:37 2016 +0900
+
+ configure.ac: Keep environment CFLAGS when testing
+
+ DRI2 detection could fail if configure is invoked with a sysroot passed
+ as CFLAGS. Ideally configure should invoke gcc with the sysroot argument
+ passed to the configure script, but for some reason this is not done by
+ AC_COMPILE_IFELSE.
+
+ Fix this by ensuring CFLAGS are preserved when checking for stuff.
+
+ Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
+ Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+ (cherry picked from commit 4cc32880737c2d3e568fdb4867b2dba10fb3998a)
+
+commit 1c811298eb953bb56e2ca05b1a881f88c0703df3
+Author: Simon Thum <simon.thum@gmx.de>
+Date: Tue Apr 5 14:29:47 2016 +0200
+
+ dix/ptraccel: Fix memory leak in InitPredictableAccelerationScheme
+
+ This was quite unlikely except in situations where a proper startup
+ would have been impossible anyway, but since automated checks don't
+ grade likelyhood just fix it.
+
+ Detected by Jeremy Huddleston's clang checks.
+
+ Signed-off-by: Simon Thum <simon.thum@gmx.de>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit c8e5fc30575a309c25970fc68b9184c07bb74df4)
+
+commit 51441379a35077e868dae86e6b24cfa31d6dd1f8
+Author: Olivier Fourdan <ofourdan@redhat.com>
+Date: Thu Mar 17 09:53:58 2016 +0100
+
+ glamor: fix wrong offset on composite rectangles
+
+ When using PictOpSrc, the destination is wrongly shifted back to (0, 0).
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94568
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
+ (cherry picked from commit 8437955515ad59b0bfcd6598248e7f0ffc706370)
+
+commit 713a21cc702561931ed5e84c3a5c3d7e7c580725
+Author: Hans de Goede <hdegoede@redhat.com>
+Date: Tue Jun 14 11:58:01 2016 +0200
+
+ modesetting: Load on GPU-s with 0 outputs
+
+ In newer laptops with switchable graphics, the GPU may have 0 outputs,
+ in this case the modesetting driver should still load if the GPU is
+ SourceOffload capable, so that it can be used as an offload source provider.
+
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
+ (cherry picked from commit 60ad701a6a8cb9f1eacb72acfe2cb8d3b7a865dc)
+
+commit a9f970fe28d76bd2c57b44aa02ac38eb8aab8acf
+Author: Hans de Goede <hdegoede@redhat.com>
+Date: Thu Jun 16 15:21:03 2016 +0200
+
+ modesetting: Fix swapping of provider sink / source capabilities
+
+ When a card has import capability it can be an offload _sink_, not
+ a source and vice versa for export capability.
+
+ This commit fixes the modesetting driver to properly set these
+ capabilities, this went unnoticed sofar because most gpus have both
+ import and export capability.
+
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
+ (cherry picked from commit 94a1c77259ce39ba59ad87615df39b570ffab435)
+
+commit 0dc1a58b9379c79ede8c40b2e6f008dc0868a40e
+Author: Lyude Paul <cpaul@redhat.com>
+Date: Mon Jun 13 15:31:02 2016 -0400
+
+ modesetting: Clear drmmode->fb_id before unflipping
+
+ [fix copied from 40191d82370e in xf86-video-ati]
+
+ Without this, we end up setting rotated CRTCs back to their previous
+ framebuffer right after we perform a rotation. Reproducer:
+
+ - Have two monitors connected at the same resolution
+ - Rotate one monitor from normal straight to inverted
+ - Watch as the monitor you didn't rotate either freezes or shows intense
+ flickering
+
+ Signed-off-by: Lyude <cpaul@redhat.com>
+ Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ (cherry picked from commit 848089e0dde38f043c85332785520946103e77c1)
+
+commit 619730cac614ff8306e17edd07ae860051c700b7
+Author: Hans de Goede <hdegoede@redhat.com>
+Date: Wed Jun 1 14:59:38 2016 +0200
+
+ modesetting: Properly cleanup fb for reverse-prime-offload
+
+ drmmode_set_scanout_pixmap_gpu(pix) adds drmmod->fb_id through a call
+ to drmmode_xf86crtc_resize(), but on a subsequent
+ drmmode_set_scanout_pixmap_gpu(NULL) it would not remove the fb.
+
+ This keeps the crtc marked as busy, which causes the dgpu to not
+ being able to runtime suspend, after an output attached to the dgpu
+ has been used once. Which causes burning through an additional 10W
+ of power and the laptop to run quite hot.
+
+ This commit adds the missing remove fb call, allowing the dgpu to runtime
+ suspend after an external monitor has been plugged into the laptop.
+
+ Note this also makes drmmode_set_scanout_pixmap_gpu(NULL) match the
+ behavior of drmmode_set_scanout_pixmap_cpu(NULL) which was already
+ removing the fb.
+
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ Reviewed-by: Dave Airlie <airlied@redhat.com>
+ (cherry picked from commit b8ef71fb07a8ba9587aeaca942b4de20b59266ca)
+
+commit 768e40e6c41dba3c7039db437d7b5be36f1477f5
+Author: Dave Airlie <airlied@gmail.com>
+Date: Fri Apr 29 14:01:33 2016 +1000
+
+ modesetting: set capabilities up after glamor and enable offload caps.
+
+ This moves the capabilites setting to after glamor is initialised, and
+ enables the offload caps in cases where they work. This enables DRI2
+ PRIME support with modesetting.
+
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+ (cherry picked from commit 2378adde6770385c06f7efcd32f270d00d49ce3f)
+
+commit 69f9319568609f23cf313995cd65400180de9345
+Author: Dave Airlie <airlied@gmail.com>
+Date: Fri Apr 29 14:01:32 2016 +1000
+
+ xf86Crtc: don't set the root window property on slave GPUs.
+
+ Slave GPUs don't have a root window to set this on, so don't.
+
+ This fixes some crashes I saw just playing around.
+
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+ (cherry picked from commit 258588224d6b35de12f97d9092efa5cb3e426550)
+
+commit 5b4ced6d3a4c309e1792ac49017fb961a7262e7f
+Author: Dave Airlie <airlied@gmail.com>
+Date: Fri Apr 29 14:01:31 2016 +1000
+
+ modesetting: set driverPrivate to NULL after closing fd.
+
+ Otherwise ms_ent_priv will return NULL and things will fall apart.
+
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+ (cherry picked from commit a41a171bcbae9aeafac2865faa904f15d9b59925)
+
+commit cbbf4b0da098636e3d23407d62c3f41402c3f401
+Author: Dave Airlie <airlied@gmail.com>
+Date: Fri Apr 29 14:01:30 2016 +1000
+
+ randr/provider: only allow slave gpu to be offload sources.
+
+ The other way around makes no sense.
+
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+ (cherry picked from commit fc1f61b75c9712e24ff665f95d62771f39eba1c7)
+
+commit cc7c0b0e3c7f7af624c3b1bc360f7c6ff99ea3be
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed May 4 20:36:18 2016 +1000
+
+ xkb: after changing the keymap, force an indicator update
+
+ When NumLock is on and a new keymap is applied, the next modifier state
+ change will turn off that LED (but leave the state enabled). The cause
+ for this is a bit convoluted:
+
+ * the SLI explicitState is copied from the current state in
+ ProcXkbGetKbdByName. Thus, if NumLock is on, that state is 0x2.
+ * on the next modifier key press (e.g. Shift), XkbApplyState() calls into
+ XkbUpdateIndicators() -> XkbUpdateLedAutoState() to update SLIs (if any)
+ for the currently changed modifier. But it does so with a mask only for
+ the changed modifier (i.e. for Shift).
+ * XkbUpdateLedAutoState() calculates the state based on this mask and
+ ends up with 0 because we don't have a Shift LED and we masked out the
+ others.
+ * XkbUpdateLedAutoState() compares that state with the previous state
+ (which is still 0x2) and then proceeds to turn the LED off
+
+ This doesn't happen in the normal case because either the mask
+ encompasses all modifiers or the state matches of the masked-out
+ modifiers matches the old state.
+
+ Avoid this issue by forcing an SLI update after changing the keymap.
+ This updates the sli->effectiveState and thus restores everything to
+ happy working order.
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1047151
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Daniel Stone <daniels@collabora.com>
+ (cherry picked from commit ac164e58870d70640381e68b776eb95578c7fbd3)
+
+commit bcb633cae6c976b3416c736acab71c065adf5ee7
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Mar 9 10:45:48 2016 +1000
+
+ Xi: don't deliver emulated motion events for non-emulating touches
+
+ The touchpoint knows whether it should be emulating or not and we have a check
+ for that later. Check for this before we generate the event and try to deliver
+ it, lest we trigger a bug warning.
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1282252
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit f641ae412287ecb7a3437987e2ba1646a8443aa4)
+
+commit da4c6e1aaae6f564cbde7981898582018108622e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Feb 14 09:58:44 2015 +0000
+
+ present: Fix presentation of flips out of order
+
+ The flip queue currently only holds events submitted to the driver for
+ flipping, awaiting the completion notifier. It is short. We therefore
+ can speed up interrupt processing by keeping the small number of events
+ ready to be flipped on the end of the flip queue. By appending the
+ events to the flip_queue in the order that they become ready, we also
+ resolve one issue causing Present to display frames out of order.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+ Reviewed-and-tested-by: Mario Kleiner <mario.kleiner.de@gmail.com>
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ (cherry picked from commit bab0f450a719a11799491043b82c2f293fed27fe)
+
+commit 1a3577259f7d3d4c91f8a6eff1a5d466dabb45ee
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Feb 14 09:58:43 2015 +0000
+
+ present: Improve scaling of vblank handler
+
+ With large numbers of queued vblank, the list iteration on every
+ interupt dominates processing time. If we reorder the list to be in
+ ascending event order, then not only is also likely to be in order for
+ notification queries (i.e. the notification will be near the start of
+ the list), we can also stop iterating when past the target event_id.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+ Reviewed-and-tested-by: Mario Kleiner <mario.kleiner.de@gmail.com>
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ (cherry picked from commit fbe660b7652b945bdd8e3eb0780179d83cc7de96)
+
+commit db258a27f021c80281ed4f89df897dfda0ffce9f
+Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+Date: Wed Oct 2 15:47:54 2013 +0200
+
+ exa: only draw valid trapezoids
+
+ Fixes freedesktop.org bug https://bugs.freedesktop.org/show_bug.cgi?id=67484
+
+ If t->bottom is close to MIN_INT, removing top can wraparound, so do the check properly.
+ A similar fix should also be applied to pixman.
+
+ Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+ Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+ (cherry picked from commit c6511d0142040654140bdedd6f03d43af0abba21)
+
+commit 62bf33d0d105beb257619ef6b77919d01b04d401
+Author: Adam Jackson <ajax@redhat.com>
+Date: Wed Jun 1 14:27:23 2016 -0400
+
+ xfree86: Don't swallow ±iglx command line flag
+
+ We want to notice that it's set, but still pass it through to dix.
+ Return 0 to indicate this.
+
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 7cf80b9714864c3c4eb9898ff1b7d657ecd16df7)
+
+commit d7ae950c1d08724144514151afe47a3fd8e84f3c
+Author: Adam Jackson <ajax@redhat.com>
+Date: Mon May 9 13:28:08 2016 -0400
+
+ xfree86: Add IndirectGLX server flag (v2)
+
+ Not all display managers make it easy (or possible) to modify the
+ command line flags passed to the server, so add a way to get to it from
+ xorg.conf.
+
+ v2: Fix the FlagOptions list to not have IGLX after the terminator (Alan
+ Coopersmith)
+
+ Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+ (cherry picked from commit 4fca18dc03669bada75175df289fbee41275208e)
+
+commit 02f9b3c18f6561d47b518bdcd6043a0ec8995c32
+Author: Olivier Fourdan <ofourdan@redhat.com>
+Date: Fri Apr 1 13:38:11 2016 +0200
+
+ xwayland: Fix compiler warning in GLAMOR Xv
+
+ XvWindowMask is defined as 0x00020000 and cannot fit in the XvAdaptor
+ type which is defined as an unsigned char, thus causing a compiler
+ warning:
+
+ xwayland-glamor-xv.c: In function ‘xwl_glamor_xv_add_adaptors’:
+ xwayland-glamor-xv.c:339:16: warning: large integer implicitly
+ truncated to unsigned type [-Woverflow]
+
+ This XvWindowMask value is actually not used for XvAdaptor itself but by
+ the server in its xf86xv implementation, so we don't even need that mask
+ in our xwayland-glamor-xv implementation.
+
+ Reviewed-by: Adam Jackson <ajax@redhat.com>
+ Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
+ (cherry picked from commit e8e5d839968e22cf42a6e1982a07b02c6f4a4562)
+
+commit a482b0b6c7d4e66276190acab25c945d74da1178
+Author: Adam Jackson <ajax@redhat.com>
+Date: Fri Apr 8 11:26:36 2016 -0400
+
+ kdrive: Nuke a bunch of dead code
+
+ gcc6 says:
+
+ keyboard.c:46:21: warning: ‘linux_to_x’ defined but not used
+
+ Only referenced by a bunch of long if-0'd code, so chuck it all out.
+
+ Reviewed-by: Julien Cristau <jcristau@debian.org>
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+ (cherry picked from commit c33250945b45adc447154239f0cf48fb9b2d7335)
+
+commit 0dfa816af2a383449804b891f4a9f8c431e00528
+Author: Adam Jackson <ajax@redhat.com>
+Date: Fri Apr 8 11:24:50 2016 -0400
+
+ dix: Squash some new gcc6 warnings
+
+ -Wlogical-op now tells us:
+
+ devices.c:1685:23: warning: logical ‘and’ of equal expressions
+
+ Reviewed-by: Julien Cristau <jcristau@debian.org>
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+ (cherry picked from commit a5dd7b890f4f3a5245639591c73303c5a087b38a)
+
+commit 98499770640c747128f212b1ebb6bd42775f3b72
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Sat May 7 00:43:33 2016 -0700
+
+ XQuartz: Fix default CFBundleVersion
+
+ m4/shell variable name collision broke the case when the configure
+ option was not used
+
+ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+ (cherry picked from commit 1bb932bf1417ff319a594d7e40f6813a26936784)
+
+commit 1a81f2a51955e5c8a9d1d80cc008e2927ddd0123
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Tue May 3 23:43:06 2016 -0700
+
+ XQuartz: Update copyright years
+
+ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+ (cherry picked from commit 059d5ef30490233f410ca87084c7697b87e5b05e)
+
+commit 73987379d73cd6ef2701dad7e3027f9363cb81b4
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Tue May 3 23:42:34 2016 -0700
+
+ XQuartz: Add --with-bundle-version and --with-bundle-version-string configure options
+
+ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+ (cherry picked from commit d6ba4f2c52da150a9a92bdb00efe7902d17033bd)
+
+commit bab72d3905bdafe4815ab1dc5509988c8e467769
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Tue May 3 23:21:38 2016 -0700
+
+ XQuartz: Add --with-sparkle-feed-url configure option
+
+ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+ (cherry picked from commit c1614928c10a8f8400f99acfd1b7f96d503af7ec)
+
+commit a1915ad14d89bdcd0f2a6607d6d1cb8f90201158
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Tue May 3 23:14:24 2016 -0700
+
+ XQuartz: Update release feed URL to use new https URL
+
+ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+ (cherry picked from commit 299b01eabf827a7435b5d6004d50637ac710bbc7)
+
+commit ab5f69e5419b34f21cfd30d38374d14103a88f40
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Tue May 3 23:24:44 2016 -0700
+
+ XQuartz: Fix the help text for --with-bundle-id-prefix
+
+ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+ (cherry picked from commit 16d6733c63727d910eb516d7f6950f4675281f2d)
+
+commit 3600f8600f1a876409c3a7f2b29f036156b2c7c6
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Tue May 3 23:16:46 2016 -0700
+
+ XQuartz: Remove --with-launchd-id-prefix
+
+ It's been deprecated for years.
+
+ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+ (cherry picked from commit 214a66b661dcb56ebb9776e34049753f65c7510a)
+
commit 9454cd51da9b38b974cff7c8b7125901f6403848
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Apr 4 14:39:36 2016 -0400
diff --git a/xserver/Makefile.in b/xserver/Makefile.in
index 7ba4b370d..93507c91b 100644
--- a/xserver/Makefile.in
+++ b/xserver/Makefile.in
@@ -202,6 +202,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -433,6 +435,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/TODO b/xserver/TODO
index 43ac1230f..85a2b3105 100644
--- a/xserver/TODO
+++ b/xserver/TODO
@@ -78,3 +78,15 @@ hmm: xwin GenerateAuthorization, auth .Add
FakeClientID(client->index):
dri2 add_frame_event hurrr
DRI2CreateDrawable2
+
+---
+
+dmx wraps render, fuck.
+
+Create/Free GlyphSet: Annoying because GlyphSets are display-wide, so there's
+no obvious place to add a wrap chain. Likewise Add/FreeGlyphs, although there
+the problem is that glyphs embed their own per-screen list! Fuck sake.
+
+RenderCompositeGlyphs is correspondingly weird.
+
+Not entirely sure why SetPictureTransform/Filter are wrapped.
diff --git a/xserver/Xext/Makefile.in b/xserver/Xext/Makefile.in
index 5ef5bea4e..3709b0e1d 100644
--- a/xserver/Xext/Makefile.in
+++ b/xserver/Xext/Makefile.in
@@ -232,6 +232,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -463,6 +465,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/Xext/panoramiXprocs.c b/xserver/Xext/panoramiXprocs.c
index 9eb29bd74..18f3ac715 100644
--- a/xserver/Xext/panoramiXprocs.c
+++ b/xserver/Xext/panoramiXprocs.c
@@ -106,7 +106,7 @@ PanoramiXCreateWindow(ClientPtr client)
if ((Mask) stuff->mask & CWColormap) {
cmap_offset = Ones((Mask) stuff->mask & (CWColormap - 1));
tmp = *((CARD32 *) &stuff[1] + cmap_offset);
- if ((tmp != CopyFromParent) && (tmp != None)) {
+ if (tmp != CopyFromParent) {
result = dixLookupResourceByType((void **) &cmap, tmp,
XRT_COLORMAP, client,
DixReadAccess);
@@ -210,7 +210,7 @@ PanoramiXChangeWindowAttributes(ClientPtr client)
if ((Mask) stuff->valueMask & CWColormap) {
cmap_offset = Ones((Mask) stuff->valueMask & (CWColormap - 1));
tmp = *((CARD32 *) &stuff[1] + cmap_offset);
- if ((tmp != CopyFromParent) && (tmp != None)) {
+ if (tmp != CopyFromParent) {
result = dixLookupResourceByType((void **) &cmap, tmp,
XRT_COLORMAP, client,
DixReadAccess);
diff --git a/xserver/Xext/saver.c b/xserver/Xext/saver.c
index 0e20467c9..750b8b965 100644
--- a/xserver/Xext/saver.c
+++ b/xserver/Xext/saver.c
@@ -1143,7 +1143,7 @@ ProcScreenSaverSetAttributes(ClientPtr client)
if ((Mask) stuff->mask & CWColormap) {
cmap_offset = Ones((Mask) stuff->mask & (CWColormap - 1));
tmp = *((CARD32 *) &stuff[1] + cmap_offset);
- if ((tmp != CopyFromParent) && (tmp != None)) {
+ if (tmp != CopyFromParent) {
status = dixLookupResourceByType((void **) &cmap, tmp,
XRT_COLORMAP, client,
DixReadAccess);
diff --git a/xserver/Xext/shm.c b/xserver/Xext/shm.c
index 4cf83a0a5..a57356d4b 100644
--- a/xserver/Xext/shm.c
+++ b/xserver/Xext/shm.c
@@ -619,6 +619,7 @@ ProcShmGetImage(ClientPtr client)
xShmGetImageReply xgi;
ShmDescPtr shmdesc;
VisualID visual = None;
+ RegionPtr pVisibleRegion = NULL;
int rc;
REQUEST(xShmGetImageReq);
@@ -650,6 +651,9 @@ ProcShmGetImage(ClientPtr client)
wBorderWidth((WindowPtr) pDraw) + (int) pDraw->height)
return BadMatch;
visual = wVisual(((WindowPtr) pDraw));
+ pVisibleRegion = NotClippedByChildren((WindowPtr) pDraw);
+ if (pVisibleRegion)
+ RegionTranslate(pVisibleRegion, -pDraw->x, -pDraw->y);
}
else {
if (stuff->x < 0 ||
@@ -686,6 +690,11 @@ ProcShmGetImage(ClientPtr client)
stuff->width, stuff->height,
stuff->format, stuff->planeMask,
shmdesc->addr + stuff->offset);
+ if (pVisibleRegion)
+ XaceCensorImage(client, pVisibleRegion,
+ PixmapBytePad(stuff->width, pDraw->depth), pDraw,
+ stuff->x, stuff->y, stuff->width, stuff->height,
+ stuff->format, shmdesc->addr + stuff->offset);
}
else {
@@ -697,11 +706,19 @@ ProcShmGetImage(ClientPtr client)
stuff->width, stuff->height,
stuff->format, plane,
shmdesc->addr + length);
+ if (pVisibleRegion)
+ XaceCensorImage(client, pVisibleRegion,
+ BitmapBytePad(stuff->width), pDraw,
+ stuff->x, stuff->y, stuff->width, stuff->height,
+ stuff->format, shmdesc->addr + length);
length += lenPer;
}
}
}
+ if (pVisibleRegion)
+ RegionDestroy(pVisibleRegion);
+
if (client->swapped) {
swaps(&xgi.sequenceNumber);
swapl(&xgi.length);
diff --git a/xserver/Xi/Makefile.in b/xserver/Xi/Makefile.in
index 4c3b2e38d..9b3af47f0 100644
--- a/xserver/Xi/Makefile.in
+++ b/xserver/Xi/Makefile.in
@@ -157,6 +157,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -388,6 +390,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/Xi/exevents.c b/xserver/Xi/exevents.c
index e728310f8..52b91e893 100644
--- a/xserver/Xi/exevents.c
+++ b/xserver/Xi/exevents.c
@@ -1379,6 +1379,9 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti,
if (!TouchResourceIsOwner(ti, listener->listener))
return !Success;
+ if (!ti->emulate_pointer)
+ return !Success;
+
nevents = TouchConvertToPointerEvent(ev, &motion, &button);
BUG_RETURN_VAL(nevents == 0, BadValue);
diff --git a/xserver/composite/Makefile.in b/xserver/composite/Makefile.in
index ac2f9f84b..81d20af3b 100644
--- a/xserver/composite/Makefile.in
+++ b/xserver/composite/Makefile.in
@@ -175,6 +175,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -406,6 +408,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/config/Makefile.in b/xserver/config/Makefile.in
index c75934511..96f38b562 100644
--- a/xserver/config/Makefile.in
+++ b/xserver/config/Makefile.in
@@ -196,6 +196,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -427,6 +429,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/configure b/xserver/configure
index c47fc38cd..18db82994 100644
--- a/xserver/configure
+++ b/xserver/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xorg-server 1.18.3.
+# Generated by GNU Autoconf 2.69 for xorg-server 1.18.4.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@@ -651,8 +651,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='xorg-server'
PACKAGE_TARNAME='xorg-server'
-PACKAGE_VERSION='1.18.3'
-PACKAGE_STRING='xorg-server 1.18.3'
+PACKAGE_VERSION='1.18.4'
+PACKAGE_STRING='xorg-server 1.18.4'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
PACKAGE_URL=''
@@ -1049,7 +1049,10 @@ INSTALL_SETUID_FALSE
INSTALL_SETUID_TRUE
X_PRIVSEP_FALSE
X_PRIVSEP_TRUE
+XQUARTZ_SPARKLE_FEED_URL
XQUARTZ_SPARKLE
+BUNDLE_VERSION_STRING
+BUNDLE_VERSION
BUNDLE_ID_PREFIX
APPLE_APPLICATION_NAME
APPLE_APPLICATIONS_DIR
@@ -1333,9 +1336,11 @@ with_default_xkb_options
with_serverconfig_path
with_apple_applications_dir
with_apple_application_name
-with_launchd_id_prefix
with_bundle_id_prefix
+with_bundle_version
+with_bundle_version_string
enable_sparkle
+with_sparkle_feed_url
enable_visibility
enable_aiglx
with_khronos_spec_dir
@@ -2050,7 +2055,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xorg-server 1.18.3 to adapt to many kinds of systems.
+\`configure' configures xorg-server 1.18.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2120,7 +2125,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xorg-server 1.18.3:";;
+ short | recursive ) echo "Configuration of xorg-server 1.18.4:";;
esac
cat <<\_ACEOF
@@ -2310,11 +2315,18 @@ Optional Packages:
/Applications/Utilities)
--with-apple-application-name=NAME
Name for the .app (default: X11)
- --with-launchd-id-prefix=PATH
- Deprecated: Use --with-bundle-id-prefix.
- --with-bundle-id-prefix=PATH
+ --with-bundle-id-prefix=RDNS_PREFIX
Prefix to use for bundle identifiers (default:
org.x)
+ --with-bundle-version=VERSION
+ Version to use for X11.app's CFBundleVersion
+ (default: 1.18.4)
+ --with-bundle-version-string=VERSION
+ Version to use for X11.app's
+ CFBundleShortVersionString (default: 1.18.4)
+ --with-sparkle-feed-url=URL
+ URL for the Sparkle feed (default:
+ https://www.xquartz.org/releases/sparkle/release.xml)
--with-khronos-spec-dir=PATH
Path to Khronos OpenGL registry database files
(default: auto)
@@ -2562,7 +2574,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xorg-server configure 1.18.3
+xorg-server configure 1.18.4
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3271,7 +3283,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xorg-server $as_me 1.18.3, which was
+It was created by xorg-server $as_me 1.18.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3619,8 +3631,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-RELEASE_DATE="2016-04-04"
-RELEASE_NAME="Halloumi"
+RELEASE_DATE="2016-07-19"
+RELEASE_NAME="Skordalia"
am__api_version='1.12'
@@ -4099,7 +4111,7 @@ fi
# Define the identity of the package.
PACKAGE='xorg-server'
- VERSION='1.18.3'
+ VERSION='1.18.4'
cat >>confdefs.h <<_ACEOF
@@ -22995,14 +23007,6 @@ fi
-# Check whether --with-launchd-id-prefix was given.
-if test "${with_launchd_id_prefix+set}" = set; then :
- withval=$with_launchd_id_prefix; BUNDLE_ID_PREFIX="${withval}"
-else
- BUNDLE_ID_PREFIX="org.x"
-fi
-
-
# Check whether --with-bundle-id-prefix was given.
if test "${with_bundle_id_prefix+set}" = set; then :
withval=$with_bundle_id_prefix; BUNDLE_ID_PREFIX="${withval}"
@@ -23014,6 +23018,25 @@ cat >>confdefs.h <<_ACEOF
#define BUNDLE_ID_PREFIX "$BUNDLE_ID_PREFIX"
_ACEOF
+
+
+# Check whether --with-bundle-version was given.
+if test "${with_bundle_version+set}" = set; then :
+ withval=$with_bundle_version; BUNDLE_VERSION="${withval}"
+else
+ BUNDLE_VERSION="1.18.4"
+fi
+
+
+
+# Check whether --with-bundle-version-string was given.
+if test "${with_bundle_version_string+set}" = set; then :
+ withval=$with_bundle_version_string; BUNDLE_VERSION_STRING="${withval}"
+else
+ BUNDLE_VERSION_STRING="${PACKAGE_VERSION}"
+fi
+
+
# Check whether --enable-sparkle was given.
if test "${enable_sparkle+set}" = set; then :
enableval=$enable_sparkle; XQUARTZ_SPARKLE="${enableval}"
@@ -23022,6 +23045,15 @@ else
fi
+
+# Check whether --with-sparkle-feed-url was given.
+if test "${with_sparkle_feed_url+set}" = set; then :
+ withval=$with_sparkle_feed_url; XQUARTZ_SPARKLE_FEED_URL="${withval}"
+else
+ XQUARTZ_SPARKLE_FEED_URL="https://www.xquartz.org/releases/sparkle/release.xml"
+fi
+
+
# Check whether --enable-visibility was given.
if test "${enable_visibility+set}" = set; then :
enableval=$enable_visibility; SYMBOL_VISIBILITY=$enableval
@@ -24558,7 +24590,7 @@ $as_echo "#define CONFIG_UDEV_KMS 1" >>confdefs.h
fi
SAVE_LIBS=$LIBS
SAVE_CFLAGS=$CFLAGS
- CFLAGS=$UDEV_CFLAGS
+ CFLAGS="$CFLAGS $UDEV_CFLAGS"
LIBS=$UDEV_LIBS
for ac_func in udev_monitor_filter_add_match_tag
do :
@@ -25746,7 +25778,7 @@ fi
if test "x$DRI2" = xyes; then
save_CFLAGS=$CFLAGS
- CFLAGS="$GL_CFLAGS $LIBDRM_CFLAGS"
+ CFLAGS="$CFLAGS $GL_CFLAGS $LIBDRM_CFLAGS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <GL/gl.h>
@@ -32473,7 +32505,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xorg-server $as_me 1.18.3, which was
+This file was extended by xorg-server $as_me 1.18.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -32539,7 +32571,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-xorg-server config.status 1.18.3
+xorg-server config.status 1.18.4
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/xserver/configure.ac b/xserver/configure.ac
index 8ee818580..4524d6fd0 100644
--- a/xserver/configure.ac
+++ b/xserver/configure.ac
@@ -26,9 +26,9 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.60)
-AC_INIT([xorg-server], 1.18.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2016-04-04"
-RELEASE_NAME="Halloumi"
+AC_INIT([xorg-server], 1.18.4, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2016-07-19"
+RELEASE_NAME="Skordalia"
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
@@ -581,17 +581,27 @@ AC_ARG_WITH(apple-application-name,AS_HELP_STRING([--with-apple-application-name
[ APPLE_APPLICATION_NAME="${withval}" ],
[ APPLE_APPLICATION_NAME="X11" ])
AC_SUBST([APPLE_APPLICATION_NAME])
-AC_ARG_WITH(launchd-id-prefix, AS_HELP_STRING([--with-launchd-id-prefix=PATH], [Deprecated: Use --with-bundle-id-prefix.]),
- [ BUNDLE_ID_PREFIX="${withval}" ],
- [ BUNDLE_ID_PREFIX="org.x" ])
-AC_ARG_WITH(bundle-id-prefix, AS_HELP_STRING([--with-bundle-id-prefix=PATH], [Prefix to use for bundle identifiers (default: org.x)]),
+AC_ARG_WITH(bundle-id-prefix, AS_HELP_STRING([--with-bundle-id-prefix=RDNS_PREFIX], [Prefix to use for bundle identifiers (default: org.x)]),
[ BUNDLE_ID_PREFIX="${withval}" ])
AC_SUBST([BUNDLE_ID_PREFIX])
AC_DEFINE_UNQUOTED(BUNDLE_ID_PREFIX, "$BUNDLE_ID_PREFIX", [Prefix to use for bundle identifiers])
+m4_define(DEFAULT_BUNDLE_VERSION, m4_esyscmd([echo ]AC_PACKAGE_VERSION[ | cut -f1-3 -d. | tr -d '\n']))
+AC_ARG_WITH(bundle-version, AS_HELP_STRING([--with-bundle-version=VERSION], [Version to use for X11.app's CFBundleVersion (default: ]DEFAULT_BUNDLE_VERSION[)]),
+ [ BUNDLE_VERSION="${withval}" ],
+ [ BUNDLE_VERSION="DEFAULT_BUNDLE_VERSION" ])
+AC_SUBST([BUNDLE_VERSION])
+AC_ARG_WITH(bundle-version-string, AS_HELP_STRING([--with-bundle-version-string=VERSION], [Version to use for X11.app's CFBundleShortVersionString (default: ]AC_PACKAGE_VERSION[)]),
+ [ BUNDLE_VERSION_STRING="${withval}" ],
+ [ BUNDLE_VERSION_STRING="${PACKAGE_VERSION}" ])
+AC_SUBST([BUNDLE_VERSION_STRING])
AC_ARG_ENABLE(sparkle,AS_HELP_STRING([--enable-sparkle], [Enable updating of X11.app using the Sparkle Framework (default: disabled)]),
[ XQUARTZ_SPARKLE="${enableval}" ],
[ XQUARTZ_SPARKLE="no" ])
AC_SUBST([XQUARTZ_SPARKLE])
+AC_ARG_WITH(sparkle-feed-url, AS_HELP_STRING([--with-sparkle-feed-url=URL], [URL for the Sparkle feed (default: https://www.xquartz.org/releases/sparkle/release.xml)]),
+ [ XQUARTZ_SPARKLE_FEED_URL="${withval}" ],
+ [ XQUARTZ_SPARKLE_FEED_URL="https://www.xquartz.org/releases/sparkle/release.xml" ])
+AC_SUBST([XQUARTZ_SPARKLE_FEED_URL])
AC_ARG_ENABLE(visibility, AS_HELP_STRING([--enable-visibility], [Enable symbol visibility (default: auto)]),
[SYMBOL_VISIBILITY=$enableval],
[SYMBOL_VISIBILITY=auto])
@@ -916,7 +926,7 @@ if test "x$CONFIG_UDEV" = xyes; then
fi
SAVE_LIBS=$LIBS
SAVE_CFLAGS=$CFLAGS
- CFLAGS=$UDEV_CFLAGS
+ CFLAGS="$CFLAGS $UDEV_CFLAGS"
LIBS=$UDEV_LIBS
AC_CHECK_FUNCS([udev_monitor_filter_add_match_tag])
AC_CHECK_FUNCS([udev_enumerate_add_match_tag])
@@ -1329,7 +1339,7 @@ fi
if test "x$DRI2" = xyes; then
save_CFLAGS=$CFLAGS
- CFLAGS="$GL_CFLAGS $LIBDRM_CFLAGS"
+ CFLAGS="$CFLAGS $GL_CFLAGS $LIBDRM_CFLAGS"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <GL/gl.h>
#include <GL/internal/dri_interface.h>
#ifndef __DRI_DRI2
diff --git a/xserver/damageext/Makefile.in b/xserver/damageext/Makefile.in
index 4dd6cdbd1..acaebfc6e 100644
--- a/xserver/damageext/Makefile.in
+++ b/xserver/damageext/Makefile.in
@@ -143,6 +143,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -374,6 +376,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/dbe/Makefile.in b/xserver/dbe/Makefile.in
index e8357684d..cec69c205 100644
--- a/xserver/dbe/Makefile.in
+++ b/xserver/dbe/Makefile.in
@@ -174,6 +174,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -405,6 +407,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/dix/Makefile.in b/xserver/dix/Makefile.in
index efe0937eb..59b4ad6c5 100644
--- a/xserver/dix/Makefile.in
+++ b/xserver/dix/Makefile.in
@@ -189,6 +189,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -420,6 +422,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/dix/cursor.c b/xserver/dix/cursor.c
index e45945619..25d676779 100644
--- a/xserver/dix/cursor.c
+++ b/xserver/dix/cursor.c
@@ -288,6 +288,29 @@ AllocARGBCursor(unsigned char *psrcbits, unsigned char *pmaskbits,
goto error;
*ppCurs = pCurs;
+
+ if (argb) {
+ size_t i, size = bits->width * bits->height;
+
+ for (i = 0; i < size; i++) {
+ if ((argb[i] & 0xff000000) == 0 && (argb[i] & 0xffffff) != 0) {
+ /* ARGB data doesn't seem pre-multiplied, fix it */
+ for (i = 0; i < size; i++) {
+ CARD32 a, ar, ag, ab;
+
+ a = argb[i] >> 24;
+ ar = a * ((argb[i] >> 16) & 0xff) / 0xff;
+ ag = a * ((argb[i] >> 8) & 0xff) / 0xff;
+ ab = a * (argb[i] & 0xff) / 0xff;
+
+ argb[i] = a << 24 | ar << 16 | ag << 8 | ab;
+ }
+
+ break;
+ }
+ }
+ }
+
return Success;
error:
diff --git a/xserver/dix/devices.c b/xserver/dix/devices.c
index 9b0c7d296..a532dcfaa 100644
--- a/xserver/dix/devices.c
+++ b/xserver/dix/devices.c
@@ -1682,8 +1682,7 @@ ProcSetModifierMapping(ClientPtr client)
stuff->numKeyPerModifier);
if (rc == MappingFailed || rc == -1)
return BadValue;
- if (rc != Success && rc != MappingSuccess && rc != MappingFailed &&
- rc != MappingBusy)
+ if (rc != MappingSuccess && rc != MappingFailed && rc != MappingBusy)
return rc;
rep.success = rc;
diff --git a/xserver/dix/enterleave.c b/xserver/dix/enterleave.c
index f0b1572fb..1b341f2de 100644
--- a/xserver/dix/enterleave.c
+++ b/xserver/dix/enterleave.c
@@ -1446,19 +1446,25 @@ DeviceFocusEvents(DeviceIntPtr dev, WindowPtr from, WindowPtr to, int mode)
if ((to == NullWindow) || (to == PointerRootWin)) {
if ((from == NullWindow) || (from == PointerRootWin)) {
- if (from == PointerRootWin)
+ if (from == PointerRootWin) {
+ DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyPointer,
+ sprite->win);
DeviceFocusOutEvents(dev, sprite->win,
GetCurrentRootWindow(dev), mode,
NotifyPointer);
+ }
/* Notify all the roots */
for (i = 0; i < nscreens; i++)
DeviceFocusEvent(dev, XI_FocusOut, mode, out,
screenInfo.screens[i]->root);
}
else {
- if (IsParent(from, sprite->win))
+ if (IsParent(from, sprite->win)) {
+ DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyPointer,
+ sprite->win);
DeviceFocusOutEvents(dev, sprite->win, from, mode,
NotifyPointer);
+ }
DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyNonlinear, from);
/* next call catches the root too, if the screen changed */
DeviceFocusOutEvents(dev, from, NullWindow, mode,
@@ -1476,10 +1482,13 @@ DeviceFocusEvents(DeviceIntPtr dev, WindowPtr from, WindowPtr to, int mode)
}
else {
if ((from == NullWindow) || (from == PointerRootWin)) {
- if (from == PointerRootWin)
+ if (from == PointerRootWin) {
+ DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyPointer,
+ sprite->win);
DeviceFocusOutEvents(dev, sprite->win,
GetCurrentRootWindow(dev), mode,
NotifyPointer);
+ }
for (i = 0; i < nscreens; i++)
DeviceFocusEvent(dev, XI_FocusOut, mode, out,
screenInfo.screens[i]->root);
@@ -1506,9 +1515,12 @@ DeviceFocusEvents(DeviceIntPtr dev, WindowPtr from, WindowPtr to, int mode)
if ((IsParent(from, sprite->win)) &&
(sprite->win != from) &&
(!IsParent(to, sprite->win)) &&
- (!IsParent(sprite->win, to)))
+ (!IsParent(sprite->win, to))) {
+ DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyPointer,
+ sprite->win);
DeviceFocusOutEvents(dev, sprite->win, from, mode,
NotifyPointer);
+ }
DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyInferior, from);
DeviceFocusInEvents(dev, from, to, mode, NotifyVirtual);
DeviceFocusEvent(dev, XI_FocusIn, mode, NotifyAncestor, to);
diff --git a/xserver/dix/ptrveloc.c b/xserver/dix/ptrveloc.c
index e75300a17..050c12a0c 100644
--- a/xserver/dix/ptrveloc.c
+++ b/xserver/dix/ptrveloc.c
@@ -134,13 +134,19 @@ InitPredictableAccelerationScheme(DeviceIntPtr dev,
scheme = *protoScheme;
vel = calloc(1, sizeof(DeviceVelocityRec));
schemeData = calloc(1, sizeof(PredictableAccelSchemeRec));
- if (!vel || !schemeData)
+ if (!vel || !schemeData) {
+ free(vel);
+ free(schemeData);
return FALSE;
+ }
InitVelocityData(vel);
schemeData->vel = vel;
scheme.accelData = schemeData;
- if (!InitializePredictableAccelerationProperties(dev, vel, schemeData))
+ if (!InitializePredictableAccelerationProperties(dev, vel, schemeData)) {
+ free(vel);
+ free(schemeData);
return FALSE;
+ }
/* all fine, assign scheme to device */
dev->valuator->accelScheme = scheme;
return TRUE;
diff --git a/xserver/doc/Makefile.in b/xserver/doc/Makefile.in
index b2844e15b..2ae3ab1a7 100644
--- a/xserver/doc/Makefile.in
+++ b/xserver/doc/Makefile.in
@@ -172,6 +172,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -403,6 +405,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/doc/dtrace/Makefile.in b/xserver/doc/dtrace/Makefile.in
index b20db22d3..709135762 100644
--- a/xserver/doc/dtrace/Makefile.in
+++ b/xserver/doc/dtrace/Makefile.in
@@ -163,6 +163,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -394,6 +396,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/dri3/Makefile.in b/xserver/dri3/Makefile.in
index 13baad2db..a16e49dbf 100644
--- a/xserver/dri3/Makefile.in
+++ b/xserver/dri3/Makefile.in
@@ -173,6 +173,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -404,6 +406,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/exa/Makefile.in b/xserver/exa/Makefile.in
index 8c062f4ce..30be2cea0 100644
--- a/xserver/exa/Makefile.in
+++ b/xserver/exa/Makefile.in
@@ -176,6 +176,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -407,6 +409,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/exa/exa_glyphs.c b/xserver/exa/exa_glyphs.c
index cf21ea914..192a643cc 100644
--- a/xserver/exa/exa_glyphs.c
+++ b/xserver/exa/exa_glyphs.c
@@ -618,9 +618,9 @@ exaGlyphsToMask(PicturePtr pMask, ExaGlyphBufferPtr buffer)
}
static void
-exaGlyphsToDst(PicturePtr pSrc, PicturePtr pDst, ExaGlyphBufferPtr buffer)
+exaGlyphsToDst(CARD8 op, PicturePtr pSrc, PicturePtr pDst, ExaGlyphBufferPtr buffer)
{
- exaCompositeRects(PictOpOver, pSrc, buffer->mask, pDst, buffer->count,
+ exaCompositeRects(op, pSrc, buffer->mask, pDst, buffer->count,
buffer->rects);
buffer->count = 0;
@@ -801,7 +801,7 @@ exaGlyphs(CARD8 op,
0, 0, x - glyph->info.x,
y - glyph->info.y)
== ExaGlyphNeedFlush) {
- exaGlyphsToDst(pSrc, pDst, &buffer);
+ exaGlyphsToDst(op, pSrc, pDst, &buffer);
exaBufferGlyph(pScreen, &buffer, glyph, pSrc, pDst,
xSrc + (x - glyph->info.x) - first_xOff,
ySrc + (y - glyph->info.y) - first_yOff,
@@ -821,7 +821,7 @@ exaGlyphs(CARD8 op,
if (maskFormat)
exaGlyphsToMask(pMask, &buffer);
else
- exaGlyphsToDst(pSrc, pDst, &buffer);
+ exaGlyphsToDst(op, pSrc, pDst, &buffer);
}
if (maskFormat) {
diff --git a/xserver/exa/exa_render.c b/xserver/exa/exa_render.c
index fc3ddea79..b24bec052 100644
--- a/xserver/exa/exa_render.c
+++ b/xserver/exa/exa_render.c
@@ -1141,7 +1141,8 @@ exaTrapezoids(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
exaPrepareAccess(pPicture->pDrawable, EXA_PREPARE_DEST);
for (; ntrap; ntrap--, traps++)
- (*ps->RasterizeTrapezoid) (pPicture, traps, -bounds.x1, -bounds.y1);
+ if (xTrapezoidValid(traps))
+ (*ps->RasterizeTrapezoid) (pPicture, traps, -bounds.x1, -bounds.y1);
exaFinishAccess(pPicture->pDrawable, EXA_PREPARE_DEST);
xRel = bounds.x1 + xSrc - xDst;
diff --git a/xserver/fb/Makefile.in b/xserver/fb/Makefile.in
index 430f9b9ae..2845f97d9 100644
--- a/xserver/fb/Makefile.in
+++ b/xserver/fb/Makefile.in
@@ -205,6 +205,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -436,6 +438,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/glamor/Makefile.in b/xserver/glamor/Makefile.in
index c277ec5ee..ad052407a 100644
--- a/xserver/glamor/Makefile.in
+++ b/xserver/glamor/Makefile.in
@@ -207,6 +207,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -438,6 +440,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/glamor/glamor.c b/xserver/glamor/glamor.c
index 8b5eb5493..3956d6663 100644
--- a/xserver/glamor/glamor.c
+++ b/xserver/glamor/glamor.c
@@ -140,6 +140,42 @@ glamor_get_pixmap_texture(PixmapPtr pixmap)
return pixmap_priv->fbo->tex;
}
+void
+glamor_bind_texture(glamor_screen_private *glamor_priv, GLenum texture,
+ glamor_pixmap_fbo *fbo, Bool destination_red)
+{
+ glActiveTexture(texture);
+ glBindTexture(GL_TEXTURE_2D, fbo->tex);
+
+ /* If we're pulling data from a GL_RED texture, then whether we
+ * want to make it an A,0,0,0 result or a 0,0,0,R result depends
+ * on whether the destination is also a GL_RED texture.
+ *
+ * For GL_RED destinations, we need to leave the bits in the R
+ * channel. For all other destinations, we need to clear out the R
+ * channel so that it returns zero for R, G and B.
+ *
+ * Note that we're leaving the SWIZZLE_A value alone; for GL_RED
+ * destinations, that means we'll actually be returning R,0,0,R,
+ * but it doesn't matter as the bits in the alpha channel aren't
+ * going anywhere.
+ */
+
+ /* Is the operand a GL_RED fbo?
+ */
+
+ if (glamor_fbo_red_is_alpha(glamor_priv, fbo)) {
+
+ /* If destination is also GL_RED, then preserve the bits in
+ * the R channel */
+
+ if (destination_red)
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_RED);
+ else
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_ZERO);
+ }
+}
+
PixmapPtr
glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
unsigned int usage)
@@ -814,3 +850,12 @@ glamor_name_from_pixmap(PixmapPtr pixmap, CARD16 *stride, CARD32 *size)
}
return -1;
}
+
+void
+glamor_finish(ScreenPtr screen)
+{
+ glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
+
+ glamor_make_current(glamor_priv);
+ glFinish();
+}
diff --git a/xserver/glamor/glamor.h b/xserver/glamor/glamor.h
index 0aa6d5604..250dc83e4 100644
--- a/xserver/glamor/glamor.h
+++ b/xserver/glamor/glamor.h
@@ -342,6 +342,7 @@ extern _X_EXPORT void glamor_destroy_gc(GCPtr gc);
extern Bool _X_EXPORT glamor_change_window_attributes(WindowPtr pWin, unsigned long mask);
extern void _X_EXPORT glamor_copy_window(WindowPtr window, DDXPointRec old_origin, RegionPtr src_region);
+extern _X_EXPORT void glamor_finish(ScreenPtr screen);
#define HAS_GLAMOR_TEXT 1
#ifdef GLAMOR_FOR_XORG
diff --git a/xserver/glamor/glamor_composite_glyphs.c b/xserver/glamor/glamor_composite_glyphs.c
index f51ff6dad..cc0aa6f37 100644
--- a/xserver/glamor/glamor_composite_glyphs.c
+++ b/xserver/glamor/glamor_composite_glyphs.c
@@ -246,8 +246,7 @@ glamor_glyphs_flush(CARD8 op, PicturePtr src, PicturePtr dst,
glamor_put_vbo_space(drawable->pScreen);
glEnable(GL_SCISSOR_TEST);
- glActiveTexture(GL_TEXTURE1);
- glBindTexture(GL_TEXTURE_2D, atlas_fbo->tex);
+ glamor_bind_texture(glamor_priv, GL_TEXTURE1, atlas_fbo, FALSE);
for (;;) {
if (!glamor_use_program_render(prog, op, src, dst))
@@ -558,7 +557,7 @@ glamor_free_glyph_atlas(struct glamor_glyph_atlas *atlas)
if (!atlas)
return;
if (atlas->atlas)
- FreePicture(atlas->atlas, 0);
+ (*atlas->atlas->drawable.pScreen->DestroyPixmap)(atlas->atlas);
free (atlas);
}
diff --git a/xserver/glamor/glamor_compositerects.c b/xserver/glamor/glamor_compositerects.c
index 885a6c065..199e62705 100644
--- a/xserver/glamor/glamor_compositerects.c
+++ b/xserver/glamor/glamor_compositerects.c
@@ -107,7 +107,6 @@ glamor_composite_rectangles(CARD8 op,
struct glamor_pixmap_private *priv;
pixman_region16_t region;
pixman_box16_t *boxes;
- int dst_x, dst_y;
int num_boxes;
PicturePtr source = NULL;
Bool need_free_region = FALSE;
@@ -225,17 +224,18 @@ glamor_composite_rectangles(CARD8 op,
RegionExtents(&region)->x2, RegionExtents(&region)->y2,
RegionNumRects(&region));
- glamor_get_drawable_deltas(dst->pDrawable, pixmap, &dst_x, &dst_y);
- pixman_region_translate(&region, dst_x, dst_y);
-
- DEBUGF("%s: pixmap +(%d, %d) extents (%d, %d),(%d, %d)\n",
- __FUNCTION__, dst_x, dst_y,
- RegionExtents(&region)->x1, RegionExtents(&region)->y1,
- RegionExtents(&region)->x2, RegionExtents(&region)->y2);
-
boxes = pixman_region_rectangles(&region, &num_boxes);
if (op == PictOpSrc || op == PictOpClear) {
CARD32 pixel;
+ int dst_x, dst_y;
+
+ glamor_get_drawable_deltas(dst->pDrawable, pixmap, &dst_x, &dst_y);
+ pixman_region_translate(&region, dst_x, dst_y);
+
+ DEBUGF("%s: pixmap +(%d, %d) extents (%d, %d),(%d, %d)\n",
+ __FUNCTION__, dst_x, dst_y,
+ RegionExtents(&region)->x1, RegionExtents(&region)->y1,
+ RegionExtents(&region)->x2, RegionExtents(&region)->y2);
if (op == PictOpClear)
pixel = 0;
diff --git a/xserver/glamor/glamor_copy.c b/xserver/glamor/glamor_copy.c
index 5fed89f0c..3501a0d24 100644
--- a/xserver/glamor/glamor_copy.c
+++ b/xserver/glamor/glamor_copy.c
@@ -38,8 +38,8 @@ use_copyarea(PixmapPtr dst, GCPtr gc, glamor_program *prog, void *arg)
struct copy_args *args = arg;
glamor_pixmap_fbo *src = args->src;
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, src->tex);
+ glamor_bind_texture(glamor_get_screen_private(dst->drawable.pScreen),
+ GL_TEXTURE0, src, TRUE);
glUniform2f(prog->fill_offset_uniform, args->dx, args->dy);
glUniform2f(prog->fill_size_inv_uniform, 1.0f/src->width, 1.0f/src->height);
@@ -67,8 +67,8 @@ use_copyplane(PixmapPtr dst, GCPtr gc, glamor_program *prog, void *arg)
struct copy_args *args = arg;
glamor_pixmap_fbo *src = args->src;
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, src->tex);
+ glamor_bind_texture(glamor_get_screen_private(dst->drawable.pScreen),
+ GL_TEXTURE0, src, TRUE);
glUniform2f(prog->fill_offset_uniform, args->dx, args->dy);
glUniform2f(prog->fill_size_inv_uniform, 1.0f/src->width, 1.0f/src->height);
diff --git a/xserver/glamor/glamor_dash.c b/xserver/glamor/glamor_dash.c
index a6a11c1a2..3c19dba32 100644
--- a/xserver/glamor/glamor_dash.c
+++ b/xserver/glamor/glamor_dash.c
@@ -188,8 +188,7 @@ glamor_dash_setup(DrawablePtr drawable, GCPtr gc)
/* Set the dash pattern as texture 1 */
- glActiveTexture(GL_TEXTURE1);
- glBindTexture(GL_TEXTURE_2D, dash_priv->fbo->tex);
+ glamor_bind_texture(glamor_priv, GL_TEXTURE1, dash_priv->fbo, FALSE);
glUniform1i(prog->dash_uniform, 1);
glUniform1f(prog->dash_length_uniform, dash_pixmap->drawable.width);
diff --git a/xserver/glamor/glamor_egl.c b/xserver/glamor/glamor_egl.c
index 80a97f7a1..5aacbedef 100644
--- a/xserver/glamor/glamor_egl.c
+++ b/xserver/glamor/glamor_egl.c
@@ -823,11 +823,6 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
glamor_egl->has_gem = glamor_egl_check_has_gem(fd);
-#ifndef GLAMOR_GLES2
- eglBindAPI(EGL_OPENGL_API);
-#else
- eglBindAPI(EGL_OPENGL_ES_API);
-#endif
if (!eglInitialize
(glamor_egl->display, &glamor_egl->major, &glamor_egl->minor)) {
xf86DrvMsg(scrn->scrnIndex, X_ERROR, "eglInitialize() failed\n");
@@ -835,6 +830,12 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
goto error;
}
+#ifndef GLAMOR_GLES2
+ eglBindAPI(EGL_OPENGL_API);
+#else
+ eglBindAPI(EGL_OPENGL_ES_API);
+#endif
+
version = eglQueryString(glamor_egl->display, EGL_VERSION);
xf86Msg(X_INFO, "%s: EGL version %s:\n", glamor_name, version);
diff --git a/xserver/glamor/glamor_fbo.c b/xserver/glamor/glamor_fbo.c
index c6ba095c0..5bfffe501 100644
--- a/xserver/glamor/glamor_fbo.c
+++ b/xserver/glamor/glamor_fbo.c
@@ -340,10 +340,8 @@ _glamor_create_tex(glamor_screen_private *glamor_priv,
glBindTexture(GL_TEXTURE_2D, tex);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- if (format == glamor_priv->one_channel_format && format == GL_RED) {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_ZERO);
+ if (format == glamor_priv->one_channel_format && format == GL_RED)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_RED);
- }
glamor_priv->suppress_gl_out_of_memory_logging = true;
glTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0,
format, GL_UNSIGNED_BYTE, NULL);
diff --git a/xserver/glamor/glamor_priv.h b/xserver/glamor/glamor_priv.h
index a70f10eb4..9d403977f 100644
--- a/xserver/glamor/glamor_priv.h
+++ b/xserver/glamor/glamor_priv.h
@@ -593,6 +593,34 @@ void glamor_fini_pixmap_fbo(ScreenPtr screen);
Bool glamor_pixmap_fbo_fixup(ScreenPtr screen, PixmapPtr pixmap);
void glamor_fbo_expire(glamor_screen_private *glamor_priv);
+/* Return whether 'picture' is alpha-only */
+static inline Bool glamor_picture_is_alpha(PicturePtr picture)
+{
+ return picture->format == PICT_a1 || picture->format == PICT_a8;
+}
+
+/* Return whether 'fbo' is storing alpha bits in the red channel */
+static inline Bool
+glamor_fbo_red_is_alpha(glamor_screen_private *glamor_priv, glamor_pixmap_fbo *fbo)
+{
+ /* True when the format is GL_RED (that can only happen when our one channel format is GL_RED */
+ return fbo->format == GL_RED;
+}
+
+/* Return whether 'picture' is storing alpha bits in the red channel */
+static inline Bool
+glamor_picture_red_is_alpha(PicturePtr picture)
+{
+ /* True when the picture is alpha only and the screen is using GL_RED for alpha pictures */
+ return glamor_picture_is_alpha(picture) &&
+ glamor_get_screen_private(picture->pDrawable->pScreen)->one_channel_format == GL_RED;
+}
+
+void glamor_bind_texture(glamor_screen_private *glamor_priv,
+ GLenum texture,
+ glamor_pixmap_fbo *fbo,
+ Bool destination_red);
+
glamor_pixmap_fbo *glamor_create_fbo_array(glamor_screen_private *glamor_priv,
int w, int h, GLenum format,
int flag, int block_w, int block_h,
diff --git a/xserver/glamor/glamor_program.c b/xserver/glamor/glamor_program.c
index 0a94de62f..dec116c75 100644
--- a/xserver/glamor/glamor_program.c
+++ b/xserver/glamor/glamor_program.c
@@ -445,6 +445,7 @@ static struct blendinfo composite_op_info[] = {
static void
glamor_set_blend(CARD8 op, glamor_program_alpha alpha, PicturePtr dst)
{
+ glamor_screen_private *glamor_priv = glamor_get_screen_private(dst->pDrawable->pScreen);
GLenum src_blend, dst_blend;
struct blendinfo *op_info;
@@ -459,6 +460,9 @@ glamor_set_blend(CARD8 op, glamor_program_alpha alpha, PicturePtr dst)
break;
}
+ if (glamor_priv->gl_flavor != GLAMOR_GL_ES2)
+ glDisable(GL_COLOR_LOGIC_OP);
+
if (op == PictOpSrc)
return;
@@ -527,6 +531,7 @@ use_source_picture(CARD8 op, PicturePtr src, PicturePtr dst, glamor_program *pro
glamor_set_blend(op, prog->alpha, dst);
return glamor_set_texture((PixmapPtr) src->pDrawable,
+ glamor_picture_red_is_alpha(dst),
0, 0,
prog->fill_offset_uniform,
prog->fill_size_inv_uniform);
@@ -545,7 +550,8 @@ use_source_1x1_picture(CARD8 op, PicturePtr src, PicturePtr dst, glamor_program
{
glamor_set_blend(op, prog->alpha, dst);
- return glamor_set_texture_pixmap((PixmapPtr) src->pDrawable);
+ return glamor_set_texture_pixmap((PixmapPtr) src->pDrawable,
+ glamor_picture_red_is_alpha(dst));
}
static const glamor_facet glamor_source_1x1_picture = {
diff --git a/xserver/glamor/glamor_render.c b/xserver/glamor/glamor_render.c
index 73ac831ee..d70316d36 100644
--- a/xserver/glamor/glamor_render.c
+++ b/xserver/glamor/glamor_render.c
@@ -105,7 +105,7 @@ glamor_create_composite_fs(struct shader_key *key)
/* The texture and the pixmap size is not match eaxctly, so can't sample it directly.
* rel_sampler will recalculate the texture coords.*/
const char *rel_sampler =
- " vec4 rel_sampler(sampler2D tex_image, vec2 tex, vec4 wh, int repeat)\n"
+ " vec4 rel_sampler_rgba(sampler2D tex_image, vec2 tex, vec4 wh, int repeat)\n"
"{\n"
" if (repeat >= RepeatFix) {\n"
" tex = rel_tex_coord(tex, wh, repeat);\n"
@@ -117,6 +117,19 @@ glamor_create_composite_fs(struct shader_key *key)
" }\n"
" }\n"
" return texture2D(tex_image, tex);\n"
+ "}\n"
+ " vec4 rel_sampler_rgbx(sampler2D tex_image, vec2 tex, vec4 wh, int repeat)\n"
+ "{\n"
+ " if (repeat >= RepeatFix) {\n"
+ " tex = rel_tex_coord(tex, wh, repeat);\n"
+ " if (repeat == RepeatFix + RepeatNone) {\n"
+ " if (tex.x < 0.0 || tex.x >= 1.0 || \n"
+ " tex.y < 0.0 || tex.y >= 1.0)\n"
+ " return vec4(0.0, 0.0, 0.0, 0.0);\n"
+ " tex = (fract(tex) / wh.xy);\n"
+ " }\n"
+ " }\n"
+ " return vec4(texture2D(tex_image, tex).rgb, 1.0);\n"
"}\n";
const char *source_solid_fetch =
@@ -131,8 +144,8 @@ glamor_create_composite_fs(struct shader_key *key)
"uniform vec4 source_wh;"
"vec4 get_source()\n"
"{\n"
- " return rel_sampler(source_sampler, source_texture,\n"
- " source_wh, source_repeat_mode);\n"
+ " return rel_sampler_rgba(source_sampler, source_texture,\n"
+ " source_wh, source_repeat_mode);\n"
"}\n";
const char *source_pixmap_fetch =
"varying vec2 source_texture;\n"
@@ -140,9 +153,8 @@ glamor_create_composite_fs(struct shader_key *key)
"uniform vec4 source_wh;\n"
"vec4 get_source()\n"
"{\n"
- " return vec4(rel_sampler(source_sampler, source_texture,\n"
- " source_wh, source_repeat_mode).rgb,\n"
- " 1.0);\n"
+ " return rel_sampler_rgbx(source_sampler, source_texture,\n"
+ " source_wh, source_repeat_mode);\n"
"}\n";
const char *mask_none =
"vec4 get_mask()\n"
@@ -161,8 +173,8 @@ glamor_create_composite_fs(struct shader_key *key)
"uniform vec4 mask_wh;\n"
"vec4 get_mask()\n"
"{\n"
- " return rel_sampler(mask_sampler, mask_texture,\n"
- " mask_wh, mask_repeat_mode);\n"
+ " return rel_sampler_rgba(mask_sampler, mask_texture,\n"
+ " mask_wh, mask_repeat_mode);\n"
"}\n";
const char *mask_pixmap_fetch =
"varying vec2 mask_texture;\n"
@@ -170,8 +182,8 @@ glamor_create_composite_fs(struct shader_key *key)
"uniform vec4 mask_wh;\n"
"vec4 get_mask()\n"
"{\n"
- " return vec4(rel_sampler(mask_sampler, mask_texture,\n"
- " mask_wh, mask_repeat_mode).rgb, 1.0);\n"
+ " return rel_sampler_rgbx(mask_sampler, mask_texture,\n"
+ " mask_wh, mask_repeat_mode);\n"
"}\n";
const char *dest_swizzle_default =
@@ -500,15 +512,24 @@ static void
glamor_set_composite_texture(glamor_screen_private *glamor_priv, int unit,
PicturePtr picture,
PixmapPtr pixmap,
- GLuint wh_location, GLuint repeat_location)
+ GLuint wh_location, GLuint repeat_location,
+ glamor_pixmap_private *dest_priv)
{
glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
+ glamor_pixmap_fbo *fbo = pixmap_priv->fbo;
float wh[4];
int repeat_type;
glamor_make_current(glamor_priv);
- glActiveTexture(GL_TEXTURE0 + unit);
- glBindTexture(GL_TEXTURE_2D, pixmap_priv->fbo->tex);
+
+ /* The red channel swizzling doesn't depend on whether we're using
+ * 'fbo' as source or mask as we must have the same answer in case
+ * the same fbo is being used for both. That means the mask
+ * channel will sometimes get red bits in the R channel, and
+ * sometimes get zero bits in the R channel, which is harmless.
+ */
+ glamor_bind_texture(glamor_priv, GL_TEXTURE0 + unit, fbo,
+ glamor_fbo_red_is_alpha(glamor_priv, dest_priv->fbo));
repeat_type = picture->repeatType;
switch (picture->repeatType) {
case RepeatNone:
@@ -557,8 +578,8 @@ glamor_set_composite_texture(glamor_screen_private *glamor_priv, int unit,
*
**/
if (glamor_pixmap_priv_is_large(pixmap_priv) ||
- (glamor_priv->gl_flavor == GLAMOR_GL_ES2 && repeat_type == RepeatNone &&
- picture->transform)) {
+ ((!PICT_FORMAT_A(picture->format) || glamor_priv->gl_flavor == GLAMOR_GL_ES2) &&
+ repeat_type == RepeatNone && picture->transform)) {
glamor_pixmap_fbo_fix_wh_ratio(wh, pixmap, pixmap_priv);
glUniform4fv(wh_location, 1, wh);
@@ -1068,7 +1089,8 @@ glamor_composite_set_shader_blend(glamor_screen_private *glamor_priv,
glamor_set_composite_texture(glamor_priv, 0,
shader->source,
shader->source_pixmap, shader->source_wh,
- shader->source_repeat_mode);
+ shader->source_repeat_mode,
+ dest_priv);
}
if (key->mask != SHADER_MASK_NONE) {
@@ -1080,10 +1102,14 @@ glamor_composite_set_shader_blend(glamor_screen_private *glamor_priv,
glamor_set_composite_texture(glamor_priv, 1,
shader->mask,
shader->mask_pixmap, shader->mask_wh,
- shader->mask_repeat_mode);
+ shader->mask_repeat_mode,
+ dest_priv);
}
}
+ if (glamor_priv->gl_flavor != GLAMOR_GL_ES2)
+ glDisable(GL_COLOR_LOGIC_OP);
+
if (op_info->source_blend == GL_ONE && op_info->dest_blend == GL_ZERO) {
glDisable(GL_BLEND);
}
@@ -1144,12 +1170,12 @@ glamor_composite_with_shader(CARD8 op,
}
}
+ glamor_make_current(glamor_priv);
+
glamor_set_destination_pixmap_priv_nc(glamor_priv, dest_pixmap, dest_pixmap_priv);
glamor_composite_set_shader_blend(glamor_priv, dest_pixmap_priv, &key, shader, &op_info);
glamor_set_alu(screen, GXcopy);
- glamor_make_current(glamor_priv);
-
glamor_priv->has_source_coords = key.source != SHADER_SOURCE_SOLID;
glamor_priv->has_mask_coords = (key.mask != SHADER_MASK_NONE &&
key.mask != SHADER_MASK_SOLID);
@@ -1392,6 +1418,36 @@ glamor_composite_clipped_region(CARD8 op,
DEBUGF("clipped (%d %d) (%d %d) (%d %d) width %d height %d \n",
x_source, y_source, x_mask, y_mask, x_dest, y_dest, width, height);
+ /* Is the composite operation equivalent to a copy? */
+ if (!mask && !source->alphaMap && !dest->alphaMap
+ && source->pDrawable && !source->transform
+ && ((op == PictOpSrc
+ && (source->format == dest->format
+ || (PICT_FORMAT_COLOR(dest->format)
+ && PICT_FORMAT_COLOR(source->format)
+ && dest->format == PICT_FORMAT(PICT_FORMAT_BPP(source->format),
+ PICT_FORMAT_TYPE(source->format),
+ 0,
+ PICT_FORMAT_R(source->format),
+ PICT_FORMAT_G(source->format),
+ PICT_FORMAT_B(source->format)))))
+ || (op == PictOpOver
+ && source->format == dest->format
+ && !PICT_FORMAT_A(source->format)))
+ && x_source >= 0 && y_source >= 0
+ && (x_source + width) <= source->pDrawable->width
+ && (y_source + height) <= source->pDrawable->height) {
+ x_source += source->pDrawable->x;
+ y_source += source->pDrawable->y;
+ x_dest += dest->pDrawable->x;
+ y_dest += dest->pDrawable->y;
+ glamor_copy(source->pDrawable, dest->pDrawable, NULL,
+ box, nbox, x_source - x_dest,
+ y_source - y_dest, FALSE, FALSE, 0, NULL);
+ ok = TRUE;
+ goto out;
+ }
+
/* XXX is it possible source mask have non-zero drawable.x/y? */
if (source
&& ((!source->pDrawable
diff --git a/xserver/glamor/glamor_spans.c b/xserver/glamor/glamor_spans.c
index 89a9c5102..5217d0434 100644
--- a/xserver/glamor/glamor_spans.c
+++ b/xserver/glamor/glamor_spans.c
@@ -294,8 +294,7 @@ glamor_set_spans_gl(DrawablePtr drawable, GCPtr gc, char *src,
BoxPtr box = glamor_pixmap_box_at(pixmap_priv, box_index);
glamor_pixmap_fbo *fbo = glamor_pixmap_fbo_at(pixmap_priv, box_index);
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, fbo->tex);
+ glamor_bind_texture(glamor_priv, GL_TEXTURE0, fbo, TRUE);
s = src;
for (n = 0; n < numPoints; n++) {
diff --git a/xserver/glamor/glamor_text.c b/xserver/glamor/glamor_text.c
index c305305f4..cf165cad8 100644
--- a/xserver/glamor/glamor_text.c
+++ b/xserver/glamor/glamor_text.c
@@ -446,16 +446,17 @@ glamor_image_text(DrawablePtr drawable, GCPtr gc,
glamor_get_drawable_deltas(drawable, pixmap, &off_x, &off_y);
if (width >= 0) {
- box.x1 = off_x + drawable->x + x;
- box.x2 = off_x + drawable->x + x + width;
+ box.x1 = drawable->x + x;
+ box.x2 = drawable->x + x + width;
} else {
- box.x1 = off_x + drawable->x + x + width;
- box.x2 = off_x + drawable->x + x;
+ box.x1 = drawable->x + x + width;
+ box.x2 = drawable->x + x;
}
- box.y1 = off_y + drawable->y + y - gc->font->info.fontAscent;
- box.y2 = off_y + drawable->y + y + gc->font->info.fontDescent;
+ box.y1 = drawable->y + y - gc->font->info.fontAscent;
+ box.y2 = drawable->y + y + gc->font->info.fontDescent;
RegionInit(&region, &box, 1);
RegionIntersect(&region, &region, gc->pCompositeClip);
+ RegionTranslate(&region, off_x, off_y);
glamor_solid_boxes(pixmap, RegionRects(&region), RegionNumRects(&region), gc->bgPixel);
RegionUninit(&region);
}
diff --git a/xserver/glamor/glamor_transfer.c b/xserver/glamor/glamor_transfer.c
index ed81195b6..d788d06f4 100644
--- a/xserver/glamor/glamor_transfer.c
+++ b/xserver/glamor/glamor_transfer.c
@@ -83,8 +83,7 @@ glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
BoxPtr boxes = in_boxes;
int nbox = in_nbox;
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, fbo->tex);
+ glamor_bind_texture(glamor_priv, GL_TEXTURE0, fbo, TRUE);
while (nbox--) {
diff --git a/xserver/glamor/glamor_transform.c b/xserver/glamor/glamor_transform.c
index fc96fd670..eff500c6d 100644
--- a/xserver/glamor/glamor_transform.c
+++ b/xserver/glamor/glamor_transform.c
@@ -158,7 +158,7 @@ glamor_set_solid(PixmapPtr pixmap,
}
Bool
-glamor_set_texture_pixmap(PixmapPtr texture)
+glamor_set_texture_pixmap(PixmapPtr texture, Bool destination_red)
{
glamor_pixmap_private *texture_priv;
@@ -170,8 +170,9 @@ glamor_set_texture_pixmap(PixmapPtr texture)
if (glamor_pixmap_priv_is_large(texture_priv))
return FALSE;
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, texture_priv->fbo->tex);
+ glamor_bind_texture(glamor_get_screen_private(texture->drawable.pScreen),
+ GL_TEXTURE0,
+ texture_priv->fbo, destination_red);
/* we're not setting the sampler uniform here as we always use
* GL_TEXTURE0, and the default value for uniforms is zero. So,
@@ -182,12 +183,13 @@ glamor_set_texture_pixmap(PixmapPtr texture)
Bool
glamor_set_texture(PixmapPtr texture,
+ Bool destination_red,
int off_x,
int off_y,
GLint offset_uniform,
GLint size_inv_uniform)
{
- if (!glamor_set_texture_pixmap(texture))
+ if (!glamor_set_texture_pixmap(texture, destination_red))
return FALSE;
glUniform2f(offset_uniform, off_x, off_y);
@@ -208,6 +210,7 @@ glamor_set_tiled(PixmapPtr pixmap,
return FALSE;
return glamor_set_texture(gc->tile.pixmap,
+ TRUE,
-gc->patOrg.x,
-gc->patOrg.y,
offset_uniform,
@@ -289,6 +292,7 @@ glamor_set_stippled(PixmapPtr pixmap,
return FALSE;
return glamor_set_texture(stipple,
+ FALSE,
-gc->patOrg.x,
-gc->patOrg.y,
offset_uniform,
diff --git a/xserver/glamor/glamor_transform.h b/xserver/glamor/glamor_transform.h
index 5a520ebb0..70d2c1671 100644
--- a/xserver/glamor/glamor_transform.h
+++ b/xserver/glamor/glamor_transform.h
@@ -48,10 +48,12 @@ glamor_set_color(PixmapPtr pixmap,
}
Bool
-glamor_set_texture_pixmap(PixmapPtr texture);
+glamor_set_texture_pixmap(PixmapPtr texture,
+ Bool destination_red);
Bool
glamor_set_texture(PixmapPtr texture,
+ Bool destination_red,
int off_x,
int off_y,
GLint offset_uniform,
diff --git a/xserver/glx/Makefile.in b/xserver/glx/Makefile.in
index d2759ef04..f7dea5ad8 100644
--- a/xserver/glx/Makefile.in
+++ b/xserver/glx/Makefile.in
@@ -160,6 +160,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -391,6 +393,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/glx/glxext.c b/xserver/glx/glxext.c
index e41b881f2..c201fba86 100644
--- a/xserver/glx/glxext.c
+++ b/xserver/glx/glxext.c
@@ -469,6 +469,12 @@ __glXForceCurrent(__GLXclientState * cl, GLXContextTag tag, int *error)
/* Make this context the current one for the GL. */
if (!cx->isDirect) {
+ /*
+ * If it is being forced, it means that this context was already made
+ * current. So it cannot just be made current again without decrementing
+ * refcount's
+ */
+ (*cx->loseCurrent) (cx);
lastGLContext = cx;
if (!(*cx->makeCurrent) (cx)) {
/* Bind failed, and set the error code. Bummer */
diff --git a/xserver/hw/Makefile.in b/xserver/hw/Makefile.in
index 6ef53dd6e..c679363ad 100644
--- a/xserver/hw/Makefile.in
+++ b/xserver/hw/Makefile.in
@@ -148,6 +148,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -379,6 +381,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/Makefile.in b/xserver/hw/dmx/Makefile.in
index 9437e59a7..ef39959be 100644
--- a/xserver/hw/dmx/Makefile.in
+++ b/xserver/hw/dmx/Makefile.in
@@ -208,6 +208,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -448,6 +450,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/config/Makefile.in b/xserver/hw/dmx/config/Makefile.in
index e6792b3f4..5b8643f42 100644
--- a/xserver/hw/dmx/config/Makefile.in
+++ b/xserver/hw/dmx/config/Makefile.in
@@ -223,6 +223,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -454,6 +456,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/config/man/Makefile.in b/xserver/hw/dmx/config/man/Makefile.in
index 90c4e53ce..289cd7740 100644
--- a/xserver/hw/dmx/config/man/Makefile.in
+++ b/xserver/hw/dmx/config/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/doc/Makefile.in b/xserver/hw/dmx/doc/Makefile.in
index 273a5bce2..2998ecc3b 100644
--- a/xserver/hw/dmx/doc/Makefile.in
+++ b/xserver/hw/dmx/doc/Makefile.in
@@ -153,6 +153,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -384,6 +386,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/doxygen/Makefile.in b/xserver/hw/dmx/doxygen/Makefile.in
index d80219c17..c0d97561f 100644
--- a/xserver/hw/dmx/doxygen/Makefile.in
+++ b/xserver/hw/dmx/doxygen/Makefile.in
@@ -134,6 +134,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -365,6 +367,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/examples/Makefile.in b/xserver/hw/dmx/examples/Makefile.in
index 6a8ede934..907960f4e 100644
--- a/xserver/hw/dmx/examples/Makefile.in
+++ b/xserver/hw/dmx/examples/Makefile.in
@@ -248,6 +248,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -479,6 +481,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/glxProxy/Makefile.in b/xserver/hw/dmx/glxProxy/Makefile.in
index 9c0b3e1ae..f748fe4e1 100644
--- a/xserver/hw/dmx/glxProxy/Makefile.in
+++ b/xserver/hw/dmx/glxProxy/Makefile.in
@@ -154,6 +154,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -385,6 +387,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/input/Makefile.in b/xserver/hw/dmx/input/Makefile.in
index 74ac3c365..74bad71bc 100644
--- a/xserver/hw/dmx/input/Makefile.in
+++ b/xserver/hw/dmx/input/Makefile.in
@@ -169,6 +169,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -400,6 +402,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/dmx/man/Makefile.in b/xserver/hw/dmx/man/Makefile.in
index d1e7f7f51..e39fa734e 100644
--- a/xserver/hw/dmx/man/Makefile.in
+++ b/xserver/hw/dmx/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/kdrive/Makefile.in b/xserver/hw/kdrive/Makefile.in
index eb485aee8..d7e69825d 100644
--- a/xserver/hw/kdrive/Makefile.in
+++ b/xserver/hw/kdrive/Makefile.in
@@ -148,6 +148,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -379,6 +381,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/kdrive/ephyr/Makefile.in b/xserver/hw/kdrive/ephyr/Makefile.in
index 4f33efe4b..c8a49c22c 100644
--- a/xserver/hw/kdrive/ephyr/Makefile.in
+++ b/xserver/hw/kdrive/ephyr/Makefile.in
@@ -222,6 +222,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -453,6 +455,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/kdrive/ephyr/man/Makefile.in b/xserver/hw/kdrive/ephyr/man/Makefile.in
index 931ed4fd8..e81dc30c9 100644
--- a/xserver/hw/kdrive/ephyr/man/Makefile.in
+++ b/xserver/hw/kdrive/ephyr/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/kdrive/fake/Makefile.in b/xserver/hw/kdrive/fake/Makefile.in
index 46d6f530f..900865f55 100644
--- a/xserver/hw/kdrive/fake/Makefile.in
+++ b/xserver/hw/kdrive/fake/Makefile.in
@@ -152,6 +152,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -383,6 +385,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/kdrive/fbdev/Makefile.in b/xserver/hw/kdrive/fbdev/Makefile.in
index 0f23fb2bb..1e007f127 100644
--- a/xserver/hw/kdrive/fbdev/Makefile.in
+++ b/xserver/hw/kdrive/fbdev/Makefile.in
@@ -153,6 +153,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -384,6 +386,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/kdrive/linux/Makefile.in b/xserver/hw/kdrive/linux/Makefile.in
index 2b93bdf60..2b7e8e146 100644
--- a/xserver/hw/kdrive/linux/Makefile.in
+++ b/xserver/hw/kdrive/linux/Makefile.in
@@ -154,6 +154,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -385,6 +387,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/kdrive/linux/keyboard.c b/xserver/hw/kdrive/linux/keyboard.c
index 9a6ee2d93..5d31b7da3 100644
--- a/xserver/hw/kdrive/linux/keyboard.c
+++ b/xserver/hw/kdrive/linux/keyboard.c
@@ -43,445 +43,6 @@
extern int LinuxConsoleFd;
-static const KeySym linux_to_x[256] = {
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- XK_BackSpace, XK_Tab, XK_Linefeed, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, XK_Escape,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- XK_space, XK_exclam, XK_quotedbl, XK_numbersign,
- XK_dollar, XK_percent, XK_ampersand, XK_apostrophe,
- XK_parenleft, XK_parenright, XK_asterisk, XK_plus,
- XK_comma, XK_minus, XK_period, XK_slash,
- XK_0, XK_1, XK_2, XK_3,
- XK_4, XK_5, XK_6, XK_7,
- XK_8, XK_9, XK_colon, XK_semicolon,
- XK_less, XK_equal, XK_greater, XK_question,
- XK_at, XK_A, XK_B, XK_C,
- XK_D, XK_E, XK_F, XK_G,
- XK_H, XK_I, XK_J, XK_K,
- XK_L, XK_M, XK_N, XK_O,
- XK_P, XK_Q, XK_R, XK_S,
- XK_T, XK_U, XK_V, XK_W,
- XK_X, XK_Y, XK_Z, XK_bracketleft,
- XK_backslash, XK_bracketright, XK_asciicircum, XK_underscore,
- XK_grave, XK_a, XK_b, XK_c,
- XK_d, XK_e, XK_f, XK_g,
- XK_h, XK_i, XK_j, XK_k,
- XK_l, XK_m, XK_n, XK_o,
- XK_p, XK_q, XK_r, XK_s,
- XK_t, XK_u, XK_v, XK_w,
- XK_x, XK_y, XK_z, XK_braceleft,
- XK_bar, XK_braceright, XK_asciitilde, XK_BackSpace,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- XK_nobreakspace, XK_exclamdown, XK_cent, XK_sterling,
- XK_currency, XK_yen, XK_brokenbar, XK_section,
- XK_diaeresis, XK_copyright, XK_ordfeminine, XK_guillemotleft,
- XK_notsign, XK_hyphen, XK_registered, XK_macron,
- XK_degree, XK_plusminus, XK_twosuperior, XK_threesuperior,
- XK_acute, XK_mu, XK_paragraph, XK_periodcentered,
- XK_cedilla, XK_onesuperior, XK_masculine, XK_guillemotright,
- XK_onequarter, XK_onehalf, XK_threequarters, XK_questiondown,
- XK_Agrave, XK_Aacute, XK_Acircumflex, XK_Atilde,
- XK_Adiaeresis, XK_Aring, XK_AE, XK_Ccedilla,
- XK_Egrave, XK_Eacute, XK_Ecircumflex, XK_Ediaeresis,
- XK_Igrave, XK_Iacute, XK_Icircumflex, XK_Idiaeresis,
- XK_ETH, XK_Ntilde, XK_Ograve, XK_Oacute,
- XK_Ocircumflex, XK_Otilde, XK_Odiaeresis, XK_multiply,
- XK_Ooblique, XK_Ugrave, XK_Uacute, XK_Ucircumflex,
- XK_Udiaeresis, XK_Yacute, XK_THORN, XK_ssharp,
- XK_agrave, XK_aacute, XK_acircumflex, XK_atilde,
- XK_adiaeresis, XK_aring, XK_ae, XK_ccedilla,
- XK_egrave, XK_eacute, XK_ecircumflex, XK_ediaeresis,
- XK_igrave, XK_iacute, XK_icircumflex, XK_idiaeresis,
- XK_eth, XK_ntilde, XK_ograve, XK_oacute,
- XK_ocircumflex, XK_otilde, XK_odiaeresis, XK_division,
- XK_oslash, XK_ugrave, XK_uacute, XK_ucircumflex,
- XK_udiaeresis, XK_yacute, XK_thorn, XK_ydiaeresis
-};
-
-/*
- * Getting a keycode from scancode
- *
- * With XKB
- * --------
- *
- * We have to enqueue keyboard events using standard X keycodes which correspond
- * to AT scancode + 8; this means that we need to translate the Linux scancode
- * provided by the kernel to an AT scancode -- this translation is not linear
- * and requires that we use a LUT.
- *
- *
- * Without XKB
- * -----------
- *
- * We can use custom keycodes, which makes things simpler; we define our custom
- * keycodes as Linux scancodes + KD_KEY_OFFSET
-*/
-
-/*
- This LUT translates AT scancodes into Linux ones -- the keymap we create
- for the core X keyboard protocol has to be AT-scancode based so that it
- corresponds to the Xkb keymap.
-*/
-#if 0
-static unsigned char at2lnx[] = {
- 0x0, /* no valid scancode */
- 0x01, /* KEY_Escape */ 0x02, /* KEY_1 */
- 0x03, /* KEY_2 */ 0x04, /* KEY_3 */
- 0x05, /* KEY_4 */ 0x06, /* KEY_5 */
- 0x07, /* KEY_6 */ 0x08, /* KEY_7 */
- 0x09, /* KEY_8 */ 0x0a, /* KEY_9 */
- 0x0b, /* KEY_0 */ 0x0c, /* KEY_Minus */
- 0x0d, /* KEY_Equal */ 0x0e, /* KEY_BackSpace */
- 0x0f, /* KEY_Tab */ 0x10, /* KEY_Q */
- 0x11, /* KEY_W */ 0x12, /* KEY_E */
- 0x13, /* KEY_R */ 0x14, /* KEY_T */
- 0x15, /* KEY_Y */ 0x16, /* KEY_U */
- 0x17, /* KEY_I */ 0x18, /* KEY_O */
- 0x19, /* KEY_P */ 0x1a, /* KEY_LBrace */
- 0x1b, /* KEY_RBrace */ 0x1c, /* KEY_Enter */
- 0x1d, /* KEY_LCtrl */ 0x1e, /* KEY_A */
- 0x1f, /* KEY_S */ 0x20, /* KEY_D */
- 0x21, /* KEY_F */ 0x22, /* KEY_G */
- 0x23, /* KEY_H */ 0x24, /* KEY_J */
- 0x25, /* KEY_K */ 0x26, /* KEY_L */
- 0x27, /* KEY_SemiColon */ 0x28, /* KEY_Quote */
- 0x29, /* KEY_Tilde */ 0x2a, /* KEY_ShiftL */
- 0x2b, /* KEY_BSlash */ 0x2c, /* KEY_Z */
- 0x2d, /* KEY_X */ 0x2e, /* KEY_C */
- 0x2f, /* KEY_V */ 0x30, /* KEY_B */
- 0x31, /* KEY_N */ 0x32, /* KEY_M */
- 0x33, /* KEY_Comma */ 0x34, /* KEY_Period */
- 0x35, /* KEY_Slash */ 0x36, /* KEY_ShiftR */
- 0x37, /* KEY_KP_Multiply */ 0x38, /* KEY_Alt */
- 0x39, /* KEY_Space */ 0x3a, /* KEY_CapsLock */
- 0x3b, /* KEY_F1 */ 0x3c, /* KEY_F2 */
- 0x3d, /* KEY_F3 */ 0x3e, /* KEY_F4 */
- 0x3f, /* KEY_F5 */ 0x40, /* KEY_F6 */
- 0x41, /* KEY_F7 */ 0x42, /* KEY_F8 */
- 0x43, /* KEY_F9 */ 0x44, /* KEY_F10 */
- 0x45, /* KEY_NumLock */ 0x46, /* KEY_ScrollLock */
- 0x47, /* KEY_KP_7 */ 0x48, /* KEY_KP_8 */
- 0x49, /* KEY_KP_9 */ 0x4a, /* KEY_KP_Minus */
- 0x4b, /* KEY_KP_4 */ 0x4c, /* KEY_KP_5 */
- 0x4d, /* KEY_KP_6 */ 0x4e, /* KEY_KP_Plus */
- 0x4f, /* KEY_KP_1 */ 0x50, /* KEY_KP_2 */
- 0x51, /* KEY_KP_3 */ 0x52, /* KEY_KP_0 */
- 0x53, /* KEY_KP_Decimal */ 0x54, /* KEY_SysReqest */
- 0x00, /* 0x55 */ 0x56, /* KEY_Less */
- 0x57, /* KEY_F11 */ 0x58, /* KEY_F12 */
- 0x66, /* KEY_Home */ 0x67, /* KEY_Up */
- 0x68, /* KEY_PgUp */ 0x69, /* KEY_Left */
- 0x5d, /* KEY_Begin */ 0x6a, /* KEY_Right */
- 0x6b, /* KEY_End */ 0x6c, /* KEY_Down */
- 0x6d, /* KEY_PgDown */ 0x6e, /* KEY_Insert */
- 0x6f, /* KEY_Delete */ 0x60, /* KEY_KP_Enter */
- 0x61, /* KEY_RCtrl */ 0x77, /* KEY_Pause */
- 0x63, /* KEY_Print */ 0x62, /* KEY_KP_Divide */
- 0x64, /* KEY_AltLang */ 0x65, /* KEY_Break */
- 0x00, /* KEY_LMeta */ 0x00, /* KEY_RMeta */
- 0x7A, /* KEY_Menu/FOCUS_PF11 */ 0x00, /* 0x6e */
- 0x7B, /* FOCUS_PF12 */ 0x00, /* 0x70 */
- 0x00, /* 0x71 */ 0x00, /* 0x72 */
- 0x59, /* FOCUS_PF2 */ 0x78, /* FOCUS_PF9 */
- 0x00, /* 0x75 */ 0x00, /* 0x76 */
- 0x5A, /* FOCUS_PF3 */ 0x5B, /* FOCUS_PF4 */
- 0x5C, /* FOCUS_PF5 */ 0x5D, /* FOCUS_PF6 */
- 0x5E, /* FOCUS_PF7 */ 0x5F, /* FOCUS_PF8 */
- 0x7C, /* JAP_86 */ 0x79, /* FOCUS_PF10 */
- 0x00, /* 0x7f */
-};
-
-#define NUM_AT_KEYS (sizeof(at2lnx)/sizeof(at2lnx[0]))
-#define LNX_KEY_INDEX(n) n < NUM_AT_KEYS ? at2lnx[n] : 0
-
-static unsigned char tbl[KD_MAX_WIDTH] = {
- 0,
- 1 << KG_SHIFT,
- (1 << KG_ALTGR),
- (1 << KG_ALTGR) | (1 << KG_SHIFT)
-};
-#endif
-
-static void
-readKernelMapping(KdKeyboardInfo * ki)
-{
-#if 0
- KeySym *k;
- int i, j;
- struct kbentry kbe;
- int minKeyCode, maxKeyCode;
- int row;
- int fd;
-
- if (!ki)
- return;
-
- fd = LinuxConsoleFd;
-
- minKeyCode = NR_KEYS;
- maxKeyCode = 0;
- row = 0;
- ki->keySyms.mapWidth = KD_MAX_WIDTH;
- for (i = 0; i < NR_KEYS && row < KD_MAX_LENGTH; ++i) {
- kbe.kb_index = LNX_KEY_INDEX(i);
-
- k = ki->keySyms.map + row * ki->keySyms.mapWidth;
-
- for (j = 0; j < ki->keySyms.mapWidth; ++j) {
- unsigned short kval;
-
- k[j] = NoSymbol;
-
- kbe.kb_table = tbl[j];
- kbe.kb_value = 0;
- if (ioctl(fd, KDGKBENT, &kbe))
- continue;
-
- kval = KVAL(kbe.kb_value);
- switch (KTYP(kbe.kb_value)) {
- case KT_LATIN:
- case KT_LETTER:
- k[j] = linux_to_x[kval];
- break;
-
- case KT_FN:
- if (kval <= 19)
- k[j] = XK_F1 + kval;
- else
- switch (kbe.kb_value) {
- case K_FIND:
- k[j] = XK_Home; /* or XK_Find */
- break;
- case K_INSERT:
- k[j] = XK_Insert;
- break;
- case K_REMOVE:
- k[j] = XK_Delete;
- break;
- case K_SELECT:
- k[j] = XK_End; /* or XK_Select */
- break;
- case K_PGUP:
- k[j] = XK_Prior;
- break;
- case K_PGDN:
- k[j] = XK_Next;
- break;
- case K_HELP:
- k[j] = XK_Help;
- break;
- case K_DO:
- k[j] = XK_Execute;
- break;
- case K_PAUSE:
- k[j] = XK_Pause;
- break;
- case K_MACRO:
- k[j] = XK_Menu;
- break;
- default:
- break;
- }
- break;
-
- case KT_SPEC:
- switch (kbe.kb_value) {
- case K_ENTER:
- k[j] = XK_Return;
- break;
- case K_BREAK:
- k[j] = XK_Break;
- break;
- case K_CAPS:
- k[j] = XK_Caps_Lock;
- break;
- case K_NUM:
- k[j] = XK_Num_Lock;
- break;
- case K_HOLD:
- k[j] = XK_Scroll_Lock;
- break;
- case K_COMPOSE:
- k[j] = XK_Multi_key;
- break;
- default:
- break;
- }
- break;
-
- case KT_PAD:
- switch (kbe.kb_value) {
- case K_PPLUS:
- k[j] = XK_KP_Add;
- break;
- case K_PMINUS:
- k[j] = XK_KP_Subtract;
- break;
- case K_PSTAR:
- k[j] = XK_KP_Multiply;
- break;
- case K_PSLASH:
- k[j] = XK_KP_Divide;
- break;
- case K_PENTER:
- k[j] = XK_KP_Enter;
- break;
- case K_PCOMMA:
- k[j] = XK_KP_Separator;
- break;
- case K_PDOT:
- k[j] = XK_KP_Decimal;
- break;
- case K_PPLUSMINUS:
- k[j] = XK_KP_Subtract;
- break;
- default:
- if (kval <= 9)
- k[j] = XK_KP_0 + kval;
- break;
- }
- break;
-
- /*
- * KT_DEAD keys are for accelerated diacritical creation.
- */
- case KT_DEAD:
- switch (kbe.kb_value) {
- case K_DGRAVE:
- k[j] = XK_dead_grave;
- break;
- case K_DACUTE:
- k[j] = XK_dead_acute;
- break;
- case K_DCIRCM:
- k[j] = XK_dead_circumflex;
- break;
- case K_DTILDE:
- k[j] = XK_dead_tilde;
- break;
- case K_DDIERE:
- k[j] = XK_dead_diaeresis;
- break;
- }
- break;
-
- case KT_CUR:
- switch (kbe.kb_value) {
- case K_DOWN:
- k[j] = XK_Down;
- break;
- case K_LEFT:
- k[j] = XK_Left;
- break;
- case K_RIGHT:
- k[j] = XK_Right;
- break;
- case K_UP:
- k[j] = XK_Up;
- break;
- }
- break;
-
- case KT_SHIFT:
- switch (kbe.kb_value) {
- case K_ALTGR:
- k[j] = XK_Mode_switch;
- break;
- case K_ALT:
- k[j] = (kbe.kb_index == 0x64 ? XK_Alt_R : XK_Alt_L);
- break;
- case K_CTRL:
- k[j] = (kbe.kb_index == 0x61 ? XK_Control_R : XK_Control_L);
- break;
- case K_CTRLL:
- k[j] = XK_Control_L;
- break;
- case K_CTRLR:
- k[j] = XK_Control_R;
- break;
- case K_SHIFT:
- k[j] = (kbe.kb_index == 0x36 ? XK_Shift_R : XK_Shift_L);
- break;
- case K_SHIFTL:
- k[j] = XK_Shift_L;
- break;
- case K_SHIFTR:
- k[j] = XK_Shift_R;
- break;
- default:
- break;
- }
- break;
-
- /*
- * KT_ASCII keys accumulate a 3 digit decimal number that gets
- * emitted when the shift state changes. We can't emulate that.
- */
- case KT_ASCII:
- break;
-
- case KT_LOCK:
- if (kbe.kb_value == K_SHIFTLOCK)
- k[j] = XK_Shift_Lock;
- break;
-
-#ifdef KT_X
- case KT_X:
- /* depends on new keyboard symbols in file linux/keyboard.h */
- if (kbe.kb_value == K_XMENU)
- k[j] = XK_Menu;
- if (kbe.kb_value == K_XTELEPHONE)
- k[j] = XK_telephone;
- break;
-#endif
-#ifdef KT_XF
- case KT_XF:
- /* special linux keysyms which map directly to XF86 keysyms */
- k[j] = (kbe.kb_value & 0xFF) + 0x1008FF00;
- break;
-#endif
-
- default:
- break;
- }
- if (i < minKeyCode)
- minKeyCode = i;
- if (i > maxKeyCode)
- maxKeyCode = i;
- }
-
- if (minKeyCode == NR_KEYS)
- continue;
-
- if (k[3] == k[2])
- k[3] = NoSymbol;
- if (k[2] == k[1])
- k[2] = NoSymbol;
- if (k[1] == k[0])
- k[1] = NoSymbol;
- if (k[0] == k[2] && k[1] == k[3])
- k[2] = k[3] = NoSymbol;
- if (k[3] == k[0] && k[2] == k[1] && k[2] == NoSymbol)
- k[3] = NoSymbol;
- row++;
- }
- ki->minScanCode = minKeyCode;
- ki->maxScanCode = maxKeyCode;
-#endif
-}
-
/*
* We need these to handle extended scancodes correctly (I could just use the
* numbers below, but this makes the code more readable
@@ -759,8 +320,6 @@ LinuxKeyboardInit(KdKeyboardInfo * ki)
free(ki->name);
ki->name = strdup("Linux console keyboard");
- readKernelMapping(ki);
-
return Success;
}
diff --git a/xserver/hw/kdrive/src/Makefile.in b/xserver/hw/kdrive/src/Makefile.in
index 6c94b33e5..27e4c5e0d 100644
--- a/xserver/hw/kdrive/src/Makefile.in
+++ b/xserver/hw/kdrive/src/Makefile.in
@@ -148,6 +148,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -379,6 +381,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/vfb/Makefile.in b/xserver/hw/vfb/Makefile.in
index 5be673a45..1b5fba695 100644
--- a/xserver/hw/vfb/Makefile.in
+++ b/xserver/hw/vfb/Makefile.in
@@ -191,6 +191,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -422,6 +424,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/vfb/man/Makefile.in b/xserver/hw/vfb/man/Makefile.in
index 4d8be794b..f8a06eb9f 100644
--- a/xserver/hw/vfb/man/Makefile.in
+++ b/xserver/hw/vfb/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/Makefile.in b/xserver/hw/xfree86/Makefile.in
index 082f0f90b..b50c15b76 100644
--- a/xserver/hw/xfree86/Makefile.in
+++ b/xserver/hw/xfree86/Makefile.in
@@ -199,6 +199,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -430,6 +432,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/common/Makefile.in b/xserver/hw/xfree86/common/Makefile.in
index 3e018db98..554edf7a3 100644
--- a/xserver/hw/xfree86/common/Makefile.in
+++ b/xserver/hw/xfree86/common/Makefile.in
@@ -206,6 +206,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -437,6 +439,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/common/xf86Config.c b/xserver/hw/xfree86/common/xf86Config.c
index 8e6b2edb1..c7dfd6886 100644
--- a/xserver/hw/xfree86/common/xf86Config.c
+++ b/xserver/hw/xfree86/common/xf86Config.c
@@ -518,32 +518,54 @@ xf86InputDriverlistFromConfig(void)
return modulearray;
}
+static int
+is_fallback(const char *s)
+{
+ /* later entries are less preferred */
+ const char *fallback[5] = { "modesetting", "fbdev", "vesa", "wsfb", NULL };
+ int i;
+
+ for (i = 0; fallback[i]; i++)
+ if (strstr(s, fallback[i]))
+ return i;
+
+ return -1;
+}
+
+static int
+driver_sort(const void *_l, const void *_r)
+{
+ const char *l = *(const char **)_l;
+ const char *r = *(const char **)_r;
+ int left = is_fallback(l);
+ int right = is_fallback(r);
+
+ /* neither is a fallback, asciibetize */
+ if (left == -1 && right == -1)
+ return strcmp(l, r);
+
+ /* left is a fallback */
+ if (left >= 0)
+ return 1;
+
+ /* right is a fallback */
+ if (right >= 0)
+ return -1;
+
+ /* both are fallbacks, which is worse */
+ return left - right;
+}
+
static void
fixup_video_driver_list(const char **drivers)
{
- static const char *fallback[5] = { "modesetting", "fbdev", "vesa", "wsfb", NULL };
- const char **end, **drv;
- const char *x;
- int i;
+ const char **end;
/* walk to the end of the list */
for (end = drivers; *end && **end; end++);
end--;
- /*
- * for each of the fallback drivers, if we find it in the list,
- * swap it with the last available non-fallback driver.
- */
- for (i = 0; fallback[i]; i++) {
- for (drv = drivers; drv != end; drv++) {
- if (strstr(*drv, fallback[i])) {
- x = *drv;
- *drv = *end;
- *end = x;
- end--;
- break;
- }
- }
- }
+
+ qsort(drivers, end - drivers, sizeof(const char *), driver_sort);
}
static const char **
@@ -699,6 +721,7 @@ typedef enum {
FLAG_USE_SIGIO,
FLAG_AUTO_ADD_GPU,
FLAG_MAX_CLIENTS,
+ FLAG_IGLX,
} FlagValues;
/**
@@ -760,6 +783,8 @@ static OptionInfoRec FlagOptions[] = {
{0}, FALSE},
{FLAG_MAX_CLIENTS, "MaxClients", OPTV_INTEGER,
{0}, FALSE },
+ {FLAG_IGLX, "IndirectGLX", OPTV_BOOLEAN,
+ {0}, FALSE},
{-1, NULL, OPTV_NONE,
{0}, FALSE},
};
@@ -942,6 +967,12 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
xf86Info.aiglx = value;
xf86Info.aiglxFrom = X_CONFIG;
}
+ if (xf86Info.iglxFrom != X_CMDLINE) {
+ if (xf86GetOptValBool(FlagOptions, FLAG_IGLX, &value)) {
+ enableIndirectGLX = value;
+ xf86Info.iglxFrom = X_CONFIG;
+ }
+ }
#endif
/* if we're not hotplugging, force some input devices to exist */
diff --git a/xserver/hw/xfree86/common/xf86Configure.c b/xserver/hw/xfree86/common/xf86Configure.c
index 44758bcc7..1ebcd4296 100644
--- a/xserver/hw/xfree86/common/xf86Configure.c
+++ b/xserver/hw/xfree86/common/xf86Configure.c
@@ -264,7 +264,7 @@ configureDeviceSection(int screennum)
ptr->dev_busid = DevToConfig[screennum].GDev.busID;
ptr->dev_driver = DevToConfig[screennum].GDev.driver;
ptr->dev_ramdac = DevToConfig[screennum].GDev.ramdac;
- for (i = 0; (i < MAXDACSPEEDS) && (i < CONF_MAXDACSPEEDS); i++)
+ for (i = 0; i < MAXDACSPEEDS; i++)
ptr->dev_dacSpeeds[i] = DevToConfig[screennum].GDev.dacSpeeds[i];
ptr->dev_videoram = DevToConfig[screennum].GDev.videoRam;
ptr->dev_bios_base = DevToConfig[screennum].GDev.BiosBase;
diff --git a/xserver/hw/xfree86/common/xf86Init.c b/xserver/hw/xfree86/common/xf86Init.c
index 8785ef307..7f64a709b 100644
--- a/xserver/hw/xfree86/common/xf86Init.c
+++ b/xserver/hw/xfree86/common/xf86Init.c
@@ -1473,6 +1473,10 @@ ddxProcessArgument(int argc, char **argv, int i)
xf86Info.ShareVTs = TRUE;
return 1;
}
+ if (!strcmp(argv[i], "-iglx") || !strcmp(argv[i], "+iglx")) {
+ xf86Info.iglxFrom = X_CMDLINE;
+ return 0;
+ }
/* OS-specific processing */
return xf86ProcessArgument(argc, argv, i);
diff --git a/xserver/hw/xfree86/common/xf86Privstr.h b/xserver/hw/xfree86/common/xf86Privstr.h
index 58d5a0f13..c5d24eac0 100644
--- a/xserver/hw/xfree86/common/xf86Privstr.h
+++ b/xserver/hw/xfree86/common/xf86Privstr.h
@@ -89,6 +89,7 @@ typedef struct {
MessageType randRFrom;
Bool aiglx;
MessageType aiglxFrom;
+ MessageType iglxFrom;
XF86_GlxVisuals glxVisuals;
MessageType glxVisualsFrom;
diff --git a/xserver/hw/xfree86/ddc/Makefile.in b/xserver/hw/xfree86/ddc/Makefile.in
index 1c3c8df61..5cd8e71d7 100644
--- a/xserver/hw/xfree86/ddc/Makefile.in
+++ b/xserver/hw/xfree86/ddc/Makefile.in
@@ -174,6 +174,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -405,6 +407,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/dixmods/Makefile.in b/xserver/hw/xfree86/dixmods/Makefile.in
index a08e7f3d9..be9717ed1 100644
--- a/xserver/hw/xfree86/dixmods/Makefile.in
+++ b/xserver/hw/xfree86/dixmods/Makefile.in
@@ -216,6 +216,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -447,6 +449,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/doc/Makefile.in b/xserver/hw/xfree86/doc/Makefile.in
index 5ad97b3d5..d77b23f44 100644
--- a/xserver/hw/xfree86/doc/Makefile.in
+++ b/xserver/hw/xfree86/doc/Makefile.in
@@ -132,6 +132,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -363,6 +365,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/dri/Makefile.in b/xserver/hw/xfree86/dri/Makefile.in
index ff4c9d1fb..9511700a1 100644
--- a/xserver/hw/xfree86/dri/Makefile.in
+++ b/xserver/hw/xfree86/dri/Makefile.in
@@ -173,6 +173,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -404,6 +406,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/dri2/Makefile.in b/xserver/hw/xfree86/dri2/Makefile.in
index c2899092a..637c6975d 100644
--- a/xserver/hw/xfree86/dri2/Makefile.in
+++ b/xserver/hw/xfree86/dri2/Makefile.in
@@ -211,6 +211,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -442,6 +444,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/dri2/pci_ids/Makefile.in b/xserver/hw/xfree86/dri2/pci_ids/Makefile.in
index b39d20017..846c050d0 100644
--- a/xserver/hw/xfree86/dri2/pci_ids/Makefile.in
+++ b/xserver/hw/xfree86/dri2/pci_ids/Makefile.in
@@ -109,6 +109,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -340,6 +342,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/drivers/Makefile.in b/xserver/hw/xfree86/drivers/Makefile.in
index d7e036582..6af215046 100644
--- a/xserver/hw/xfree86/drivers/Makefile.in
+++ b/xserver/hw/xfree86/drivers/Makefile.in
@@ -150,6 +150,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -381,6 +383,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/drivers/modesetting/Makefile.am b/xserver/hw/xfree86/drivers/modesetting/Makefile.am
index 82c4f2f32..ca7e05aac 100644
--- a/xserver/hw/xfree86/drivers/modesetting/Makefile.am
+++ b/xserver/hw/xfree86/drivers/modesetting/Makefile.am
@@ -51,6 +51,8 @@ modesetting_drv_la_SOURCES = \
dumb_bo.c \
dumb_bo.h \
present.c \
+ sh3224.c \
+ sh3224.h \
vblank.c \
$(NULL)
diff --git a/xserver/hw/xfree86/drivers/modesetting/Makefile.in b/xserver/hw/xfree86/drivers/modesetting/Makefile.in
index ae15af2cb..d81711d3a 100644
--- a/xserver/hw/xfree86/drivers/modesetting/Makefile.in
+++ b/xserver/hw/xfree86/drivers/modesetting/Makefile.in
@@ -131,7 +131,7 @@ LTLIBRARIES = $(modesetting_drv_la_LTLIBRARIES)
am__DEPENDENCIES_1 =
modesetting_drv_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_modesetting_drv_la_OBJECTS = dri2.lo driver.lo drmmode_display.lo \
- dumb_bo.lo present.lo vblank.lo
+ dumb_bo.lo present.lo sh3224.lo vblank.lo
modesetting_drv_la_OBJECTS = $(am_modesetting_drv_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -206,6 +206,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -437,6 +439,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
@@ -554,6 +557,8 @@ modesetting_drv_la_SOURCES = \
dumb_bo.c \
dumb_bo.h \
present.c \
+ sh3224.c \
+ sh3224.h \
vblank.c \
$(NULL)
@@ -647,6 +652,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drmmode_display.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dumb_bo.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/present.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sh3224.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vblank.Plo@am__quote@
.c.o:
diff --git a/xserver/hw/xfree86/drivers/modesetting/driver.c b/xserver/hw/xfree86/drivers/modesetting/driver.c
index 327bb96d2..03807a82f 100644
--- a/xserver/hw/xfree86/drivers/modesetting/driver.c
+++ b/xserver/hw/xfree86/drivers/modesetting/driver.c
@@ -60,6 +60,7 @@
#endif
#include "driver.h"
+#include "sh3224.h"
#ifdef X_PRIVSEP
extern int priv_open_device(const char *);
@@ -507,6 +508,15 @@ dispatch_dirty_region(ScrnInfoPtr scrn,
/* TODO query connector property to see if this is needed */
ret = drmModeDirtyFB(ms->fd, fb_id, clip, num_cliprects);
+
+ /* if we're swamping it with work, try one at a time */
+ if (ret == -EINVAL) {
+ for (i = 0; i < num_cliprects; i++) {
+ if ((ret = drmModeDirtyFB(ms->fd, fb_id, &clip[i], 1)) < 0)
+ break;
+ }
+ }
+
free(clip);
DamageEmpty(damage);
}
@@ -630,7 +640,6 @@ FreeRec(ScrnInfoPtr pScrn)
ms = modesettingPTR(pScrn);
if (!ms)
return;
- pScrn->driverPrivate = NULL;
if (ms->fd > 0) {
modesettingEntPtr ms_ent;
@@ -651,6 +660,7 @@ FreeRec(ScrnInfoPtr pScrn)
ms_ent->fd = 0;
}
}
+ pScrn->driverPrivate = NULL;
free(ms->drmmode.Options);
free(ms);
@@ -668,6 +678,11 @@ try_enable_glamor(ScrnInfoPtr pScrn)
ms->drmmode.glamor = FALSE;
#ifdef GLAMOR
+ if (ms->drmmode.force_24_32) {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Cannot use glamor with 24bpp packed fb\n");
+ return;
+ }
+
if (!do_glamor) {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "glamor disabled\n");
return;
@@ -815,23 +830,17 @@ PreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
ms->drmmode.fd = ms->fd;
- pScrn->capabilities = 0;
-#ifdef DRM_CAP_PRIME
- ret = drmGetCap(ms->fd, DRM_CAP_PRIME, &value);
- if (ret == 0) {
- if (value & DRM_PRIME_CAP_IMPORT)
- pScrn->capabilities |= RR_Capability_SinkOutput;
-#if GLAMOR_HAS_GBM_LINEAR
- if (value & DRM_PRIME_CAP_EXPORT)
- pScrn->capabilities |= RR_Capability_SourceOutput;
-#endif
- }
-#endif
drmmode_get_default_bpp(pScrn, &ms->drmmode, &defaultdepth, &defaultbpp);
- if (defaultdepth == 24 && defaultbpp == 24)
- bppflags = SupportConvert32to24 | Support24bppFb;
- else
- bppflags = PreferConvert24to32 | SupportConvert24to32 | Support32bppFb;
+ if (defaultdepth == 24 && defaultbpp == 24) {
+ ms->drmmode.force_24_32 = TRUE;
+ ms->drmmode.kbpp = 24;
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Using 24bpp hw front buffer with 32bpp shadow\n");
+ defaultbpp = 32;
+ } else {
+ ms->drmmode.kbpp = defaultbpp;
+ }
+ bppflags = PreferConvert24to32 | SupportConvert24to32 | Support32bppFb;
if (!xf86SetDepthBpp
(pScrn, defaultdepth, defaultdepth, defaultbpp, bppflags))
@@ -885,23 +894,45 @@ PreInit(ScrnInfoPtr pScrn, int flags)
} else {
Bool prefer_shadow = TRUE;
- ret = drmGetCap(ms->fd, DRM_CAP_DUMB_PREFER_SHADOW, &value);
- if (!ret) {
- prefer_shadow = !!value;
- }
+ if (ms->drmmode.force_24_32) {
+ prefer_shadow = TRUE;
+ ms->drmmode.shadow_enable = TRUE;
+ } else {
+ ret = drmGetCap(ms->fd, DRM_CAP_DUMB_PREFER_SHADOW, &value);
+ if (!ret) {
+ prefer_shadow = !!value;
+ }
- ms->drmmode.shadow_enable = xf86ReturnOptValBool(ms->drmmode.Options,
- OPTION_SHADOW_FB,
- prefer_shadow);
+ ms->drmmode.shadow_enable =
+ xf86ReturnOptValBool(ms->drmmode.Options, OPTION_SHADOW_FB,
+ prefer_shadow);
+ }
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"ShadowFB: preferred %s, enabled %s\n",
prefer_shadow ? "YES" : "NO",
+ ms->drmmode.force_24_32 ? "FORCE" :
ms->drmmode.shadow_enable ? "YES" : "NO");
ms->drmmode.pageflip = FALSE;
}
+ pScrn->capabilities = 0;
+#ifdef DRM_CAP_PRIME
+ ret = drmGetCap(ms->fd, DRM_CAP_PRIME, &value);
+ if (ret == 0) {
+ if (value & DRM_PRIME_CAP_IMPORT) {
+ pScrn->capabilities |= RR_Capability_SinkOutput;
+ if (ms->drmmode.glamor)
+ pScrn->capabilities |= RR_Capability_SinkOffload;
+ }
+#if GLAMOR_HAS_GBM_LINEAR
+ if (value & DRM_PRIME_CAP_EXPORT && ms->drmmode.glamor)
+ pScrn->capabilities |= RR_Capability_SourceOutput | RR_Capability_SourceOffload;
+#endif
+ }
+#endif
+
if (drmmode_pre_init(pScrn, &ms->drmmode, pScrn->bitsPerPixel / 8) == FALSE) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "KMS setup failed\n");
goto fail;
@@ -952,7 +983,7 @@ msShadowWindow(ScreenPtr screen, CARD32 row, CARD32 offset, int mode,
modesettingPtr ms = modesettingPTR(pScrn);
int stride;
- stride = (pScrn->displayWidth * pScrn->bitsPerPixel) / 8;
+ stride = (pScrn->displayWidth * ms->drmmode.kbpp) / 8;
*size = stride;
return ((uint8_t *) ms->drmmode.front_bo.dumb->ptr + row * stride + offset);
@@ -973,6 +1004,7 @@ CreateScreenResources(ScreenPtr pScreen)
Bool ret;
void *pixels = NULL;
int err;
+ Bool use_ms_shadow = ms->drmmode.force_24_32 && pScrn->bitsPerPixel == 32;
pScreen->CreateScreenResources = ms->createScreenResources;
ret = pScreen->CreateScreenResources(pScreen);
@@ -1004,7 +1036,8 @@ CreateScreenResources(ScreenPtr pScreen)
FatalError("Couldn't adjust screen pixmap\n");
if (ms->drmmode.shadow_enable) {
- if (!shadowAdd(pScreen, rootPixmap, msUpdatePacked,
+ if (!shadowAdd(pScreen, rootPixmap,
+ use_ms_shadow ? ms_shadowUpdate32to24 : msUpdatePacked,
msShadowWindow, 0, 0))
return FALSE;
}
diff --git a/xserver/hw/xfree86/drivers/modesetting/drmmode_display.c b/xserver/hw/xfree86/drivers/modesetting/drmmode_display.c
index bb5f56ed5..9c54310ac 100644
--- a/xserver/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/xserver/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -344,24 +344,8 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
int output_count = 0;
Bool ret = TRUE;
int i;
- uint32_t fb_id;
+ uint32_t fb_id = 0;
drmModeModeInfo kmode;
- int height;
-
- height = pScrn->virtualY;
-
- if (drmmode->fb_id == 0) {
- ret = drmModeAddFB(drmmode->fd,
- pScrn->virtualX, height,
- pScrn->depth, pScrn->bitsPerPixel,
- drmmode_bo_get_pitch(&drmmode->front_bo),
- drmmode_bo_get_handle(&drmmode->front_bo),
- &drmmode->fb_id);
- if (ret < 0) {
- ErrorF("failed to add fb %d\n", ret);
- return FALSE;
- }
- }
saved_mode = crtc->mode;
saved_x = crtc->x;
@@ -420,6 +404,22 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
fb_id = drmmode_crtc->rotate_fb_id;
x = y = 0;
}
+
+ if (fb_id == 0) {
+ ret = drmModeAddFB(drmmode->fd,
+ pScrn->virtualX, pScrn->virtualY,
+ pScrn->depth, drmmode->kbpp,
+ drmmode_bo_get_pitch(&drmmode->front_bo),
+ drmmode_bo_get_handle(&drmmode->front_bo),
+ &drmmode->fb_id);
+ if (ret < 0) {
+ ErrorF("failed to add fb %d\n", ret);
+ ret = FALSE;
+ goto done;
+ }
+ fb_id = drmmode->fb_id;
+ }
+
if (drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
fb_id, x, y, output_ids, output_count, &kmode)) {
xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR,
@@ -484,7 +484,7 @@ drmmode_set_cursor_position(xf86CrtcPtr crtc, int x, int y)
drmModeMoveCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, x, y);
}
-static void
+static Bool
drmmode_set_cursor(xf86CrtcPtr crtc)
{
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
@@ -503,9 +503,9 @@ drmmode_set_cursor(xf86CrtcPtr crtc)
handle, ms->cursor_width, ms->cursor_height,
cursor->bits->xhot, cursor->bits->yhot);
if (!ret)
- return;
- if (ret == -EINVAL)
- use_set_cursor2 = FALSE;
+ return TRUE;
+
+ use_set_cursor2 = FALSE;
}
ret = drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, handle,
@@ -518,16 +518,28 @@ drmmode_set_cursor(xf86CrtcPtr crtc)
cursor_info->MaxWidth = cursor_info->MaxHeight = 0;
drmmode_crtc->drmmode->sw_cursor = TRUE;
/* fallback to swcursor */
+ return FALSE;
}
+ return TRUE;
}
-static void
-drmmode_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
+static void drmmode_hide_cursor(xf86CrtcPtr crtc);
+
+/*
+ * The load_cursor_argb_check driver hook.
+ *
+ * Sets the hardware cursor by calling the drmModeSetCursor2 ioctl.
+ * On failure, returns FALSE indicating that the X server should fall
+ * back to software cursors.
+ */
+static Bool
+drmmode_load_cursor_argb_check(xf86CrtcPtr crtc, CARD32 *image)
{
modesettingPtr ms = modesettingPTR(crtc->scrn);
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
int i;
uint32_t *ptr;
+ static Bool first_time = TRUE;
/* cursor should be mapped already */
ptr = (uint32_t *) (drmmode_crtc->cursor_bo->ptr);
@@ -535,8 +547,14 @@ drmmode_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
for (i = 0; i < ms->cursor_width * ms->cursor_height; i++)
ptr[i] = image[i]; // cpu_to_le32(image[i]);
- if (drmmode_crtc->cursor_up)
- drmmode_set_cursor(crtc);
+ if (drmmode_crtc->cursor_up || first_time) {
+ Bool ret = drmmode_set_cursor(crtc);
+ if (!drmmode_crtc->cursor_up)
+ drmmode_hide_cursor(crtc);
+ first_time = FALSE;
+ return ret;
+ }
+ return TRUE;
}
static void
@@ -577,11 +595,17 @@ drmmode_set_scanout_pixmap_gpu(xf86CrtcPtr crtc, PixmapPtr ppix)
PixmapPtr screenpix = screen->GetScreenPixmap(screen);
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
+ drmmode_ptr drmmode = drmmode_crtc->drmmode;
int c, total_width = 0, max_height = 0, this_x = 0;
if (!ppix) {
- if (crtc->randr_crtc->scanout_pixmap)
+ if (crtc->randr_crtc->scanout_pixmap) {
PixmapStopDirtyTracking(crtc->randr_crtc->scanout_pixmap, screenpix);
+ if (drmmode->fb_id) {
+ drmModeRmFB(drmmode->fd, drmmode->fb_id);
+ drmmode->fb_id = 0;
+ }
+ }
drmmode_crtc->prime_pixmap_x = 0;
return TRUE;
}
@@ -679,14 +703,14 @@ drmmode_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
int ret;
if (!drmmode_create_bo(drmmode, &drmmode_crtc->rotate_bo,
- width, height, crtc->scrn->bitsPerPixel)) {
+ width, height, drmmode->kbpp)) {
xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR,
"Couldn't allocate shadow memory for rotated CRTC\n");
return NULL;
}
ret = drmModeAddFB(drmmode->fd, width, height, crtc->scrn->depth,
- crtc->scrn->bitsPerPixel,
+ drmmode->kbpp,
drmmode_bo_get_pitch(&drmmode_crtc->rotate_bo),
drmmode_bo_get_handle(&drmmode_crtc->rotate_bo),
&drmmode_crtc->rotate_fb_id);
@@ -757,7 +781,7 @@ drmmode_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
rotate_pixmap = drmmode_create_pixmap_header(scrn->pScreen,
width, height,
scrn->depth,
- scrn->bitsPerPixel,
+ drmmode->kbpp,
rotate_pitch,
pPixData);
@@ -799,7 +823,7 @@ static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
.set_cursor_position = drmmode_set_cursor_position,
.show_cursor = drmmode_show_cursor,
.hide_cursor = drmmode_hide_cursor,
- .load_cursor_argb = drmmode_load_cursor_argb,
+ .load_cursor_argb_check = drmmode_load_cursor_argb_check,
.gamma_set = drmmode_crtc_gamma_set,
.destroy = NULL, /* XXX */
@@ -1643,6 +1667,7 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
uint32_t old_fb_id;
int i, pitch, old_width, old_height, old_pitch;
int cpp = (scrn->bitsPerPixel + 7) / 8;
+ int kcpp = (drmmode->kbpp + 7) / 8;
PixmapPtr ppix = screen->GetScreenPixmap(screen);
void *new_pixels = NULL;
@@ -1664,14 +1689,14 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
old_front = drmmode->front_bo;
if (!drmmode_create_bo(drmmode, &drmmode->front_bo,
- width, height, scrn->bitsPerPixel))
+ width, height, drmmode->kbpp))
goto fail;
pitch = drmmode_bo_get_pitch(&drmmode->front_bo);
scrn->virtualX = width;
scrn->virtualY = height;
- scrn->displayWidth = pitch / cpp;
+ scrn->displayWidth = pitch / kcpp;
ret = drmModeAddFB(drmmode->fd, width, height, scrn->depth,
scrn->bitsPerPixel, pitch,
@@ -1687,8 +1712,7 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
}
if (drmmode->shadow_enable) {
- uint32_t size = scrn->displayWidth * scrn->virtualY *
- ((scrn->bitsPerPixel + 7) >> 3);
+ uint32_t size = scrn->displayWidth * scrn->virtualY * cpp;
new_pixels = calloc(1, size);
if (new_pixels == NULL)
goto fail;
@@ -1696,7 +1720,8 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
drmmode->shadow_fb = new_pixels;
}
- screen->ModifyPixmapHeader(ppix, width, height, -1, -1, pitch, new_pixels);
+ screen->ModifyPixmapHeader(ppix, width, height, -1, -1,
+ scrn->displayWidth * cpp, new_pixels);
if (!drmmode_glamor_handle_new_screen_pixmap(drmmode))
goto fail;
@@ -1723,7 +1748,7 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
drmmode->front_bo = old_front;
scrn->virtualX = old_width;
scrn->virtualY = old_height;
- scrn->displayWidth = old_pitch / cpp;
+ scrn->displayWidth = old_pitch / kcpp;
drmmode->fb_id = old_fb_id;
return FALSE;
@@ -2079,7 +2104,7 @@ drmmode_create_initial_bos(ScrnInfoPtr pScrn, drmmode_ptr drmmode)
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
int width;
int height;
- int bpp = pScrn->bitsPerPixel;
+ int bpp = ms->drmmode.kbpp;
int i;
int cpp = (bpp + 7) / 8;
diff --git a/xserver/hw/xfree86/drivers/modesetting/drmmode_display.h b/xserver/hw/xfree86/drivers/modesetting/drmmode_display.h
index fca68a6fe..9139ed4c2 100644
--- a/xserver/hw/xfree86/drivers/modesetting/drmmode_display.h
+++ b/xserver/hw/xfree86/drivers/modesetting/drmmode_display.h
@@ -48,6 +48,7 @@ typedef struct {
unsigned fb_id;
drmModeFBPtr mode_fb;
int cpp;
+ int kbpp;
ScrnInfoPtr scrn;
struct gbm_device *gbm;
@@ -67,6 +68,7 @@ typedef struct {
Bool shadow_enable;
/** Is Option "PageFlip" enabled? */
Bool pageflip;
+ Bool force_24_32;
void *shadow_fb;
/**
diff --git a/xserver/hw/xfree86/drivers/modesetting/present.c b/xserver/hw/xfree86/drivers/modesetting/present.c
index d65c8c845..9a596de75 100644
--- a/xserver/hw/xfree86/drivers/modesetting/present.c
+++ b/xserver/hw/xfree86/drivers/modesetting/present.c
@@ -626,6 +626,15 @@ ms_present_unflip(ScreenPtr screen, uint64_t event_id)
if (!crtc->enabled)
continue;
+ /* info->drmmode.fb_id still points to the FB for the last flipped BO.
+ * Clear it, drmmode_set_mode_major will re-create it
+ */
+ if (drmmode_crtc->drmmode->fb_id) {
+ drmModeRmFB(drmmode_crtc->drmmode->fd,
+ drmmode_crtc->drmmode->fb_id);
+ drmmode_crtc->drmmode->fb_id = 0;
+ }
+
if (drmmode_crtc->dpms_mode == DPMSModeOn)
crtc->funcs->set_mode_major(crtc, &crtc->mode, crtc->rotation,
crtc->x, crtc->y);
diff --git a/xserver/hw/xfree86/drivers/modesetting/sh3224.c b/xserver/hw/xfree86/drivers/modesetting/sh3224.c
new file mode 100644
index 000000000..a64a1031e
--- /dev/null
+++ b/xserver/hw/xfree86/drivers/modesetting/sh3224.c
@@ -0,0 +1,140 @@
+/*
+ *
+ * Copyright © 2000 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include "dix-config.h"
+#endif
+
+#include "shadow.h"
+#include "fb.h"
+
+#include "sh3224.h"
+#define Get8(a) ((CARD32) READ(a))
+
+#if BITMAP_BIT_ORDER == MSBFirst
+#define Get24(a) ((Get8(a) << 16) | (Get8((a)+1) << 8) | Get8((a)+2))
+#define Put24(a,p) ((WRITE((a+0), (CARD8) ((p) >> 16))), \
+ (WRITE((a+1), (CARD8) ((p) >> 8))), \
+ (WRITE((a+2), (CARD8) (p))))
+#else
+#define Get24(a) (Get8(a) | (Get8((a)+1) << 8) | (Get8((a)+2)<<16))
+#define Put24(a,p) ((WRITE((a+0), (CARD8) (p))), \
+ (WRITE((a+1), (CARD8) ((p) >> 8))), \
+ (WRITE((a+2), (CARD8) ((p) >> 16))))
+#endif
+
+static void
+sh24_32BltLine(CARD8 *srcLine,
+ CARD8 *dstLine,
+ int width)
+{
+ CARD32 *src;
+ CARD8 *dst;
+ int w;
+ CARD32 pixel;
+
+ src = (CARD32 *) srcLine;
+ dst = dstLine;
+ w = width;
+
+ while (((long)dst & 3) && w) {
+ w--;
+ pixel = READ(src++);
+ Put24(dst, pixel);
+ dst += 3;
+ }
+ /* Do four aligned pixels at a time */
+ while (w >= 4) {
+ CARD32 s0, s1;
+
+ s0 = READ(src++);
+ s1 = READ(src++);
+#if BITMAP_BIT_ORDER == LSBFirst
+ WRITE((CARD32 *) dst, (s0 & 0xffffff) | (s1 << 24));
+#else
+ WRITE((CARD32 *) dst, (s0 << 8) | ((s1 & 0xffffff) >> 16));
+#endif
+ s0 = READ(src++);
+#if BITMAP_BIT_ORDER == LSBFirst
+ WRITE((CARD32 *) (dst + 4),
+ ((s1 & 0xffffff) >> 8) | (s0 << 16));
+#else
+ WRITE((CARD32 *) (dst + 4),
+ (s1 << 16) | ((s0 & 0xffffff) >> 8));
+#endif
+ s1 = READ(src++);
+#if BITMAP_BIT_ORDER == LSBFirst
+ WRITE((CARD32 *) (dst + 8),
+ ((s0 & 0xffffff) >> 16) | (s1 << 8));
+#else
+ WRITE((CARD32 *) (dst + 8), (s0 << 24) | (s1 & 0xffffff));
+#endif
+ dst += 12;
+ w -= 4;
+ }
+ while (w--) {
+ pixel = READ(src++);
+ Put24(dst, pixel);
+ dst += 3;
+ }
+}
+
+void
+ms_shadowUpdate32to24(ScreenPtr pScreen, shadowBufPtr pBuf)
+{
+ RegionPtr damage = shadowDamage(pBuf);
+ PixmapPtr pShadow = pBuf->pPixmap;
+ int nbox = RegionNumRects(damage);
+ BoxPtr pbox = RegionRects(damage);
+ FbStride shaStride;
+ int shaBpp;
+ _X_UNUSED int shaXoff, shaYoff;
+ int x, y, w, h;
+ CARD32 winSize;
+ FbBits *shaBase, *shaLine;
+ CARD8 *winBase = NULL, *winLine;
+
+ fbGetDrawable(&pShadow->drawable, shaBase, shaStride, shaBpp, shaXoff,
+ shaYoff);
+
+ /* just get the initial window base + stride */
+ winBase = (*pBuf->window)(pScreen, 0, 0, SHADOW_WINDOW_WRITE,
+ &winSize, pBuf->closure);
+
+ while (nbox--) {
+ x = pbox->x1;
+ y = pbox->y1;
+ w = pbox->x2 - pbox->x1;
+ h = pbox->y2 - pbox->y1;
+
+ winLine = winBase + y * winSize + (x * 3);
+ shaLine = shaBase + y * shaStride + ((x * shaBpp) >> FB_SHIFT);
+
+ while (h--) {
+ sh24_32BltLine((CARD8 *)shaLine, (CARD8 *)winLine, w);
+ winLine += winSize;
+ shaLine += shaStride;
+ }
+ pbox++;
+ }
+}
diff --git a/xserver/hw/xfree86/drivers/modesetting/sh3224.h b/xserver/hw/xfree86/drivers/modesetting/sh3224.h
new file mode 100644
index 000000000..fc301f99d
--- /dev/null
+++ b/xserver/hw/xfree86/drivers/modesetting/sh3224.h
@@ -0,0 +1,7 @@
+#ifndef SH3224_H
+#define SH3224_H
+
+void
+ms_shadowUpdate32to24(ScreenPtr pScreen, shadowBufPtr pBuf);
+
+#endif
diff --git a/xserver/hw/xfree86/exa/Makefile.in b/xserver/hw/xfree86/exa/Makefile.in
index 04ae18677..75dcf8101 100644
--- a/xserver/hw/xfree86/exa/Makefile.in
+++ b/xserver/hw/xfree86/exa/Makefile.in
@@ -213,6 +213,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -444,6 +446,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/exa/man/Makefile.in b/xserver/hw/xfree86/exa/man/Makefile.in
index b12b3d910..b9e6749b2 100644
--- a/xserver/hw/xfree86/exa/man/Makefile.in
+++ b/xserver/hw/xfree86/exa/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/fbdevhw/Makefile.in b/xserver/hw/xfree86/fbdevhw/Makefile.in
index 7bb200df5..1a8be7cea 100644
--- a/xserver/hw/xfree86/fbdevhw/Makefile.in
+++ b/xserver/hw/xfree86/fbdevhw/Makefile.in
@@ -216,6 +216,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -447,6 +449,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/fbdevhw/man/Makefile.in b/xserver/hw/xfree86/fbdevhw/man/Makefile.in
index 7d47eed11..701ab842f 100644
--- a/xserver/hw/xfree86/fbdevhw/man/Makefile.in
+++ b/xserver/hw/xfree86/fbdevhw/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/glamor_egl/Makefile.in b/xserver/hw/xfree86/glamor_egl/Makefile.in
index 69ba6498d..7ac2863df 100644
--- a/xserver/hw/xfree86/glamor_egl/Makefile.in
+++ b/xserver/hw/xfree86/glamor_egl/Makefile.in
@@ -197,6 +197,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -428,6 +430,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/i2c/Makefile.in b/xserver/hw/xfree86/i2c/Makefile.in
index c7cb2d42f..e4c8afb4d 100644
--- a/xserver/hw/xfree86/i2c/Makefile.in
+++ b/xserver/hw/xfree86/i2c/Makefile.in
@@ -173,6 +173,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -404,6 +406,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/int10/Makefile.in b/xserver/hw/xfree86/int10/Makefile.in
index 3a43e119b..5ffaf4524 100644
--- a/xserver/hw/xfree86/int10/Makefile.in
+++ b/xserver/hw/xfree86/int10/Makefile.in
@@ -192,6 +192,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -423,6 +425,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/int10/xf86x86emu.c b/xserver/hw/xfree86/int10/xf86x86emu.c
index 4b0a13090..1dc695d2c 100644
--- a/xserver/hw/xfree86/int10/xf86x86emu.c
+++ b/xserver/hw/xfree86/int10/xf86x86emu.c
@@ -7,13 +7,13 @@
#include <xorg-config.h>
#endif
-#include <x86emu.h>
#include "xf86.h"
#include "xf86_OSproc.h"
#include "xf86Pci.h"
#define _INT10_PRIVATE
#include "xf86int10.h"
#include "int10Defines.h"
+#include <x86emu.h>
#define M _X86EMU_env
diff --git a/xserver/hw/xfree86/loader/Makefile.in b/xserver/hw/xfree86/loader/Makefile.in
index bc09506d0..9f9b743fa 100644
--- a/xserver/hw/xfree86/loader/Makefile.in
+++ b/xserver/hw/xfree86/loader/Makefile.in
@@ -144,6 +144,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -375,6 +377,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/man/Makefile.in b/xserver/hw/xfree86/man/Makefile.in
index 028613db8..c5cad5f62 100644
--- a/xserver/hw/xfree86/man/Makefile.in
+++ b/xserver/hw/xfree86/man/Makefile.in
@@ -144,6 +144,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -392,6 +394,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/man/xorg.conf.man b/xserver/hw/xfree86/man/xorg.conf.man
index 08eb7a93a..e33114dda 100644
--- a/xserver/hw/xfree86/man/xorg.conf.man
+++ b/xserver/hw/xfree86/man/xorg.conf.man
@@ -644,6 +644,10 @@ Default is disabled.
.BI "Option \*qAIGLX\*q \*q" boolean \*q
enable or disable AIGLX. AIGLX is enabled by default.
.TP 7
+.BI "Option \*qIndirectGLX\*q \*q" boolean \*q
+enable or disable indirect GLX contexts. Indirect GLX contexts are disabled by
+default.
+.TP 7
.BI "Option \*qDRI2\*q \*q" boolean \*q
enable or disable DRI2. DRI2 is disabled by default.
.TP 7
diff --git a/xserver/hw/xfree86/modes/Makefile.in b/xserver/hw/xfree86/modes/Makefile.in
index c02b859eb..366ea8de5 100644
--- a/xserver/hw/xfree86/modes/Makefile.in
+++ b/xserver/hw/xfree86/modes/Makefile.in
@@ -179,6 +179,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -410,6 +412,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/modes/xf86Crtc.c b/xserver/hw/xfree86/modes/xf86Crtc.c
index 6091b5e5b..4a13c1329 100644
--- a/xserver/hw/xfree86/modes/xf86Crtc.c
+++ b/xserver/hw/xfree86/modes/xf86Crtc.c
@@ -3285,7 +3285,8 @@ xf86OutputSetEDID(xf86OutputPtr output, xf86MonPtr edid_mon)
}
/* Set the DDC properties for the 'compat' output */
- if (output == xf86CompatOutput(scrn))
+ /* GPU screens don't have a root window */
+ if (output == xf86CompatOutput(scrn) && !scrn->is_gpu)
xf86SetDDCproperties(scrn, edid_mon);
#ifdef RANDR_12_INTERFACE
diff --git a/xserver/hw/xfree86/os-support/Makefile.in b/xserver/hw/xfree86/os-support/Makefile.in
index c5d670217..6f6491589 100644
--- a/xserver/hw/xfree86/os-support/Makefile.in
+++ b/xserver/hw/xfree86/os-support/Makefile.in
@@ -208,6 +208,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -439,6 +441,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/os-support/bsd/Makefile.in b/xserver/hw/xfree86/os-support/bsd/Makefile.in
index 222ce4763..f2ccba2bc 100644
--- a/xserver/hw/xfree86/os-support/bsd/Makefile.in
+++ b/xserver/hw/xfree86/os-support/bsd/Makefile.in
@@ -176,6 +176,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -407,6 +409,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/os-support/bus/Makefile.in b/xserver/hw/xfree86/os-support/bus/Makefile.in
index 711552816..39cb2f575 100644
--- a/xserver/hw/xfree86/os-support/bus/Makefile.in
+++ b/xserver/hw/xfree86/os-support/bus/Makefile.in
@@ -182,6 +182,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -413,6 +415,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/os-support/hurd/Makefile.in b/xserver/hw/xfree86/os-support/hurd/Makefile.in
index ba1b4075a..c250e1092 100644
--- a/xserver/hw/xfree86/os-support/hurd/Makefile.in
+++ b/xserver/hw/xfree86/os-support/hurd/Makefile.in
@@ -145,6 +145,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -376,6 +378,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/os-support/linux/Makefile.in b/xserver/hw/xfree86/os-support/linux/Makefile.in
index aa39ad6e8..0e1ba51bc 100644
--- a/xserver/hw/xfree86/os-support/linux/Makefile.in
+++ b/xserver/hw/xfree86/os-support/linux/Makefile.in
@@ -169,6 +169,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -401,6 +403,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/os-support/linux/lnx_init.c b/xserver/hw/xfree86/os-support/linux/lnx_init.c
index 1ed213c00..ca174938d 100644
--- a/xserver/hw/xfree86/os-support/linux/lnx_init.c
+++ b/xserver/hw/xfree86/os-support/linux/lnx_init.c
@@ -93,7 +93,6 @@ linux_parse_vt_settings(int may_fail)
struct vt_stat vts;
struct stat st;
MessageType from = X_PROBED;
- const char *tty0[] = { "/dev/tty0", "/dev/vc/0", NULL };
/* Only do this once */
static int vt_settings_parsed = 0;
@@ -108,14 +107,7 @@ linux_parse_vt_settings(int may_fail)
from = X_CMDLINE;
}
else {
-
- i = 0;
- while (tty0[i] != NULL) {
- if ((fd = open(tty0[i], O_WRONLY, 0)) >= 0)
- break;
- i++;
- }
-
+ fd = open("/dev/tty0", O_WRONLY, 0);
if (fd < 0) {
if (may_fail)
return 0;
diff --git a/xserver/hw/xfree86/os-support/misc/Makefile.in b/xserver/hw/xfree86/os-support/misc/Makefile.in
index 2b6a35d89..365e81b80 100644
--- a/xserver/hw/xfree86/os-support/misc/Makefile.in
+++ b/xserver/hw/xfree86/os-support/misc/Makefile.in
@@ -143,6 +143,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -374,6 +376,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/os-support/solaris/Makefile.in b/xserver/hw/xfree86/os-support/solaris/Makefile.in
index 01d09f12d..f0879b893 100644
--- a/xserver/hw/xfree86/os-support/solaris/Makefile.in
+++ b/xserver/hw/xfree86/os-support/solaris/Makefile.in
@@ -198,6 +198,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -429,6 +431,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/os-support/stub/Makefile.in b/xserver/hw/xfree86/os-support/stub/Makefile.in
index fd5348ad0..586bb9954 100644
--- a/xserver/hw/xfree86/os-support/stub/Makefile.in
+++ b/xserver/hw/xfree86/os-support/stub/Makefile.in
@@ -145,6 +145,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -376,6 +378,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/parser/Makefile.in b/xserver/hw/xfree86/parser/Makefile.in
index 9de7a0585..cae4f66d8 100644
--- a/xserver/hw/xfree86/parser/Makefile.in
+++ b/xserver/hw/xfree86/parser/Makefile.in
@@ -177,6 +177,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -408,6 +410,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/ramdac/Makefile.in b/xserver/hw/xfree86/ramdac/Makefile.in
index 7b0271f3b..573a448f1 100644
--- a/xserver/hw/xfree86/ramdac/Makefile.in
+++ b/xserver/hw/xfree86/ramdac/Makefile.in
@@ -174,6 +174,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -405,6 +407,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/shadowfb/Makefile.in b/xserver/hw/xfree86/shadowfb/Makefile.in
index 5d5020b35..ee9b642ed 100644
--- a/xserver/hw/xfree86/shadowfb/Makefile.in
+++ b/xserver/hw/xfree86/shadowfb/Makefile.in
@@ -178,6 +178,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -409,6 +411,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/utils/Makefile.in b/xserver/hw/xfree86/utils/Makefile.in
index f4d373e29..b0b6a3cf8 100644
--- a/xserver/hw/xfree86/utils/Makefile.in
+++ b/xserver/hw/xfree86/utils/Makefile.in
@@ -149,6 +149,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -380,6 +382,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/utils/cvt/Makefile.in b/xserver/hw/xfree86/utils/cvt/Makefile.in
index 7c0ae9466..06026a5dc 100644
--- a/xserver/hw/xfree86/utils/cvt/Makefile.in
+++ b/xserver/hw/xfree86/utils/cvt/Makefile.in
@@ -171,6 +171,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -402,6 +404,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/utils/gtf/Makefile.in b/xserver/hw/xfree86/utils/gtf/Makefile.in
index 20b382bc8..0a6b207fb 100644
--- a/xserver/hw/xfree86/utils/gtf/Makefile.in
+++ b/xserver/hw/xfree86/utils/gtf/Makefile.in
@@ -170,6 +170,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -401,6 +403,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/utils/man/Makefile.in b/xserver/hw/xfree86/utils/man/Makefile.in
index 420edf2ab..c4d992635 100644
--- a/xserver/hw/xfree86/utils/man/Makefile.in
+++ b/xserver/hw/xfree86/utils/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/vbe/Makefile.in b/xserver/hw/xfree86/vbe/Makefile.in
index 522c489bd..bb76101b4 100644
--- a/xserver/hw/xfree86/vbe/Makefile.in
+++ b/xserver/hw/xfree86/vbe/Makefile.in
@@ -176,6 +176,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -407,6 +409,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/vgahw/Makefile.in b/xserver/hw/xfree86/vgahw/Makefile.in
index e116a2ccb..f0900e382 100644
--- a/xserver/hw/xfree86/vgahw/Makefile.in
+++ b/xserver/hw/xfree86/vgahw/Makefile.in
@@ -177,6 +177,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -408,6 +410,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/x86emu/Makefile.in b/xserver/hw/xfree86/x86emu/Makefile.in
index f20f4ee56..5f0092583 100644
--- a/xserver/hw/xfree86/x86emu/Makefile.in
+++ b/xserver/hw/xfree86/x86emu/Makefile.in
@@ -145,6 +145,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -376,6 +378,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xfree86/x86emu/x86emu/regs.h b/xserver/hw/xfree86/x86emu/x86emu/regs.h
index c040259fa..3c9469f52 100644
--- a/xserver/hw/xfree86/x86emu/x86emu/regs.h
+++ b/xserver/hw/xfree86/x86emu/x86emu/regs.h
@@ -158,14 +158,6 @@ struct i386_segment_regs {
#define R_FLG spc.FLAGS
/* special registers */
-#define R_SP spc.SP.I16_reg.x_reg
-#define R_BP spc.BP.I16_reg.x_reg
-#define R_SI spc.SI.I16_reg.x_reg
-#define R_DI spc.DI.I16_reg.x_reg
-#define R_IP spc.IP.I16_reg.x_reg
-#define R_FLG spc.FLAGS
-
-/* special registers */
#define R_ESP spc.SP.I32_reg.e_reg
#define R_EBP spc.BP.I32_reg.e_reg
#define R_ESI spc.SI.I32_reg.e_reg
diff --git a/xserver/hw/xnest/Makefile.in b/xserver/hw/xnest/Makefile.in
index a04316e24..90d73c224 100644
--- a/xserver/hw/xnest/Makefile.in
+++ b/xserver/hw/xnest/Makefile.in
@@ -194,6 +194,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -429,6 +431,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xnest/man/Makefile.in b/xserver/hw/xnest/man/Makefile.in
index 34bca49af..0b9799e45 100644
--- a/xserver/hw/xnest/man/Makefile.in
+++ b/xserver/hw/xnest/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xquartz/GL/Makefile.in b/xserver/hw/xquartz/GL/Makefile.in
index 2545ba506..f3e277594 100644
--- a/xserver/hw/xquartz/GL/Makefile.in
+++ b/xserver/hw/xquartz/GL/Makefile.in
@@ -144,6 +144,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -375,6 +377,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xquartz/Makefile.in b/xserver/hw/xquartz/Makefile.in
index 743b4d3a4..89ff93b96 100644
--- a/xserver/hw/xquartz/Makefile.in
+++ b/xserver/hw/xquartz/Makefile.in
@@ -200,6 +200,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -431,6 +433,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xquartz/bundle/Info.plist.cpp b/xserver/hw/xquartz/bundle/Info.plist.cpp
index 06e33f871..374235359 100644
--- a/xserver/hw/xquartz/bundle/Info.plist.cpp
+++ b/xserver/hw/xquartz/bundle/Info.plist.cpp
@@ -19,9 +19,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>2.7.7</string>
+ <string>BUNDLE_VERSION_STRING</string>
<key>CFBundleVersion</key>
- <string>2.7.7</string>
+ <string>BUNDLE_VERSION</string>
<key>CFBundleSignature</key>
<string>x11a</string>
<key>CSResourcesFileMapped</key>
@@ -34,27 +34,14 @@
<key>SUPublicDSAKeyFile</key>
<string>sparkle.pem</string>
<key>SUFeedURL</key>
- <string>http://xquartz.macosforge.org/downloads/sparkle/release.xml</string>
- <key>NSAppTransportSecurity</key>
- <dict>
- <key>NSExceptionDomains</key>
- <dict>
- <key>macosforge.org</key>
- <dict>
- <key>NSIncludesSubdomains</key>
- <true/>
- <key>NSExceptionAllowsInsecureHTTPLoads</key>
- <true/>
- </dict>
- </dict>
- </dict>
+ <string>XQUARTZ_SPARKLE_FEED_URL</string>
#endif
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>NSHumanReadableCopyright</key>
- <string>© 2003-2013 Apple Inc.
+ <string>© 2003-2016 Apple Inc.
© 2003 XFree86 Project, Inc.
-© 2003-2013 X.org Foundation, Inc.
+© 2003-2016 X.org Foundation, Inc.
</string>
<key>NSMainNibFile</key>
<string>main</string>
diff --git a/xserver/hw/xquartz/bundle/Makefile.am b/xserver/hw/xquartz/bundle/Makefile.am
index 074075209..424a7475f 100644
--- a/xserver/hw/xquartz/bundle/Makefile.am
+++ b/xserver/hw/xquartz/bundle/Makefile.am
@@ -1,11 +1,13 @@
include cpprules.in
CPP_FILES_FLAGS = \
+ -DAPPLE_APPLICATION_NAME="$(APPLE_APPLICATION_NAME)" \
-DBUNDLE_ID_PREFIX="$(BUNDLE_ID_PREFIX)" \
- -DAPPLE_APPLICATION_NAME="$(APPLE_APPLICATION_NAME)"
+ -DBUNDLE_VERSION="$(BUNDLE_VERSION)" \
+ -DBUNDLE_VERSION_STRING="$(BUNDLE_VERSION_STRING)"
if XQUARTZ_SPARKLE
-CPP_FILES_FLAGS += -DXQUARTZ_SPARKLE
+CPP_FILES_FLAGS += -DXQUARTZ_SPARKLE -DXQUARTZ_SPARKLE_FEED_URL="$(XQUARTZ_SPARKLE_FEED_URL)"
endif
install-data-hook:
diff --git a/xserver/hw/xquartz/bundle/Makefile.in b/xserver/hw/xquartz/bundle/Makefile.in
index 0f1abb661..4f1aadd47 100644
--- a/xserver/hw/xquartz/bundle/Makefile.in
+++ b/xserver/hw/xquartz/bundle/Makefile.in
@@ -59,7 +59,7 @@ build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/cpprules.in
-@XQUARTZ_SPARKLE_TRUE@am__append_1 = -DXQUARTZ_SPARKLE
+@XQUARTZ_SPARKLE_TRUE@am__append_1 = -DXQUARTZ_SPARKLE -DXQUARTZ_SPARKLE_FEED_URL="$(XQUARTZ_SPARKLE_FEED_URL)"
subdir = hw/xquartz/bundle
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ac_define_dir.m4 \
@@ -148,6 +148,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -379,6 +381,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
@@ -480,8 +483,11 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
-e '/\@\@$$/s/\@\@$$/\\/'
SUFFIXES = .cpp
-CPP_FILES_FLAGS = -DBUNDLE_ID_PREFIX="$(BUNDLE_ID_PREFIX)" \
+CPP_FILES_FLAGS = \
-DAPPLE_APPLICATION_NAME="$(APPLE_APPLICATION_NAME)" \
+ -DBUNDLE_ID_PREFIX="$(BUNDLE_ID_PREFIX)" \
+ -DBUNDLE_VERSION="$(BUNDLE_VERSION)" \
+ -DBUNDLE_VERSION_STRING="$(BUNDLE_VERSION_STRING)" \
$(am__append_1)
noinst_PRE = Info.plist.cpp
noinst_DATA = $(noinst_PRE:plist.cpp=plist)
diff --git a/xserver/hw/xquartz/mach-startup/Makefile.in b/xserver/hw/xquartz/mach-startup/Makefile.in
index 2ae4f8196..d5d107179 100644
--- a/xserver/hw/xquartz/mach-startup/Makefile.in
+++ b/xserver/hw/xquartz/mach-startup/Makefile.in
@@ -179,6 +179,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -410,6 +412,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xquartz/man/Makefile.in b/xserver/hw/xquartz/man/Makefile.in
index 5cebdaadd..4d228d32a 100644
--- a/xserver/hw/xquartz/man/Makefile.in
+++ b/xserver/hw/xquartz/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xquartz/pbproxy/Makefile.in b/xserver/hw/xquartz/pbproxy/Makefile.in
index 44d898cd5..8b1266ca0 100644
--- a/xserver/hw/xquartz/pbproxy/Makefile.in
+++ b/xserver/hw/xquartz/pbproxy/Makefile.in
@@ -174,6 +174,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -405,6 +407,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xquartz/xpr/Makefile.in b/xserver/hw/xquartz/xpr/Makefile.in
index e36e69cad..784c77d17 100644
--- a/xserver/hw/xquartz/xpr/Makefile.in
+++ b/xserver/hw/xquartz/xpr/Makefile.in
@@ -145,6 +145,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -376,6 +378,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xwayland/Makefile.in b/xserver/hw/xwayland/Makefile.in
index 6a2d5cfa9..f87ea0e62 100644
--- a/xserver/hw/xwayland/Makefile.in
+++ b/xserver/hw/xwayland/Makefile.in
@@ -179,6 +179,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -410,6 +412,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xwayland/xwayland-cursor.c b/xserver/hw/xwayland/xwayland-cursor.c
index 76729db9e..74dfe4e7e 100644
--- a/xserver/hw/xwayland/xwayland-cursor.c
+++ b/xserver/hw/xwayland/xwayland-cursor.c
@@ -76,8 +76,20 @@ static Bool
xwl_unrealize_cursor(DeviceIntPtr device, ScreenPtr screen, CursorPtr cursor)
{
PixmapPtr pixmap;
+ struct xwl_seat *xwl_seat;
pixmap = dixGetPrivate(&cursor->devPrivates, &xwl_cursor_private_key);
+ if (!pixmap)
+ return TRUE;
+
+ dixSetPrivate(&cursor->devPrivates, &xwl_cursor_private_key, NULL);
+
+ /* When called from FreeCursor(), device is always NULL */
+ if (device) {
+ xwl_seat = device->public.devicePrivate;
+ if (xwl_seat && cursor == xwl_seat->x_cursor)
+ xwl_seat->x_cursor = NULL;
+ }
return xwl_shm_destroy_pixmap(pixmap);
}
@@ -122,6 +134,9 @@ xwl_seat_set_cursor(struct xwl_seat *xwl_seat)
cursor = xwl_seat->x_cursor;
pixmap = dixGetPrivate(&cursor->devPrivates, &xwl_cursor_private_key);
+ if (!pixmap)
+ return;
+
stride = cursor->bits->width * 4;
if (cursor->bits->argb)
memcpy(pixmap->devPrivate.ptr,
diff --git a/xserver/hw/xwayland/xwayland-glamor-xv.c b/xserver/hw/xwayland/xwayland-glamor-xv.c
index c99418d43..65f93c693 100644
--- a/xserver/hw/xwayland/xwayland-glamor-xv.c
+++ b/xserver/hw/xwayland/xwayland-glamor-xv.c
@@ -336,7 +336,7 @@ xwl_glamor_xv_add_adaptors(ScreenPtr pScreen)
pa = xnfcalloc(1, sizeof(XvAdaptorRec));
pa->pScreen = pScreen;
- pa->type = (unsigned int) (XvWindowMask | XvInputMask | XvImageMask);
+ pa->type = (unsigned char) (XvInputMask | XvImageMask);
pa->ddStopVideo = xwl_glamor_xv_stop_video;
pa->ddPutImage = xwl_glamor_xv_put_image;
pa->ddSetPortAttribute = xwl_glamor_xv_set_port_attribute;
diff --git a/xserver/hw/xwayland/xwayland-glamor.c b/xserver/hw/xwayland/xwayland-glamor.c
index 04aa8f223..a7ae78603 100644
--- a/xserver/hw/xwayland/xwayland-glamor.c
+++ b/xserver/hw/xwayland/xwayland-glamor.c
@@ -298,12 +298,13 @@ xwl_drm_init_egl(struct xwl_screen *xwl_screen)
return;
}
- eglBindAPI(EGL_OPENGL_API);
if (!eglInitialize(xwl_screen->egl_display, &major, &minor)) {
ErrorF("eglInitialize() failed\n");
return;
}
+ eglBindAPI(EGL_OPENGL_API);
+
version = eglQueryString(xwl_screen->egl_display, EGL_VERSION);
ErrorF("glamor: EGL version %s:\n", version);
diff --git a/xserver/hw/xwayland/xwayland-output.c b/xserver/hw/xwayland/xwayland-output.c
index 4903062a1..b66da13cb 100644
--- a/xserver/hw/xwayland/xwayland-output.c
+++ b/xserver/hw/xwayland/xwayland-output.c
@@ -98,7 +98,6 @@ output_handle_mode(void *data, struct wl_output *wl_output, uint32_t flags,
int width, int height, int refresh)
{
struct xwl_output *xwl_output = data;
- RRModePtr randr_mode;
if (!(flags & WL_OUTPUT_MODE_CURRENT))
return;
@@ -111,13 +110,7 @@ output_handle_mode(void *data, struct wl_output *wl_output, uint32_t flags,
xwl_output->height = width;
}
- randr_mode = xwayland_cvt(width, height, refresh / 1000.0, 0, 0);
-
- RROutputSetModes(xwl_output->randr_output, &randr_mode, 1, 1);
-
- RRCrtcNotify(xwl_output->randr_crtc, randr_mode,
- xwl_output->x, xwl_output->y,
- xwl_output->rotation, NULL, 1, &xwl_output->randr_output);
+ xwl_output->refresh = refresh;
}
static inline void
@@ -198,6 +191,14 @@ output_handle_done(void *data, struct wl_output *wl_output)
struct xwl_output *it, *xwl_output = data;
struct xwl_screen *xwl_screen = xwl_output->xwl_screen;
int width = 0, height = 0, has_this_output = 0;
+ RRModePtr randr_mode;
+
+ randr_mode = xwayland_cvt(xwl_output->width, xwl_output->height,
+ xwl_output->refresh / 1000.0, 0, 0);
+ RROutputSetModes(xwl_output->randr_output, &randr_mode, 1, 1);
+ RRCrtcNotify(xwl_output->randr_crtc, randr_mode,
+ xwl_output->x, xwl_output->y,
+ xwl_output->rotation, NULL, 1, &xwl_output->randr_output);
xorg_list_for_each_entry(it, &xwl_screen->output_list, link) {
/* output done event is sent even when some property
diff --git a/xserver/hw/xwayland/xwayland-shm.c b/xserver/hw/xwayland/xwayland-shm.c
index e8545b3be..c199e5efb 100644
--- a/xserver/hw/xwayland/xwayland-shm.c
+++ b/xserver/hw/xwayland/xwayland-shm.c
@@ -140,14 +140,20 @@ os_create_anonymous_file(off_t size)
return -1;
#ifdef HAVE_POSIX_FALLOCATE
- ret = posix_fallocate(fd, 0, size);
+ do {
+ ret = posix_fallocate(fd, 0, size);
+ } while (ret == EINTR);
+
if (ret != 0) {
close(fd);
errno = ret;
return -1;
}
#else
- ret = ftruncate(fd, size);
+ do {
+ ret = ftruncate(fd, size);
+ } while (ret == -1 && errno == EINTR);
+
if (ret < 0) {
close(fd);
return -1;
diff --git a/xserver/hw/xwayland/xwayland.h b/xserver/hw/xwayland/xwayland.h
index 67b30cb94..232d9f45c 100644
--- a/xserver/hw/xwayland/xwayland.h
+++ b/xserver/hw/xwayland/xwayland.h
@@ -147,7 +147,7 @@ struct xwl_output {
struct xwl_screen *xwl_screen;
RROutputPtr randr_output;
RRCrtcPtr randr_crtc;
- int32_t x, y, width, height;
+ int32_t x, y, width, height, refresh;
Rotation rotation;
};
diff --git a/xserver/hw/xwin/Makefile.in b/xserver/hw/xwin/Makefile.in
index b8d2fa5b5..0d47fc69d 100644
--- a/xserver/hw/xwin/Makefile.in
+++ b/xserver/hw/xwin/Makefile.in
@@ -285,6 +285,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -524,6 +526,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xwin/glx/Makefile.in b/xserver/hw/xwin/glx/Makefile.in
index ea05a4786..1f0f9d3bc 100644
--- a/xserver/hw/xwin/glx/Makefile.in
+++ b/xserver/hw/xwin/glx/Makefile.in
@@ -179,6 +179,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -410,6 +412,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xwin/man/Makefile.in b/xserver/hw/xwin/man/Makefile.in
index 61437da9c..15296e721 100644
--- a/xserver/hw/xwin/man/Makefile.in
+++ b/xserver/hw/xwin/man/Makefile.in
@@ -141,6 +141,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -389,6 +391,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/hw/xwin/winclipboard/Makefile.in b/xserver/hw/xwin/winclipboard/Makefile.in
index 31bdcba0e..086d93687 100644
--- a/xserver/hw/xwin/winclipboard/Makefile.in
+++ b/xserver/hw/xwin/winclipboard/Makefile.in
@@ -191,6 +191,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -439,6 +441,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/include/Makefile.in b/xserver/include/Makefile.in
index e4a022840..e7a2100da 100644
--- a/xserver/include/Makefile.in
+++ b/xserver/include/Makefile.in
@@ -153,6 +153,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -384,6 +386,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/include/xkbsrv.h b/xserver/include/xkbsrv.h
index cc6307af5..7e71089f1 100644
--- a/xserver/include/xkbsrv.h
+++ b/xserver/include/xkbsrv.h
@@ -496,6 +496,10 @@ extern _X_EXPORT void XkbUpdateIndicators(DeviceIntPtr /* keybd */ ,
XkbEventCausePtr /* cause */
);
+extern _X_EXPORT void XkbUpdateAllDeviceIndicators(XkbChangesPtr /* changes */,
+ XkbEventCausePtr /* cause */
+ );
+
extern _X_EXPORT XkbSrvLedInfoPtr XkbAllocSrvLedInfo(DeviceIntPtr /* dev */ ,
KbdFeedbackPtr /* kf */ ,
LedFeedbackPtr /* lf */ ,
diff --git a/xserver/man/Makefile.in b/xserver/man/Makefile.in
index 6f2627d39..66e5cb7b2 100644
--- a/xserver/man/Makefile.in
+++ b/xserver/man/Makefile.in
@@ -145,6 +145,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -393,6 +395,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/mi/Makefile.in b/xserver/mi/Makefile.in
index 7be1ee55c..a9ca67705 100644
--- a/xserver/mi/Makefile.in
+++ b/xserver/mi/Makefile.in
@@ -181,6 +181,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -412,6 +414,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/miext/Makefile.in b/xserver/miext/Makefile.in
index 3dc8e93f7..7d4cd3668 100644
--- a/xserver/miext/Makefile.in
+++ b/xserver/miext/Makefile.in
@@ -149,6 +149,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -380,6 +382,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/miext/damage/Makefile.in b/xserver/miext/damage/Makefile.in
index 5c3a9aa48..19171f374 100644
--- a/xserver/miext/damage/Makefile.in
+++ b/xserver/miext/damage/Makefile.in
@@ -174,6 +174,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -405,6 +407,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/miext/rootless/Makefile.in b/xserver/miext/rootless/Makefile.in
index b0e2029ad..44cea556e 100644
--- a/xserver/miext/rootless/Makefile.in
+++ b/xserver/miext/rootless/Makefile.in
@@ -144,6 +144,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -375,6 +377,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/miext/shadow/Makefile.in b/xserver/miext/shadow/Makefile.in
index 1fe16b504..43c7227ff 100644
--- a/xserver/miext/shadow/Makefile.in
+++ b/xserver/miext/shadow/Makefile.in
@@ -180,6 +180,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -411,6 +413,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/miext/sync/Makefile.in b/xserver/miext/sync/Makefile.in
index be3cab391..e711c2a3b 100644
--- a/xserver/miext/sync/Makefile.in
+++ b/xserver/miext/sync/Makefile.in
@@ -179,6 +179,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -410,6 +412,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/os/Makefile.in b/xserver/os/Makefile.in
index e99805462..3aa4eb043 100644
--- a/xserver/os/Makefile.in
+++ b/xserver/os/Makefile.in
@@ -176,6 +176,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -407,6 +409,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/os/access.c b/xserver/os/access.c
index 2499a9f12..dac6f49a6 100644
--- a/xserver/os/access.c
+++ b/xserver/os/access.c
@@ -173,6 +173,10 @@ SOFTWARE.
#endif /* WIN32 */
+#if !defined(WIN32) || defined(__CYGWIN__)
+#include <libgen.h>
+#endif
+
#define X_INCLUDE_NETDB_H
#include <X11/Xos_r.h>
@@ -1081,9 +1085,8 @@ ResetHosts(const char *display)
}
}
-/* Is client on the local host */
-Bool
-ComputeLocalClient(ClientPtr client)
+static Bool
+xtransLocalClient(ClientPtr client)
{
int alen, family, notused;
Xtransaddr *from = NULL;
@@ -1116,6 +1119,41 @@ ComputeLocalClient(ClientPtr client)
return FALSE;
}
+/* Is client on the local host */
+Bool
+ComputeLocalClient(ClientPtr client)
+{
+ const char *cmdname = GetClientCmdName(client);
+
+ if (!xtransLocalClient(client))
+ return FALSE;
+
+ /* If the executable name is "ssh", assume that this client connection
+ * is forwarded from another host via SSH
+ */
+ if (cmdname) {
+ char *cmd = strdup(cmdname);
+ Bool ret;
+
+ /* Cut off any colon and whatever comes after it, see
+ * https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
+ */
+ cmd = strtok(cmd, ":");
+
+#if !defined(WIN32) || defined(__CYGWIN__)
+ ret = strcmp(basename(cmd), "ssh") != 0;
+#else
+ ret = strcmp(cmd, "ssh") != 0;
+#endif
+
+ free(cmd);
+
+ return ret;
+ }
+
+ return TRUE;
+}
+
/*
* Return the uid and all gids of a connected local client
* Allocates a LocalClientCredRec - caller must call FreeLocalClientCreds
diff --git a/xserver/present/Makefile.in b/xserver/present/Makefile.in
index 8a29788fc..4c65cc2ab 100644
--- a/xserver/present/Makefile.in
+++ b/xserver/present/Makefile.in
@@ -175,6 +175,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -406,6 +408,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/present/present.c b/xserver/present/present.c
index 105e2bf47..cebd2f786 100644
--- a/xserver/present/present.c
+++ b/xserver/present/present.c
@@ -353,10 +353,10 @@ present_re_execute(present_vblank_ptr vblank)
static void
present_flip_try_ready(ScreenPtr screen)
{
- present_vblank_ptr vblank, tmp;
+ present_vblank_ptr vblank;
- xorg_list_for_each_entry_safe(vblank, tmp, &present_exec_queue, event_queue) {
- if (vblank->flip_ready) {
+ xorg_list_for_each_entry(vblank, &present_flip_queue, event_queue) {
+ if (vblank->queued) {
present_re_execute(vblank);
return;
}
@@ -517,19 +517,22 @@ present_flip_notify(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
void
present_event_notify(uint64_t event_id, uint64_t ust, uint64_t msc)
{
- present_vblank_ptr vblank, tmp;
+ present_vblank_ptr vblank;
int s;
if (!event_id)
return;
DebugPresent(("\te %lld ust %lld msc %lld\n", event_id, ust, msc));
- xorg_list_for_each_entry_safe(vblank, tmp, &present_exec_queue, event_queue) {
- if (vblank->event_id == event_id) {
+ xorg_list_for_each_entry(vblank, &present_exec_queue, event_queue) {
+ int64_t match = event_id - vblank->event_id;
+ if (match == 0) {
present_execute(vblank, ust, msc);
return;
}
+ if (match < 0)
+ break;
}
- xorg_list_for_each_entry_safe(vblank, tmp, &present_flip_queue, event_queue) {
+ xorg_list_for_each_entry(vblank, &present_flip_queue, event_queue) {
if (vblank->event_id == event_id) {
present_flip_notify(vblank, ust, msc);
return;
@@ -653,6 +656,8 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
DebugPresent(("\tr %lld %p (pending %p unflip %lld)\n",
vblank->event_id, vblank,
screen_priv->flip_pending, screen_priv->unflip_event_id));
+ xorg_list_del(&vblank->event_queue);
+ xorg_list_append(&vblank->event_queue, &present_flip_queue);
vblank->flip_ready = TRUE;
return;
}
@@ -943,7 +948,7 @@ present_pixmap(WindowPtr window,
vblank->pixmap->drawable.id, vblank->window->drawable.id,
target_crtc, vblank->flip, vblank->sync_flip, vblank->serial));
- xorg_list_add(&vblank->event_queue, &present_exec_queue);
+ xorg_list_append(&vblank->event_queue, &present_exec_queue);
vblank->queued = TRUE;
if (msc_is_after(target_msc, crtc_msc)) {
ret = present_queue_vblank(screen, target_crtc, vblank->event_id, target_msc);
@@ -967,7 +972,7 @@ no_mem:
void
present_abort_vblank(ScreenPtr screen, RRCrtcPtr crtc, uint64_t event_id, uint64_t msc)
{
- present_vblank_ptr vblank, tmp;
+ present_vblank_ptr vblank;
if (crtc == NULL)
present_fake_abort_vblank(screen, event_id, msc);
@@ -978,16 +983,20 @@ present_abort_vblank(ScreenPtr screen, RRCrtcPtr crtc, uint64_t event_id, uint64
(*screen_priv->info->abort_vblank) (crtc, event_id, msc);
}
- xorg_list_for_each_entry_safe(vblank, tmp, &present_exec_queue, event_queue) {
- if (vblank->event_id == event_id) {
+ xorg_list_for_each_entry(vblank, &present_exec_queue, event_queue) {
+ int64_t match = event_id - vblank->event_id;
+ if (match == 0) {
xorg_list_del(&vblank->event_queue);
vblank->queued = FALSE;
return;
}
+ if (match < 0)
+ break;
}
- xorg_list_for_each_entry_safe(vblank, tmp, &present_flip_queue, event_queue) {
+ xorg_list_for_each_entry(vblank, &present_flip_queue, event_queue) {
if (vblank->event_id == event_id) {
xorg_list_del(&vblank->event_queue);
+ vblank->queued = FALSE;
return;
}
}
diff --git a/xserver/pseudoramiX/Makefile.in b/xserver/pseudoramiX/Makefile.in
index 4b5846f90..d48e9e756 100644
--- a/xserver/pseudoramiX/Makefile.in
+++ b/xserver/pseudoramiX/Makefile.in
@@ -145,6 +145,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -376,6 +378,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/randr/Makefile.in b/xserver/randr/Makefile.in
index f356475ab..24b99fd24 100644
--- a/xserver/randr/Makefile.in
+++ b/xserver/randr/Makefile.in
@@ -185,6 +185,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -416,6 +418,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/randr/rrprovider.c b/xserver/randr/rrprovider.c
index bbb8e51b3..5329f410b 100644
--- a/xserver/randr/rrprovider.c
+++ b/xserver/randr/rrprovider.c
@@ -325,6 +325,8 @@ ProcRRSetProviderOffloadSink(ClientPtr client)
VERIFY_RR_PROVIDER(stuff->provider, provider, DixReadAccess);
if (!(provider->capabilities & RR_Capability_SourceOffload))
return BadValue;
+ if (!provider->pScreen->isGPU)
+ return BadValue;
if (stuff->sink_provider) {
VERIFY_RR_PROVIDER(stuff->sink_provider, sink_provider, DixReadAccess);
diff --git a/xserver/record/Makefile.in b/xserver/record/Makefile.in
index 74f1f0d2c..9ec17160e 100644
--- a/xserver/record/Makefile.in
+++ b/xserver/record/Makefile.in
@@ -143,6 +143,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -374,6 +376,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/render/Makefile.in b/xserver/render/Makefile.in
index e4b0831cc..f225620d8 100644
--- a/xserver/render/Makefile.in
+++ b/xserver/render/Makefile.in
@@ -176,6 +176,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -407,6 +409,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/render/picture.h b/xserver/render/picture.h
index 087e54d7a..4499a0021 100644
--- a/xserver/render/picture.h
+++ b/xserver/render/picture.h
@@ -211,7 +211,7 @@ typedef pixman_fixed_t xFixed;
/* whether 't' is a well defined not obviously empty trapezoid */
#define xTrapezoidValid(t) ((t)->left.p1.y != (t)->left.p2.y && \
(t)->right.p1.y != (t)->right.p2.y && \
- (int) ((t)->bottom - (t)->top) > 0)
+ ((t)->bottom > (t)->top))
/*
* Standard NTSC luminance conversions:
diff --git a/xserver/test/Makefile.in b/xserver/test/Makefile.in
index ab1f7becd..8111cf50d 100644
--- a/xserver/test/Makefile.in
+++ b/xserver/test/Makefile.in
@@ -330,6 +330,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -561,6 +563,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/test/xi1/Makefile.in b/xserver/test/xi1/Makefile.in
index 3e657ecb1..1be966527 100644
--- a/xserver/test/xi1/Makefile.in
+++ b/xserver/test/xi1/Makefile.in
@@ -168,6 +168,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -399,6 +401,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/test/xi2/Makefile.in b/xserver/test/xi2/Makefile.in
index 0850d63fd..8ca1e57be 100644
--- a/xserver/test/xi2/Makefile.in
+++ b/xserver/test/xi2/Makefile.in
@@ -298,6 +298,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -529,6 +531,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/xfixes/Makefile.in b/xserver/xfixes/Makefile.in
index 2274b4186..ce3b701a1 100644
--- a/xserver/xfixes/Makefile.in
+++ b/xserver/xfixes/Makefile.in
@@ -144,6 +144,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -375,6 +377,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/xkb/Makefile.in b/xserver/xkb/Makefile.in
index a67851c89..1654c0fc2 100644
--- a/xserver/xkb/Makefile.in
+++ b/xserver/xkb/Makefile.in
@@ -183,6 +183,8 @@ BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
+BUNDLE_VERSION = @BUNDLE_VERSION@
+BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
@@ -414,6 +416,7 @@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
+XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
diff --git a/xserver/xkb/xkb.c b/xserver/xkb/xkb.c
index 294cdf8a3..678f82368 100644
--- a/xserver/xkb/xkb.c
+++ b/xserver/xkb/xkb.c
@@ -5692,7 +5692,6 @@ ProcXkbListComponents(ClientPtr client)
}
/***====================================================================***/
-
int
ProcXkbGetKbdByName(ClientPtr client)
{
@@ -5707,6 +5706,7 @@ ProcXkbGetKbdByName(ClientPtr client)
xkbGetGeometryReply grep = { 0 };
XkbComponentNamesRec names = { 0 };
XkbDescPtr xkb, new;
+ XkbEventCauseRec cause;
unsigned char *str;
char mapFile[PATH_MAX];
unsigned len;
@@ -6017,6 +6017,9 @@ ProcXkbGetKbdByName(ClientPtr client)
new = NULL;
}
XkbFreeComponentNames(&names, FALSE);
+ XkbSetCauseXkbReq(&cause, X_kbGetKbdByName, client);
+ XkbUpdateAllDeviceIndicators(NULL, &cause);
+
return Success;
}
diff --git a/xserver/xkb/xkbEvents.c b/xserver/xkb/xkbEvents.c
index 0dbbd6cbc..0bbd66186 100644
--- a/xserver/xkb/xkbEvents.c
+++ b/xserver/xkb/xkbEvents.c
@@ -505,7 +505,7 @@ XkbHandleBell(BOOL force,
if ((!interest) || (force))
return;
- if ((class == 0) || (class == KbdFeedbackClass)) {
+ if (class == KbdFeedbackClass) {
KeybdCtrl *pKeyCtrl = (KeybdCtrl *) pCtrl;
id = pKeyCtrl->id;
diff --git a/xserver/xkb/xkbLEDs.c b/xserver/xkb/xkbLEDs.c
index 4e1600207..5792d9fb7 100644
--- a/xserver/xkb/xkbLEDs.c
+++ b/xserver/xkb/xkbLEDs.c
@@ -304,7 +304,7 @@ XkbUpdateLedAutoState(DeviceIntPtr dev,
return;
}
-static void
+void
XkbUpdateAllDeviceIndicators(XkbChangesPtr changes, XkbEventCausePtr cause)
{
DeviceIntPtr edev;