platform/upstream/xorg-server.git
10 years agoxfree86: Use $(MKDIR_P) for better code portability
Gaetan Nadon [Sat, 28 Sep 2013 19:26:37 +0000 (15:26 -0400)]
xfree86: Use $(MKDIR_P) for better code portability

Still true that we should not use the lower case $(mkdir_p) version.
However, remove the 2005 comment as the MKDIR_P is widely used now.

Reviewed-By: Matt Dew <marcoz@osource.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoUninstall X link and CYGWIN libXorg.exe.a in local install targets
Gaetan Nadon [Sat, 28 Sep 2013 19:26:36 +0000 (15:26 -0400)]
Uninstall X link and CYGWIN libXorg.exe.a in local install targets

It is our duty to uninstall any files and/or directories that we installed
through install-data-local and install-exec-hook.

Currently the X symbolic link to Xorg remains on disk after running
make uninstall.

Note the exception for logdir which is usually shared by other modules.

Reviewed-By: Matt Dew <marcoz@osource.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoXorg binary: use install-exec-hook rather than install-exec-local
Gaetan Nadon [Sat, 28 Sep 2013 19:26:35 +0000 (15:26 -0400)]
Xorg binary: use install-exec-hook rather than install-exec-local

The former was explicitly designed to execute additional code after the binary
has been installed. The latter can be executed in any order, hence it's
current dependency on install-binPROGRAMS as a workaround.

The CYGWIN libXorg.exe.a target is an installation target rather than
a post-installation one, so it should not be done as a hook. It does not depend
on the Xorg executable being installed.

Automake:
"These hooks are run after all other install rules of the appropriate type,
exec or data, have completed. So, for instance, it is possible to perform
post-installation modifications using an install hook".

"With the -local targets, there is no particular guarantee of execution order;
typically, they are run early, but with parallel make, there is no way
to be sure of that".

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoUse $(LN_S) provided by AC_PROG_LN_S macro to create links
Gaetan Nadon [Sat, 28 Sep 2013 19:26:34 +0000 (15:26 -0400)]
Use $(LN_S) provided by AC_PROG_LN_S macro to create links

For better code portability.

Reviewed-By: Matt Dew <marcoz@osource.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoThe Xorg binary is missing the extension $(EXEEXT) in the makefile
Gaetan Nadon [Sat, 28 Sep 2013 19:26:33 +0000 (15:26 -0400)]
The Xorg binary is missing the extension $(EXEEXT) in the makefile

This is not a problem on UNIX platforms, but on CYGWIN it creates a broken
link to Xorg rather than a link to Xorg.exe.

From the CYGWIN log on tinderbox, we can see that the executable Xorg.exe is
installed correctly. We can see the command used to create the link:

(cd /jhbuild/install/[...]/install/bin && rm -f X && ln -s Xorg X)

Note that the "relink" makefile target correctly appends $(EXEEXT) to Xorg.

Reviewed-By: Matt Dew <marcoz@osource.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoMerge remote-tracking branch 'anholt/ephyr-fixes'
Keith Packard [Fri, 4 Oct 2013 21:04:48 +0000 (14:04 -0700)]
Merge remote-tracking branch 'anholt/ephyr-fixes'

10 years agomiext/shadow: missing c2p_core.h breaks "make distcheck" target.
Gaetan Nadon [Mon, 30 Sep 2013 17:30:46 +0000 (13:30 -0400)]
miext/shadow: missing c2p_core.h breaks "make distcheck" target.

Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoMerge remote-tracking branch 'whot/for-keith'
Keith Packard [Fri, 4 Oct 2013 20:54:55 +0000 (13:54 -0700)]
Merge remote-tracking branch 'whot/for-keith'

10 years agoMerge remote-tracking branch 'ajax/xserver-next'
Keith Packard [Fri, 4 Oct 2013 20:50:04 +0000 (13:50 -0700)]
Merge remote-tracking branch 'ajax/xserver-next'

