If -parent is given, don't open up a new window if -screen is given as well.
The commandline option -screen allows to set the depth of the embedded
Xephry instance, even though width and height are autoscaled on -parent.
This patch checks for a -screen parameter after -parent and - if one is
found - delays initializing the screen. The parent window id is stored
temporarily but re-set after a -screen argument.
The following command is thus valid:
Xephyr -parent 1234 -screen 640x480@8 -screen 1024x768
It embeds the first 8-bit screen into window 1234 and opens up a new window
for the second screen. Multiple parent arguments are possible, the screens
are embedded in-order.
X.Org Bug 24144 <http://bugs.freedesktop.org/show_bug.cgi?id=24144>
Tested-by: Vic Lee
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 19be992d9d)
Signed-off-by: Keith Packard <keithp@keithp.com>
Removing DGA ended up breaking any drivers calling into the old
xf86DiDGAInit function as it tried to see if DGA was already enabled
and ended up crashing if the VT wasn't completely initialized. Oops.
Also, if the driver initializes DGA itself, have the DiDGA
initialization overwrite that information as the DiDGA code will call
ReInit on mode detect.
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit db98b26ee1)
This removes all rendering and mapping code from xf86DiDGA, leaving
just mode setting and raw input device access. The mapping code didn't
have the offset within /dev/mem for the frame buffer and the pixmap
support assumed that the framebuffer was never reallocated.
(cherry picked from 0b7c6c728c)
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
49b93df8a3 made the hard dependency on
a "fixed" font go away but only Xorg could use the built-ins fonts by
default.
With this commit, all DDXs get "built-ins" appended to their FontPath, not
just Xorg.
Tested with Xorg, Xvfb and Xnest.
(cherry picked from commit f56cbe1ef2)
Signed-off-by: Rémi Cardona <remi@gentoo.org>
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Tested-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
Apparently the kernel can't decide on an API to expose to userspace, so
let's just try both in the hope that one will work.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Acked-by: Michel Dänzer <michel@daenzer.net>
(cherry picked from commit f4350c66b4)
The smart scheduler is designed to minimize scheduler overhead by
increasing the interval between WaitForSomething calls when a single
client is running. However, the software rotation code depends on
its BlockHandler being invoked for screen updates; the long delays
caused by the smart scheduler optimizations means that screen updates
can be delayed a long time as well.
The change is simple -- prevent the smart scheduler from increasing
the scheduling interval while any screen is using software rotation.
(cherry picked from commit e7dd1efef4)
Signed-off-by: Keith Packard <keithp@keithp.com>
The rotation block handler uses regular driver rendering functions to
repaint the screen, if those functions queue commands in the driver,
it's important that the driver block handler be invoked after the
rotated image is drawn.
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 1740cda7a3)
xf86_reload_cursors restores the cursor to the correct position, but
that must adjust for cursor hot spot and frame before calling down to
the hardware function, otherwise the cursor jumps to the wrong
position until it is repositioned by the user.
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 4aab05e3b3)
crtc->funcs->lock is NULL, so it's no use calling it here. Move it down so
it's actually defined before we use it.
Introduced with 6f59a81600.
Tested-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 0de58c88ab)
Signed-off-by: Keith Packard <keithp@keithp.com>
This moves code out of each implementation of set_mode_major and back into
the X server. The real feature here is that the transform is now available
in the crtc for use by either xf86CrtcRotate or whatever the driver wants to
do. Without this change, the transform was lost for drivers providing the
set_mode_major interface.
Note that users of this API will want to stop smashing the transformPresent
field, and could also stop setting mode/x/y/rotation for new enough X servers,
but there's no reason to make that change as it will break things when
running against older X servers.
Signed-off-by: Keith Packard <keithp@keithp.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit 6f59a81600)
Signed-off-by: Keith Packard <keithp@keithp.com>
Shortcut is impossible to implement this way, because we don't know for sure
whether the crtc of an output has changed or not.
(cherry picked from commit cadf65a6e1)
Signed-off-by: Keith Packard <keithp@keithp.com>
c859b736d1 removed duplicate entries for
these from the Makefile, but removed a different set than was done in
master branch, causing xf86Parser.h to not be installed, which in turn
breaks the build of drivers like -ati, -intel & -nv that use xf86Modes.h,
which includes xf86Parser.h
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
The old DRI2 buffer allocation API wasn't great, but there's no reason to
make the server stop working with those drivers. This patch has the
X server adapting to the API provided by the driver, using the new API where
available and falling back to the old API as necessary. A warning will be
placed in the log file when the old API is in use.
(cherry picked from commit 2e2c5b216c)
Signed-off-by: Keith Packard <keithp@keithp.com>
fixes https://bugs.freedesktop.org/show_bug.cgi?id=22547
This bug was fixed in a big clean-up commit in master, which cannot be
backported (see commit b1dac41fb3)
Signed-off-by: Rémi Cardona <remi@gentoo.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
Wrong check for inputInfo.pointer resulted in a SW cursor being rendered when
the pointer left the screen (in a Xinerama setup).
We must call the sprite rendering function if
- SW cursors are enabled, or
- The current device is not the VCP and not attached to the VCP.
Backported from commit 66089e9129 for
server-1.6-branch by Peter Hutterer
Reported-by: Gordon Yuan <GordonYuan@viatech.com.cn>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
Error: Write outside array bounds at Xext/geext.c:406
in function 'GEWindowSetMask' [Symbolic analysis]
In array dereference of cli->nextSib[extension] with index 'extension'
Array size is 128 elements (of 4 bytes each), index <= 128
Error: Buffer overflow at dix/events.c:592
in function 'SetMaskForEvent' [Symbolic analysis]
In array dereference of filters[deviceid] with index 'deviceid'
Array size is 20 elements (of 512 bytes each), index >= 0 and index <= 20
Error: Read buffer overflow at hw/xfree86/loader/loader.c:226
in function 'LoaderOpen' [Symbolic analysis]
In array dereference of refCount[new_handle] with index 'new_handle'
Array size is 256 elements (of 4 bytes each), index >= 1 and index <= 256
These bugs were found using the Parfait source code analysis tool.
For more information see http://research.sun.com/projects/parfait
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit b680bda34d)
(cherry picked from commit 04c9e80f08)
Signed-off-by: Keith Packard <keithp@keithp.com>
Zapping is triggered by xkb these days, so note in the man page that it's the
Terminate_Server action. Since it's XKB, personal preferences towards or
against zapping should be achieved through xkb rulesets.
If Terminate_Server is not in the xkb actions, then we can't zap anyway and we
don't need a default of DontZap "on".
This patch restores the old meaning of DontZap - disallow zapping altogether,
regardless of XKB's current keymap.
Ideally, this patch should be accompanied by b0f64bdab00db652e in
xkeyboard-config.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 737b49199a)
Signed-off-by: Keith Packard <keithp@keithp.com>
For redirected rendering we end up with pixmaps (which the app thinks are
windows) that are double buffered.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: Pierre Willenbrock <pierre@pirsoft.de>
(cherry picked from commit 0d9d3f3e36)
This change implements the protocol for DRI2GetBuffersWithFormat, but
the bulk of the differences are the changes to the extension / driver
interface to make this function work. The old CreateBuffers and
DeleteBuffers routines are replaced with CreateBuffer and DeleteBuffer
(both singular).
This allows drivers to allocate buffers for a drawable one at a time.
As a result, 3D drivers can now allocate the (fake) front-buffer for a
window only when it is needed. Since 3D drivers only ask for the
front-buffer on demand, the real front-buffer is always created. This
allows CopyRegion impelemenations of SwapBuffers to continue working.
As with previous version of this code, if the client asks for the
front-buffer for a window, we instead give it the fake front-buffer.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kristian Høgsberg <krh@redhat.com>
If a front-buffer is requested for a window, add the fake front-buffer
to the list of requested buffers.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit aa2928325f)
Many old monitors zero-fill the detailed descriptors, so check for that
to avoid a useless warning like:
(WW) RADEON(0): Unknown vendor-specific block 0
(cherry picked from commit a2c5ee36b2)
Initialize the depth corresponding to the root window before the
pixmap-only depths. Otherwise you end up with the root window depth in
the depth list twice, which is mildly confusing for clients and
catastrophically confusing for PanoramiXConsolidate().
(cherry picked from commit 45530d1609)
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 1c101d75d4)
Signed-off-by: Keith Packard <keithp@keithp.com>
When xinerama is enabled we don't get randr protocol, but the
driver might still want randr internals
(cherry picked from commit faf7dfa099)
Signed-off-by: Keith Packard <keithp@keithp.com>
The references to this file in the server code were removed in commit dda10c9066
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
(cherry picked from commit d0dd649035)
Signed-off-by: Keith Packard <keithp@keithp.com>
A driver with this hook will take care of preparing the outputs & crtcs,
so calling the prepare functions will just cause unnecessary flicker.
Fixes bug #21077
(cherry picked from commit 94648bb797)
Signed-off-by: Keith Packard <keithp@keithp.com>
This panel reports its vertical size in cm.
X.Org bug#21000 <http://bugs.freedesktop.org/show_bug.cgi?id=21000>
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
(cherry picked from commit b1dab580bd)
Signed-off-by: Keith Packard <keithp@keithp.com>
After the call to xf86ActivateDevice, the new device will be added to
inputInfo.devices. However, if the subsequent call to ActivateDevice
fails, the correponding InputInfoRec for the device is deleted but an
entry still remains in inputInfo.devices. This might lead to a server
crash later on (on InitAndStartDevices for instance) when the device
control proc would be called for an invalid device.
(cherry picked from commit efa31092d6)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
This prevents building an older server with a new dri2proto.h from
resulting in a DRI2 extension module that lies about the version it
supports.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 44227ef1b7)
Signed-off-by: Keith Packard <keithp@keithp.com>
GLX_EXT_texture_from_pixmap was broken since commit
a26c77ff43 ('glx: fix retval checks when failures
occur for drawable creation.')
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
(cherry picked from commit ef320bdd5e)
Extensions section was added in X11R6.8.0 and documented in the release notes:
http://www.x.org/archive/X11R6.8.0/doc/RELNOTES2.html#3
but never made it into the man page.
Also fix a bonus typo.
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
(cherry picked from commit ab61033700)
There is a separate panning region check, but that doesn't work under
transformation, so just pre-clip the mouse coordinates when computing the
panning offsets. This leaves the case where panning constants are changing
unresolved.
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry pick from commit c090f5514d)
Remove this now that clearing is done by repainting with appropriate extend
modes.
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 60a4f1368785d26a49a3ef6df829723ca154c154)
Signed-off-by: Keith Packard <keithp@keithp.com>
Figuring out how to adjust the crtc origin to keep the mouse pointer within
the crtc is a bit of a trick
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 63810aca31b962c93be4796883bde6ccb653e3a9)
Signed-off-by: Keith Packard <keithp@keithp.com>