10 years agotest: add new os executable to .gitignore
Gaetan Nadon [Thu, 19 Sep 2013 23:13:35 +0000 (19:13 -0400)]
test: add new os executable to .gitignore

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoxserver: enable InputClass option "GrabDevice" by default for non-seat0 seats (#69478)
Laércio de Sousa [Wed, 18 Sep 2013 16:42:17 +0000 (13:42 -0300)]
xserver: enable InputClass option "GrabDevice" by default for non-seat0 seats (#69478)

This patch contributes to fill the remaining gaps which make
systemd-multi-seat-x wrapper still necessary in some multiseat setups.

This also replaces previous evdev patch that does the same thing
for that particular driver.

When option "-seat" is passed with an argument different from "seat0",
option "GrabDevice" for input devices is enabled by default
(no need of enabling it in xorg.conf's "InputClass" section).

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=69478

Signed-off-by: Laércio de Sousa <lbsousajr@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agodmx: provide enough space for axis mappings
Peter Hutterer [Wed, 18 Sep 2013 06:04:44 +0000 (16:04 +1000)]
dmx: provide enough space for axis mappings

relmap/absmap is used as a evdev-axis-to-x-axis mapping. ABS_X maps to
axis 0, ABS_Y to 1, etc. skipping over non-existing axes so that the third bit
set in the ABS_* range is axis 2, and so on. This requires us to actually have
enough space to have all the ABS_*/REL_* range.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
10 years agodamage: Must translate initial window damage by window offset
Keith Packard [Fri, 20 Sep 2013 19:43:41 +0000 (14:43 -0500)]
damage: Must translate initial window damage by window offset

Damage is reported relative to the drawable origin, but the window
borderClip is absolute. Translate the region by the window position
before reporting damage to adjust.

Reported-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
10 years agoXQuartz: pbproxy: Fix build with -DDEBUG
Jeremy Huddleston Sequoia [Sun, 15 Sep 2013 15:10:33 +0000 (08:10 -0700)]
XQuartz: pbproxy: Fix build with -DDEBUG

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
10 years agoXQuartz: Fix build with moved pseudoramiX
Jeremy Huddleston Sequoia [Sun, 15 Sep 2013 15:07:44 +0000 (08:07 -0700)]
XQuartz: Fix build with moved pseudoramiX

Regression from: e716baedc4d8e52a60f43ef21aba771b340d8c8b

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
10 years agoglx: Fill in some missing attributes from DoGetFBConfigs
Adam Jackson [Tue, 9 Jul 2013 15:19:11 +0000 (11:19 -0400)]
glx: Fill in some missing attributes from DoGetFBConfigs

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Remove a dead comment
Adam Jackson [Thu, 4 Jul 2013 14:31:40 +0000 (10:31 -0400)]
glx: Remove a dead comment

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Catch another failure case in drawable creation
Adam Jackson [Mon, 8 Jul 2013 21:01:13 +0000 (17:01 -0400)]
glx: Catch another failure case in drawable creation

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Remove screen number from __GLXconfig
Adam Jackson [Mon, 8 Jul 2013 16:28:56 +0000 (12:28 -0400)]
glx: Remove screen number from __GLXconfig

Not used.  There's no real reason to match against this instead of
matching against fbconfig or visual ID anyway.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Remove pixmapMode from __GLXconfig
Adam Jackson [Mon, 8 Jul 2013 16:09:13 +0000 (12:09 -0400)]
glx: Remove pixmapMode from __GLXconfig

This has never been filled in with anything meaningful afaict, and you
can't get to it from the client in any event.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Remove support for NV_vertex_program and NV_fragment_program
Adam Jackson [Tue, 2 Jul 2013 16:33:36 +0000 (12:33 -0400)]
glx: Remove support for NV_vertex_program and NV_fragment_program

Mesa doesn't implement these anymore, never really did outside of swrast
anyway.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: realloc style fix in RenderLarge
Adam Jackson [Tue, 2 Jul 2013 14:35:19 +0000 (10:35 -0400)]
glx: realloc style fix in RenderLarge

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Eliminate a small malloc from QueryContext
Adam Jackson [Tue, 2 Jul 2013 14:30:40 +0000 (10:30 -0400)]
glx: Eliminate a small malloc from QueryContext

No reason to have that be a failure path.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Handle failure to create the pixmap backing the pbuffer
Adam Jackson [Fri, 9 Nov 2012 23:05:27 +0000 (18:05 -0500)]
glx: Handle failure to create the pixmap backing the pbuffer

We happen not to sanitize the width/height we pass to CreatePixmap here,
oops.  It's not exploitable, but it's certainly a crash, so let's just
throw BadAlloc instead.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Implement GLX_PRESERVED_CONTENTS drawable attribute
Adam Jackson [Fri, 9 Nov 2012 22:52:12 +0000 (17:52 -0500)]
glx: Implement GLX_PRESERVED_CONTENTS drawable attribute

We back pixmaps with pbuffers so they're never actually clobbered.  Say
so when asked.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Implement GLX_FBCONFIG_ID in GetDrawableAttributes
Adam Jackson [Fri, 9 Nov 2012 22:12:49 +0000 (17:12 -0500)]
glx: Implement GLX_FBCONFIG_ID in GetDrawableAttributes

Required by GLX 1.4, section 3.3.6, "Querying Attributes".

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Implement GLX_{WIDTH,HEIGHT} in GetDrawableAttributes
Adam Jackson [Fri, 9 Nov 2012 22:10:57 +0000 (17:10 -0500)]
glx: Implement GLX_{WIDTH,HEIGHT} in GetDrawableAttributes

Required by GLX 1.4, section 3.3.6, "Querying Attributes".

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Compute number of attributes in GetDrawableAttributes on the fly
Adam Jackson [Fri, 9 Nov 2012 22:07:20 +0000 (17:07 -0500)]
glx: Compute number of attributes in GetDrawableAttributes on the fly

This doesn't have any effect yet, but is needed to properly build the
reply for pbuffers.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Style fixes
Adam Jackson [Fri, 9 Nov 2012 21:48:16 +0000 (16:48 -0500)]
glx: Style fixes

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Pull GLX vendor string out of __GLXscreen
Adam Jackson [Fri, 9 Nov 2012 21:33:54 +0000 (16:33 -0500)]
glx: Pull GLX vendor string out of __GLXscreen

Given how we're currently implementing GLX this can't meaningfully vary
per-screen.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglx: Remove unused bits from the context struct
Adam Jackson [Wed, 31 Oct 2012 14:05:24 +0000 (10:05 -0400)]
glx: Remove unused bits from the context struct

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoglxproxy: Don't track GLCLientm{aj,in}orVersion
Adam Jackson [Thu, 4 Jul 2013 14:08:40 +0000 (10:08 -0400)]
glxproxy: Don't track GLCLientm{aj,in}orVersion

Basically just a port of 62f06b0d to glxproxy.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodmx/glx: Remove unused __glXNop
Adam Jackson [Tue, 30 Oct 2012 22:20:43 +0000 (18:20 -0400)]
dmx/glx: Remove unused __glXNop

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodamageext: Style fix
Adam Jackson [Thu, 22 Aug 2013 20:42:23 +0000 (16:42 -0400)]
damageext: Style fix

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodamage: Remove "post-rendering" hooks
Adam Jackson [Wed, 21 Aug 2013 15:57:24 +0000 (11:57 -0400)]
damage: Remove "post-rendering" hooks

This is a revert of 974db58f5b730c3770ee461665a02dd4334d1dea.  There are
no consumers of this API, we must not need it.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodamage: Don't rewrite Text ops to GlyphBlt ops
Adam Jackson [Wed, 21 Aug 2013 15:13:11 +0000 (11:13 -0400)]
damage: Don't rewrite Text ops to GlyphBlt ops

There's no particularly good reason to, and it breaks Xnest.

Bugzilla: http://bugs.freedesktop.org/2454
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodamage: Simplify DamageUnregister
Adam Jackson [Mon, 26 Aug 2013 18:03:51 +0000 (14:03 -0400)]
damage: Simplify DamageUnregister

You can only register one drawable on a given damage, so there's no
reason to require the caller to specify the drawable, the damage is
enough.  The implementation would do something fairly horrible if you
_did_ pass mismatched drawable and damage, so let's avoid the problem
entirely.

v2: Simplify xf86RotateDestroy even more [anholt]

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodamage: Implicitly unregister on destroy
Adam Jackson [Mon, 26 Aug 2013 17:52:14 +0000 (13:52 -0400)]
damage: Implicitly unregister on destroy

There's no reason not to, and it simplifies quite a few callers.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agofb: Remove unused compatibility wrappers
Adam Jackson [Thu, 18 Oct 2012 18:24:23 +0000 (14:24 -0400)]
fb: Remove unused compatibility wrappers

Originally added in early 2009, not being used elsewhere anymore.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agomipointer: Remove deprecated miPointerCurrentScreen
Adam Jackson [Thu, 18 Oct 2012 18:24:22 +0000 (14:24 -0400)]
mipointer: Remove deprecated miPointerCurrentScreen

The only remaining use was in some debugging code in DMX.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoxfree86: Remove deprecated unimplemented xf86MapReadSideEffects
Adam Jackson [Thu, 18 Oct 2012 18:24:21 +0000 (14:24 -0400)]
xfree86: Remove deprecated unimplemented xf86MapReadSideEffects

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodix: FIXES is not optional
Adam Jackson [Thu, 18 Oct 2012 18:24:20 +0000 (14:24 -0400)]
dix: FIXES is not optional

It's already not optional at configure time, this just makes it so at
build time too.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agovbe: Don't try to load the ddc submodule
Adam Jackson [Thu, 18 Oct 2012 18:24:19 +0000 (14:24 -0400)]
vbe: Don't try to load the ddc submodule

DDC is built into the server now.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agomisprite: Delete some dead private storage
Adam Jackson [Thu, 18 Oct 2012 18:24:18 +0000 (14:24 -0400)]
misprite: Delete some dead private storage

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodri2: Don't bother with xf86LoaderCheckSymbol("DRI2Connect")
Adam Jackson [Tue, 16 Oct 2012 18:56:25 +0000 (14:56 -0400)]
dri2: Don't bother with xf86LoaderCheckSymbol("DRI2Connect")

The DRI2 code is now built-in to the server, even for Xorg.  The only
thing this could protect against is trying to run a libglx built with
DRI2 support against an Xorg built without it, which is firmly in
"doctor it hurts when I do this" territory.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agolist: Avoid using X types
Adam Jackson [Tue, 16 Oct 2012 18:56:23 +0000 (14:56 -0400)]
list: Avoid using X types

In particular, Bool.  This is not an ABI break:

/usr/include/X11/Xdefs.h:typedef int Bool;

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodbe: Fold the window private private into the window private
Adam Jackson [Tue, 16 Oct 2012 18:56:22 +0000 (14:56 -0400)]
dbe: Fold the window private private into the window private

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodbe: Fold midbe reset into dix
Adam Jackson [Tue, 16 Oct 2012 18:56:21 +0000 (14:56 -0400)]
dbe: Fold midbe reset into dix

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodbe: Drop the unused idiom support
Adam Jackson [Tue, 16 Oct 2012 18:56:20 +0000 (14:56 -0400)]
dbe: Drop the unused idiom support

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodamage: Remove the 'damage window' resource type.
Adam Jackson [Tue, 16 Oct 2012 18:56:19 +0000 (14:56 -0400)]
damage: Remove the 'damage window' resource type.

Note that the existing code never actually creates a resource of this
type, so it can't possibly do anything.  This is clearly meant to track
window destruction and clean up any associated Damages, but that's
already handled by miext/damage's DestroyWindow wrapper.

Previous discussion:
http://lists.freedesktop.org/archives/xorg-devel/2011-March/020847.html

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodmx: Remove ShadowFB support
Adam Jackson [Tue, 16 Oct 2012 18:56:18 +0000 (14:56 -0400)]
dmx: Remove ShadowFB support

This has been listed as deprecated ever since DMX was merged.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agodix: Remove a dead parameter from DoGetImage
Adam Jackson [Tue, 16 Oct 2012 18:56:17 +0000 (14:56 -0400)]
dix: Remove a dead parameter from DoGetImage

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agomipointer: Remove EnqueueEvent from miPointerScreenFuncRec
Adam Jackson [Tue, 16 Oct 2012 18:56:16 +0000 (14:56 -0400)]
mipointer: Remove EnqueueEvent from miPointerScreenFuncRec

No DDX overrode this, and we never actually called through that slot
anyway.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agomipointer: Flatten calls to mieqSwitchScreen
Adam Jackson [Tue, 16 Oct 2012 18:56:15 +0000 (14:56 -0400)]
mipointer: Flatten calls to mieqSwitchScreen

No DDX was overriding this.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoos: Factor out some common code in input buffer handling
Adam Jackson [Tue, 16 Oct 2012 18:56:14 +0000 (14:56 -0400)]
os: Factor out some common code in input buffer handling

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoxnest: Ignore GetImage() error in xnestGetImage()
Radek Doulik [Tue, 13 Aug 2013 06:45:47 +0000 (08:45 +0200)]
xnest: Ignore GetImage() error in xnestGetImage()

When an Xnest instance is not viewable it will crash when a client in
that instance calls GetImage. This is because the Xnest server will
itself receives a BadMatch error.
This patch ignores the error. The application which has requested the
image will receive garbage - this however is fully legal according
to the specs as obscured areas will always contain garbage if there
isn't some sort of backing store as discussed in
https://bugs.freedesktop.org/show_bug.cgi?id=9488
The applied patch is a version from Dadek Doulik.

v2: Call XSync() before changing error handlers as suggested by
    Daniel Stone <daniel@fooishbar.org>.

Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Egbert Eich <eich@freedesktop.org>
10 years agoXnest: Implement xnestModifyPixmapHeader
Michal Srb [Tue, 6 Aug 2013 14:56:53 +0000 (16:56 +0200)]
Xnest: Implement xnestModifyPixmapHeader

Xnest variant of ModifyPixmapHeader that creates new Pixmap in parent X
server if it's size is modified from 0x0 to anything bigger.

xnestCreatePixmap doesn't create pixmap in parent X server if it has
dimensions 0x0. If it is later resized and accessed, Xnest will be
aborted with BadDrawable error from parent X server because it will
use XID 0. This happens with ScratchPixmap, for example as used from
XaceCensorImage. Applications using XACE crash Xnest.

Reviewed-by: Adam Jackson <ajax@redhat.com>
10 years agosecurity: Don't count RetainPermanent clients twice
Peter Harris [Mon, 15 Jul 2013 23:44:45 +0000 (19:44 -0400)]
security: Don't count RetainPermanent clients twice

If a RetainPermanent client is subsequently killed by a KillClient
request, the reference count is decremented twice. This can cause the
server to prematurely kill other clients using the same Authorization.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
10 years agomi: Avoid stack smash when drawing dashed lines
Peter Harris [Mon, 15 Jul 2013 23:44:29 +0000 (19:44 -0400)]
mi: Avoid stack smash when drawing dashed lines

X.org Bug 54013 <https://bugs.freedesktop.org/show_bug.cgi?id=54013>

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
10 years agoos: Immediately queue initial WriteToClient
Chris Wilson [Fri, 21 Jun 2013 21:58:31 +0000 (22:58 +0100)]
os: Immediately queue initial WriteToClient

If we immediately put the WriteToClient() buffer into the socket's write
queue, not only do we benefit from sending the response back to client
earlier, but we also avoid the overhead of copying the data into our own
staging buffer and causing extra work in the next select(). The write is
effectively free as typically we may only send one reply per client per
select() call, so the cost of the FlushClient() is the same.

shmget10:   26400 -> 110000
getimage10: 25000 -> 108000

shmget500:   3160 -> 13500
getimage500: 1000 -> 1010

The knock-on effect is that on a mostly idle composited desktop, the CPU
overhead is dominated by the memmove in WriteToClient, which is in turn
eliminated by this patch.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agoephyr: restore GLX support
Laurent Carlier [Fri, 7 Jun 2013 22:43:56 +0000 (00:43 +0200)]
ephyr: restore GLX support

It was removed since version 1.13

Signed-off-by: Sebastien Bacher <seb128@ubuntu.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>
10 years agomiext/sync: Fix multi-screen support in SyncFence initialization
Keith Packard [Wed, 24 Apr 2013 21:58:27 +0000 (14:58 -0700)]
miext/sync: Fix multi-screen support in SyncFence initialization

miSyncSetup was checking to see if the screen private key had been
registered, and if so, skipping the setup of the provided screen.

Instead, it should register the private index only once, but then
initialize the screen unless it has already been initialized. This
latter step allows drivers to initialize the sync private structures
before the Sync extension itself is initialized.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agorandr: Fix a copypasta bug in CRTC confinement
Adam Jackson [Wed, 21 Aug 2013 18:12:52 +0000 (14:12 -0400)]
randr: Fix a copypasta bug in CRTC confinement

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
10 years agoMerge remote-tracking branch 'jturney/master'
Keith Packard [Mon, 9 Sep 2013 22:13:42 +0000 (15:13 -0700)]
Merge remote-tracking branch 'jturney/master'

11 years agoFix typo in configure warning.
Thomas Klausner [Wed, 4 Sep 2013 18:06:07 +0000 (20:06 +0200)]
Fix typo in configure warning.

Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoFix bug in cursor handling.
Thomas Klausner [Wed, 4 Sep 2013 18:05:51 +0000 (20:05 +0200)]
Fix bug in cursor handling.

CreateCursor (Xlib call XCreatePixmapCursor) with a non-bitmap
source pixmap and a None mask is supposed to error out with BadMatch,
but didn't.

From der Mouse <mouse@Rodents-Montreal.ORG>, changed following
comments by Alan Coopersmith <alan.coopersmith@oracle.com>.

Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agokdrive: fix build error on gcc 4.8 for out-of-bounds array access
Chris Clayton [Wed, 4 Sep 2013 05:42:04 +0000 (15:42 +1000)]
kdrive: fix build error on gcc 4.8 for out-of-bounds array access

I'm getting a error building xorg-server-1.14.1.902 with thelatest snapshot
of gcc-4.8:

input.c:225:43: error: array subscript is above array bounds
[-Werror=array-bounds]

This is because kdNumInputFds can become equal to KD_MAX_INPUT_FDS in
KdRegisterFd(). This means that in KdUnregisterFd(), kdInputFds[j + 1] can
be beyond the end of the array.

Signed-off-by: Chris Clayton <chris2553@googlemail.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agokdrive: initialize GLX for xephyr
Sebastien Bacher [Fri, 23 Aug 2013 19:21:44 +0000 (21:21 +0200)]
kdrive: initialize GLX for xephyr

Like commit ac1a60e7b6f06fd075cc5bf55d6bc67206a01d29, re-add
initialization of GLX after it was accidentally dropped from non-Xorg
servers in 5f5bbbe543f65c48ecbb5cce80116a86ca3fbe86.

Signed-off-by: Sebastien Bacher <seb128@ubuntu.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62346
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
11 years agoephyr: Do grab/ungrab for ctrl+shift, not just shift+ctrl.
Eric Anholt [Fri, 23 Aug 2013 18:23:00 +0000 (11:23 -0700)]
ephyr: Do grab/ungrab for ctrl+shift, not just shift+ctrl.

Given that the window title says "ctrl+shift", having pressing those
keys in that order not ungrab you is fairly mean.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Flush the X connection when updating the window title.
Eric Anholt [Fri, 23 Aug 2013 18:19:17 +0000 (11:19 -0700)]
ephyr: Flush the X connection when updating the window title.

Otherwise when you're doing the ctrl-shift mouse grab thing, you
don't know what state you're in until the next rendering occurs.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Use host (HW) cursors by default.
Eric Anholt [Fri, 23 Aug 2013 18:17:14 +0000 (11:17 -0700)]
ephyr: Use host (HW) cursors by default.

Unless you're working on the sw cursor rendering code, you surely want
to have real hardware cursors.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Garbage collect some DOA host window clipping code.
Eric Anholt [Fri, 23 Aug 2013 18:04:22 +0000 (11:04 -0700)]
ephyr: Garbage collect some DOA host window clipping code.

Introduced in 79782726617d4b5a4f9b376f21936d035fc870e1 but never used.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Garbage collect some dead XV clipping code.
Eric Anholt [Fri, 23 Aug 2013 17:56:22 +0000 (10:56 -0700)]
ephyr: Garbage collect some dead XV clipping code.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove the helper libs for each of the optional components.
Eric Anholt [Fri, 23 Aug 2013 17:44:23 +0000 (10:44 -0700)]
ephyr: Remove the helper libs for each of the optional components.

Note that EXTRA_DIST was always unnecessary, because automake notices
conditional compile of source files and includes them.

Copyright header is added because git noted that this was a 61%
rewrite.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove the remaining bits of host/server XV split.
Eric Anholt [Fri, 23 Aug 2013 17:40:52 +0000 (10:40 -0700)]
ephyr: Remove the remaining bits of host/server XV split.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove the host/server split of the actual XV video operations.
Eric Anholt [Fri, 23 Aug 2013 17:14:36 +0000 (10:14 -0700)]
ephyr: Remove the host/server split of the actual XV video operations.

I suspect there's more cleanup possible in ephyrHostXVPutImage() by
sticking a bunch of the args in the port priv earlier.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove another host/server split for XV image formats.
Eric Anholt [Fri, 23 Aug 2013 17:01:23 +0000 (10:01 -0700)]
ephyr: Remove another host/server split for XV image formats.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove the host/server split for video encodings.
Eric Anholt [Fri, 23 Aug 2013 00:00:41 +0000 (17:00 -0700)]
ephyr: Remove the host/server split for video encodings.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove the host/server split for XV formats.
Eric Anholt [Fri, 23 Aug 2013 00:26:21 +0000 (17:26 -0700)]
ephyr: Remove the host/server split for XV formats.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove the host/server split for XV attributes.
Eric Anholt [Fri, 23 Aug 2013 00:21:37 +0000 (17:21 -0700)]
ephyr: Remove the host/server split for XV attributes.

v2: Fix leaks of xcb replies (caught by Julien)

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove the host/server split for XV adaptors.
Eric Anholt [Fri, 23 Aug 2013 00:26:08 +0000 (17:26 -0700)]
ephyr: Remove the host/server split for XV adaptors.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Refactor XV adaptor feature detection.
Eric Anholt [Sun, 18 Aug 2013 18:08:32 +0000 (20:08 +0200)]
ephyr: Refactor XV adaptor feature detection.

This obviously wanted a helper function beforehand, but even more so
now that we have XCB.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Remove some pointless indirection in the XV code.
Eric Anholt [Sun, 18 Aug 2013 18:02:53 +0000 (20:02 +0200)]
ephyr: Remove some pointless indirection in the XV code.

Now that we have XCB on the server side, we don't need to split these
functions out.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Move event processing into ephyr.c.
Eric Anholt [Sun, 18 Aug 2013 16:38:29 +0000 (18:38 +0200)]
ephyr: Move event processing into ephyr.c.

No more extra event structure to translate between hostx.c and
ephyr.c!

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Move the host screen info into the kdrive screen private.
Eric Anholt [Sun, 18 Aug 2013 15:28:08 +0000 (17:28 +0200)]
ephyr: Move the host screen info into the kdrive screen private.

We can include xcb bits from the same place as server headers, so
there's no need to hide them any more.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Rename and use the proper type for what was host_screen->info.
Eric Anholt [Sun, 18 Aug 2013 14:45:06 +0000 (16:45 +0200)]
ephyr: Rename and use the proper type for what was host_screen->info.

Now that we can include server headers in talking to host X, we don't
need to hide any more.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Expose a single function for detecting extensions.
Eric Anholt [Sun, 18 Aug 2013 12:12:45 +0000 (14:12 +0200)]
ephyr: Expose a single function for detecting extensions.

v2: Fix trying to include xcb-dri in the non-dri-build case (Noted by
    Julien)

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoephyr: Drop dead ephyrHostAtomToLocal code.
Eric Anholt [Sun, 18 Aug 2013 12:01:53 +0000 (14:01 +0200)]
ephyr: Drop dead ephyrHostAtomToLocal code.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
11 years agoXephyr: we're not using Xlib anymore, no need to undef _XSERVER64
Julien Cristau [Wed, 20 Oct 2010 18:10:43 +0000 (20:10 +0200)]
Xephyr: we're not using Xlib anymore, no need to undef _XSERVER64

Drop obsolete comments about interaction between Xlib code and that
macro, and stop undefining it.

Signed-off-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agoXephyr: handle errors in event loop
Julien Cristau [Sat, 25 Sep 2010 14:05:07 +0000 (16:05 +0200)]
Xephyr: handle errors in event loop

Signed-off-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
11 years agoXephyr: drop remaining Xlib dependency
Julien Cristau [Fri, 25 Jun 2010 13:20:57 +0000 (14:20 +0100)]
Xephyr: drop remaining Xlib dependency

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Julien Cristau <jcristau@debian.org>
11 years agoXephyr: move glx code to xcb
Julien Cristau [Mon, 21 Jun 2010 13:39:03 +0000 (14:39 +0100)]
Xephyr: move glx code to xcb

v2: Rebase on master, notably adding XCB for
    X_GLXvop_MakeCurrentReadSGI (anholt).
v3: Fix use-after-free (caught by Julien).

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net> (v1)
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
11 years agoXephyr: remove unused DRI1 code
Julien Cristau [Wed, 23 Jun 2010 17:36:00 +0000 (18:36 +0100)]
Xephyr: remove unused DRI1 code

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Signed-off-by: Julien Cristau <jcristau@debian.org>
11 years agoXephyr: move ephyrdri over to xcb
Julien Cristau [Sat, 19 Jun 2010 23:07:08 +0000 (00:07 +0100)]
Xephyr: move ephyrdri over to xcb

Require new xcb-xf86dri to get fixed GetDrawableInfo.

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Signed-off-by: Julien Cristau <jcristau@debian.org>
11 years agoXephyr: use xcb-xv instead of libXv
Julien Cristau [Sun, 20 Jun 2010 10:13:26 +0000 (11:13 +0100)]
Xephyr: use xcb-xv instead of libXv

v2: Massive, conflict-filled rebase.  I think I resolved everything
    right, but this host xv code makes my eyes bleed.  Touch-tested XV
    after the rebase (anholt).

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net> (v1)
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
11 years agoXephyr: use xcb for event handling
Julien Cristau [Mon, 21 Jun 2010 16:20:32 +0000 (17:20 +0100)]
Xephyr: use xcb for event handling

v2: Rebase on indentation changes, squash in a simpler variant of the
    later event compression patch, fix server hang or segfault on
    window close by reimplementing the x_io_error_handler in the new
    XCB event loop (anholt).

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net> (v1)
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
11 years agoXephyr: some more hostx.c xcb-ification
Julien Cristau [Thu, 24 Jun 2010 22:45:16 +0000 (23:45 +0100)]
Xephyr: some more hostx.c xcb-ification

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Julien Cristau <jcristau@debian.org>
11 years agoXephyr: move HostX.visual to xcb
Julien Cristau [Thu, 24 Jun 2010 22:35:15 +0000 (23:35 +0100)]
Xephyr: move HostX.visual to xcb

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Julien Cristau <jcristau@debian.org>
11 years agoXephyr: replace XKeycodeToKeysym with xcb-keysyms
Julien Cristau [Thu, 24 Jun 2010 22:26:48 +0000 (23:26 +0100)]
Xephyr: replace XKeycodeToKeysym with xcb-keysyms

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Julien Cristau <jcristau@debian.org>
11 years agoXephyr: delete unused hostx_get_extension_info function
Julien Cristau [Thu, 24 Jun 2010 22:17:32 +0000 (23:17 +0100)]
Xephyr: delete unused hostx_get_extension_info function

v2: Also remove the prototype (anholt)

Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net> (v1)
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Eric Anholt <eric@anholt.net>