Boolean option to enable/disable SIGIO handlers is set by the first
of these found:
- UseSIGIO option is set in xorg.conf ServerFlags
- Default set at build time by ./configure --enable-use-sigio-by-default
- Platform default value: Solaris = no, all others = yes
This matches the current settings on all platforms except Solaris.
This reverts Solaris (for now) to the settings used in Xorg 1.6, before
SIGIO support for Solaris was added, due to some system level bugs that
won't be resolved in time for Xorg 1.7 release, but allows us to enable
when those are resolved (or when we need to test if they're resolved).
See http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6879897
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Clears warnings about obsolete headers, but raises minimum
required version of xf86driproto to 2.1.0
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.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.
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>
AllowMouseOpenFail description changed to reflect actual behaviour
and point to AllowEmptyInput for previously described behaviour.
Update default DPMS mode timeouts to match new defaults set
in April 2009 by commit d52fddefae
Update autoloaded module list to match ModuleDefaults in xf86Config.c
Update module subdir list to match stdSubdirs in loadmod.c
Add xorg.conf options that were added to the code:
- XkbDir option added in February 2009
by commit 76f18b94bd
- DRI2 option added in April 2008
by 35982bc109
Remove xorg.conf options that were removed from the code:
- XkbDisable option was removed in January 2009
by commit 40877c6680
- PciProbe/Config options were removed in August 2008
by commit fdf7c747a8
- EstimateSizesAggressively was removed in August 2008
by commit cd1e8f2614
- loadable font modules were removed in July 2008
by commit affec10635
- ModInDev options were removed in December 2008
by commit 6de6ffff35
(Also strips some trailing whitespaces to make git happier.)
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Move misplaced } to get the flow of
if (!ShareVTs) {
VT_ACTIVATE
VT_WAITACTIVE
}
X.Org Bug 11477 <http://bugs.freedesktop.org/show_bug.cgi?id=11477>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Daniel Stone <daniel@fooishbar.org>
So far there are no apparently issues on not closing the fd. But let's do the
right job here.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
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>
In practice, some of the native drivers for older Geode products
have become deprecated due to lack of e.g. libpciaccess upgrade,
but that's OK, since most distributions don't ship them anymore.
In that case, we'll let X server fall back to good old VESA.
Leave consoleFd open over the course of the server, even though any use
of it in this context is likely to be disastrous.
Signed-off-by: Michael Witrant <mike@lepton.fr>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
xf86SlowBCopyToBus and xf86SlowBCopyFromBus cause segfaults on my
system.
Also remove associated slowbcopy_tobus/slowbcopy_frombus macros.
Signed-off-by: Matt Turner <mattst88@gmail.com>
BUSmemcpy.c provides xf86BusToMem and xf86MemToBus, which are are memcpy
wrappers written to avoid glibc's memcpy on Alpha. glibc'c memcpy on
Alpha has improved much since this was written, so it's no longer
needed. Neither function is used inside the xserver, and no module on
my machine uses either as well.
Signed-off-by: Matt Turner <mattst88@gmail.com>
All architectures should be able to use the same unaligned access code,
regardless of whether they need special unaligned access instructions.
Let's let gcc do the heavy lifting.
In the case that we're not using a gcc-compatible compiler, use memmove.
The xserver already requires pixman, so include pixman.h for its uint*_t
types.
Signed-off-by: Matt Turner <mattst88@gmail.com>
Checks for __GNUC__ are superfluous since the only other compiler for
the platform is Compaq C, and it doesn't support GCC style inline
assembly.
Signed-off-by: Matt Turner <mattst88@gmail.com>
Referencing a screen through a drawable only requires GetAttr access.
Treat dri2 drawables as child windows (Add/Remove access).
Treat getting buffers as intent to read/write the drawable.
Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
The spec says x870, but we actually use x864 because that's a real DMT
mode and x870 isn't. This might or might not be wrong, but we should at
least tell the truth.
This adds support for using the libpciaccess interface for
vga arbitration support on top of a kernel which supports it.
Currently patches are queued for kernel 2.6.32 in jbarnes
pci tree, and shipping in Fedora kernel.
Co-authors:
Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This function was used as the default motion event queue API until
including XINPUT_ABI 2 (server 1.5).
This API was broken with 1883485 in May 2008 (wrong casting of parameters)
and isn't in use by input drivers past ABI 3.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
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.
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>
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>
No one is using bus notifications now. We hope that the kernel take care of
this properly.
For other not-so-urgent-notifications (ACPI wakeups, etc) we can just register
a handler on server's scheduler (using xf86AddGeneralHandler). And for
external applications, the "trend" is to use HAL to kick notifications. So
we're already provided of enough notification schemes.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
commit 48ee555833 (OpenSolaris VT support)
broke the autoconfiguration code in xf86AutoConfig.c that uses the
Solaris-specific VIS_GETIDENTIFIER ioctl on a frame buffer device like
/dev/fb by changing xf86Info.consoleFd from /dev/fb to a /dev/vt/*
device.
This fixes it by reworking the code to split the console device
(/dev/vt/*, the vtXX CLI option) from the frame buffer device
(/dev/fb, -dev option) to allow both VT and autoconfig to work.
It also fixes the console device to use /dev/fb when VT's are not
supported instead of throwing a Fatal Error because it can't open
/dev/vt/0.
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
In non-setuid root installations, we shouldn't try to adjust VT/tty
ownership. It will fail, and shouldn't be necessary anyway (since
startup scripts or PAM should be handling perms for us in that case).
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
The xorg.conf generator was not assigning correctly the primary device
("bootable") as screen zero. So just skip this kind of routines for now.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
If you want to run a pre-1999 kernel, you'll need a pre-2009 X server
[Some pre-Solaris 8 VT support is left by this patch to allow reuse by
the new Solaris VT support that follows in the next patch.]
Signed-off-by: Aaron Zang <Aaron.Zang@Sun.COM>
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
We were generating a shared library, but this lib is foobar, the parser
requires some symbols from the X server or from the program its being linked
into. If the program its being linked into (say a python .so) has symbol
visibility enabled then it will fail to dynamic link, also if this .so has
symbol visiblity enabled it will fail to dynamic link.
Screw it go back to a .a file really unless someone cleans it up properly.
Signed-off-by: Dave Airlie <airlied@redhat.com>
xf86PostKeyboardEvent also makes use of xf86PostKeyEventP to avoid code
duplication, and the valuator verification has been split into the
XI_VERIFY_VALUATORS macro.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
InternalEvents shouldn't be used anywhere outside the X server itself. Split
up into events.h for opaque typedefs for the events needed by various
headers and eventstr.h for the actual struct definitions.
eventstr.h must only be included by code that requires internal events and
is not part of the SDK.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Inside a windowing system, it's not the place to probe for devices. Goodbye
-probe and -probeonly.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Such stupid and ugly way to dump PCI information! Oh boy... Anyway, this
doesn't belong to the X server at all. Go away!
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
This changes the ABI, but since the video ABI is at 6 already
it should be fine.
driver changes are in the pipeline after this.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Fixes screensaver fadeout effects.
Also make all RandR 1.2 compatibility code for XF86VidMode operate only on the
CRTC associated with the compatibility output, not all CRTCs at once.
This was a vestige from the days before we'd make the mode list from the
EDID data, and from CRT technology when you could reasonably assume that
higher refresh rates were better. Also it did not function as advertised,
acting as a high-pass filter instead of a band-pass.
xextproto had Xlib client headers moved into libXext.
Protocol header files are named fooproto.h, header files with constants
foo.h or fooconst.h where foo.h was already in use for client-side headers.
Not all chipsets need to rely on the int10 scheme to do its daily work.
Well, the ideal would be to remove all int10 module from the server. I'll try
to provide some patches "soon" for this. Something like:
http://cgit.freedesktop.org/~vignatti/libx86/
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Not all drivers need this kind of access as well.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Not all drivers need this kind of access.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Oliver McFadden <oliver.mcfadden@nokia.com>
These old interfaces are no longer supported by the server, removing them
requires bumping the video driver ABI. Note that this is not guaranteed to
be the last change in ABI version 6.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
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.
Signed-off-by: Keith Packard <keithp@keithp.com>
Otherwise no subsequent driver will be able to claim this pci slot.
Example for this: fbdev tries to claim, but framebuffer device is not
available. Later on VESA cannot claim the device.
The number of input devices is MAXDEVICES, not MAX_DEVICES (f781a752e6)
Two comments updated to refer to MAXDEVICES.
MAX_FUNCS in sigio.c was set to 16 if MAX_DEVICES was undefined. If more
than 15 physical input devices were present, this could result in a
failure to install the SIGIO handler for any device above 15.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
GIT change
http://cgit.freedesktop.org/xorg/xserver/commit/?id=45c8bd0fe54273039fdaa1eeeafb81b5774f2c75
changed the default symbol visibility of the Xserver. As a result 2 symbols
that are needed by the RandR 1.2/1.3 implementation in the fglrx driver are no
longer visible:
xf86configptr
xf86CursorScreenKey
We would like to get these two symbols _X_EXPORT'ed before Xserver 1.7 is
released. Otherwise it will be problematic for fglrx to support RandR 1.3 on
Xserver 1.7.
In the future, we may want to sync our RandR implementation to later versions
of the RandR implementation in hw/xfree86/modes. Therefore it would be nice if
all symbols used by the Xserver RandR implementation were _X_EXPORT'ed in the
future.
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.
Reported-by: Gordon Yuan <GordonYuan@viatech.com.cn>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Previously when compiling on freebsd amd64 we'd end up at xi86
block (line 1315) which would define mem_barrier and write_mem_barrier
to be NOP's. Instead they should be valid, as per the linux amd64 setup.
This stops the hangs experienced by many when using the nv driver
which would hang due to out of order dma requests as noticed in
http://bugs.freedesktop.org/show_bug.cgi?id=3168
Signed-off-by: Benjamin Close <Benjamin.Close@clearchain.com>
xf86vmode.c:1578: warning: pointer targets in passing argument 1 of
‘SwapShorts’ differ in signedness
../../../../include/misc.h:231: note: expected ‘short int *’ but argument is
of type ‘CARD16 *’
xf86vmode.c:1543: warning: unused variable ‘i’
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
You would think, having finally tightened down the spec, that
monitor vendors would bother to implement what the spec actually
mandates. You would be wrong.
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>
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>
Doing so generates the same timings as given in the DMT spec for
120Hz RB, so we should be set there. Other rates might be legal
too but why push our luck.
If you have multiple cards, some that support randr 1.2 and some that don't
you can get a null dereference in here.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Make xf86 RANDR wrap the EnterVT call chain, so it can re-probe the
outputs when a laptop comes back from suspend/unsuspend (actually, any
time that we enter our VT again). The X server should then send RR*
events to clients, so they can cope with a monitor that was unplugged
while the laptop was suspended.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
isMaster is not enough as long as we differ between master pointers and
keyboard. With flexible device classes, the usual checks for whether a
master device is a pointer (currently check for ->button, ->valuators or
->key) do not work as an SD may post an event through a master and mess this
check up.
Example, a device with valuators but no buttons would remove the button
class from the VCP and thus result in the
IsPointerDevice(inputInfo.pointer) == FALSE.
This will become worse in the future when new device classes are introduced
that aren't provided in the current system (e.g. a switch class).
This patch replaces isMaster with "type", one of SLAVE, MASTER_POINTER and
MASTER_KEYBOARD. All checks for dev->isMaster are replaced with an
IsMaster(dev).
Historically, if no input device was referenced in the ServerLayout,
the server would pick the first "mouse" device found in the xorg.conf.
This patch gives evdev, synaptics, vmmouse and void the same status. If
there is a section in the config file using this driver - use it as the core
pointer.
Device selection is in driver-order, not in config-order. If a "mouse"
device is listed after a "synaptics" device, the "mouse" device gets
preference. This replicates the original behaviour.
This code only takes effect if AllowEmptyInput is off and there is no core
pointer in the server layout.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
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
Historically, if no input device was referenced in the ServerLayout,
the server would pick the first "mouse" device found in the xorg.conf.
This patch gives evdev, synaptics, vmmouse and void the same status. If
there is a section in the config file using this driver - use it as the core
pointer.
Device selection is in driver-order, not in config-order. If a "mouse"
device is listed after a "synaptics" device, the "mouse" device gets
preference. This replicates the original behaviour.
This code only takes effect if AllowEmptyInput is off and there is no core
pointer in the server layout.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This approach is broken anyway. DIPT only checked for the XInput type
"MOUSE" and the only user of this is xf86ActivateDevice when it sets the
Activate/DeactivateGrab functions.
Since synaptics and wacom set their own types, evdev only sets MOUSE for,
well, mice half the devices didn't have this set correctly anyway.
Instead, ActivatePointerGrab should be merged together with
ActivateKeyboardGrab.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
There's only two reasons for hierarchy events:
- device is added, removed, etc. In this case we want to send the event as
it happens.
- devices are added in a XIChangeDeviceHierarchy request. In this case we
only want one event cumulating all changes.
It reports vertical size in cm in the detailed mode.
X.Org bug#21750 <http://bugs.freedesktop.org/show_bug.cgi?id=21750>
Reported-by: Peter Poklop <Peter.Poklop@gmx.at>
Signed-off-by: Julien Cristau <jcristau@debian.org>
This way clients querying the gamma value via the VidMode extension at least
get the last value set via the same, rather than always something bogus.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
The reciprocal gamma value was missed in the first copy and this mistake was
propagated to the second one.
Signed-off-by: Michel Dänzer <daenzer@vmware.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>
We only put internal events into the queue now, so let's check for ET_Motion
rather than the MotionNotify.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
We only put internal events into the queue now, so let's check for ET_Motion
rather than the MotionNotify.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
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
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>
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>
All other functions are pushed into where they seemed to fit.
main.c is now linked separately into libmain.a and linked in by the various
DDXs.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
All other functions are pushed into where they seemed to fit.
main.c is now linked separately into libmain.a and linked in by the various
DDXs.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
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>
commit 64b7f96dca accidentally inverted the comparison, could
result in crashes on some systems later on.
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.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>
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.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
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>
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>
Otherwise APM events get treated as input events, which messes up idle
time accounting and screensavers and such. Not, we hope, that anyone
is using APM anymore.
Replace multi-stage filtering with simple linear velocity,
tracked several instances backwards. A heuristic ensures
only approximately linear motion is considered, so velocity
remains valid in any case. Numerical stability is much
better, and nothing changes to people who didn't tune the
advanced features of the previous algorithm.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
remove a few lines which redo part of the pointer acceleration
init. Properties is the way to go for them.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Fix this bug report:
,----< from http://bugzilla.freedesktop.org/show_bug.cgi?id=20504 >
| Using the Visual StaticGray (8 bit depth) is missing one gray level.
| The gray level of index zero and index one are the same and all
| other levels are shifted by one. The max level (255) cannot be used.
`----
Signed-off-by: James Cloos <cloos@jhcloos.com>
We'll now only mention the E-EDID segment register if the device is
actually E-EDID-capable. While we're here, check for DDC/CI and
standard EEPROM support too.
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>
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=18710 .
As this can't work without new EXA_PREPARE_AUX* indices, this requires a major
version bump, so we can also drop the UploadToScratch driver hook and
ExaOffscreenSwap*(). So this also fixes
http://bugs.freedesktop.org/show_bug.cgi?id=20213 .
Moreover, introduce EXA_DRIVER_KNOWN_MAJOR to break compilation of drivers
which may not be able to handle EXA_PREPARE_AUX*, giving instructions how to
make them build again in the #error message.
Signed-off-by: Michel Dänzer <daenzer@vmware.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>
DeleteInputDeviceRequest function doesn't handle "virtual" devices well.
TightVNC libvnc.so module to X (which makes bare Xorg VNC capable) uses such
kind of devices.
Bare Xvnc (it is something like Xvfb) simply uses AddInputDevice &
RegisterDevice functions. Xvnc uses DeleteInputDeviceRequest from Xi/stubs.c
so everything works fine (now I see that DeleteInputDeviceRequest in
Xi/stubs.c should call RemoveDevice function, shouldn't it? :) )
Situation is quite different when you use libvnc.so module. It uses same
schema as Xvnc, so it simply calls AddInputDevice & RegisterDevice. Thus
device is created correctly. When server is terminated it calls
DeleteInputDeviceRequest (now from hw/xfree86/common/xf86Xinput.c) for each
device. Here is the difference - Xvnc calls DeleteInputDeviceRequest from
Xi/stubs.c as I wrote above. Thus Xorg gets sigsegv because "VNC" devices
don't have real input driver.
X.Org Bug 20087 <http://bugs.freedesktop.org/show_bug.cgi?id=20087>
[This isn't really a fix (libVNC should behave correctly) but not crashing the
server sounds like an improvement.]
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
With the API change, we can now purge the XI conversion from POE.
Note: this commit breaks DGA even more.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Note that this breaks DGA. Life is tough.
EnqueueEvent is a somewhat half-baked solution, we immediately drop back into
XI and store them. But it should in theory work.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Don't let the dcce be random data.
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>
Was only used to provide a list of input devices that XF86-Misc could use,
now that XF86-Misc is gone, was parsed and logged, then completely ignored.
(Depends on previous patch that introduces OBSOLETE_TOKEN in parser to
make obsolete keywords like InputDevices & RgbPath be non-fatal errors.)
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Xorg shouldn't refuse to run just because the user has an xorg.conf that
had the previously-used RgbPath keyword in it.
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
When the crtc transformation changes, the entire crtc must be repainted.
This was being done by clearing the shadow and then painting the rectangle
containing the screen image; the clear being required as the screen image
may not fill the crtc. When changing the transform rapidly, this leads to
flashing. Eliminate the clear by painting the entire crtc instead of just
the screen rectangle.
Signed-off-by: Keith Packard <keithp@keithp.com>
a9d7d659.. (PCI: Remove pciBusAddrToHostAddr and associated nonsense)
removes pciBusAddrToHostAddr(), but not its prototype, resulting in:
./.libs/libxorg.a(sdksyms.o):(.data.rel+0xe64): undefined reference to
`pciBusAddrToHostAddr'
Signed-off-by: Chris Ball <cjb@laptop.org>
This was all a glorified no-op. We rely on pciaccess to create device
maps anyway, so we should have no reason to care about what the host
address is.
Acked-by: Ian Romanick <ian.d.romanick at intel.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
All you get for standard timing descriptors is horizontal size in
multiples of 8 pixels (which means you can't say 1366) and height in
terms of aspect ratio (which means you can't say 768). You'd like to
just fuzzy-match this by walking the DMT list for sufficiently close
modes, but you can't because DMT is useless and only defines a 1360x768
mode, because it's _also_ specified in terms of character cells despite
providing pixel exact timings. Neither can you use CVT or GTF to
generate the timings, because they _also_ believe that modes have to be
a multiple of 8 pixels.
You'd also hope you could find a timing definition for this in CEA, but
you can't because CEA only defines transmission formats that actually
exist. So there's 480p, 720p, and 1080p, but no 768p. And why would
there be, after all, the encoded signal is never 768p so obviously no
one would ever make a display in that format.
So instead, make a CVT mode since that's likely to be handled well by
just about everything, smash the horizontal active down by 2, and shift
the sync pulse by 1. Underscanning the hard way.
Pass the suicide.
Otherwise drivers have to refuse interlace twice: once in the output
config, and once in ->valid_mode() to catch output and config modes.
If you can't do interlaced modes, asking nicely for it in the config
isn't going to suddenly make it work.
By making the "Unable to open config file" header a warning, it was
not appearing with the filename when a config file was specified and
not found. Now we make it an error message again, but only issue
the error if a filename was specified - if none was specified, then
we don't even issue a warning, just the "Using autoconfig" info message.
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
With trying to match depths so that you didn't end up with a depth 24
fbconfig for the 32-bit composite visual, I broke the alpha bits on the depth
24 X visual, which angered other applications. But in fixing that, the
pickFBconfigs code for "minimal" also could end up breaking GLX visuals if
the same FBconfig was chosen for more than one X visual.
We have no reason to not expose as many visuals as possible, but the old
"all" mode didn't match any existing X visuals to GLX visuals, so normal
GL apps didn't work at all.
Instead, replace it with a simple combination of the two modes: Create GLX
visuals by picking unique FBconfigs with as many features as possible for
each X visual in order. Then, for all remaining FBconfigs that are
appropriate for display, add a corresponding X and GLX visual.
This gets all applications (even ones that aren't smart enough to do FBconfigs)
get all the options to get the visual configuration they want. The only
potential downside is that the composite ARGB visual is unique and gets a
nearly full-featured GLX visual (except that the root visual might have taken
the tastiest FBconfig), which means that a dumb compositing manager could
waste resources. Write compositing managers using FBconfigs instead, please.
This patch gets the shadow scanout buffer repainted on panning area changes.
It does not, however, track the mouse correctly.
Signed-off-by: Keith Packard <keithp@keithp.com>
When the shadow scanout buffer can be re-used, the underlying framebuffer
area must be damaged so that the scanout will be repainted. This patch
delays the addition of that damaged area until after the transform in the
crtc has been updated, otherwise the old transform would have been used and
the wrong area repainted.
Signed-off-by: Keith Packard <keithp@keithp.com>
generic.c:80: warning: ‘read_legacy_video_BIOS’ defined but not used
Signed-off-by: Tomas Carnecky <tom@dbservice.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
xf86IsOptionSet is rarely the right function to use for boolean options because
it returns TRUE whenever the option is present, even if its value is "no",
"off", "0", etc.
This avoids 32-bit access which might affect other registers. The linux code
uses gcc flags to get this to happen, but this seems like more of a sure thing.
Drivers not using the new hw/xfree86/modes code would crash in DRI due to
that code trying to monitor CRTC changes.
Signed-off-by: Keith Packard <keithp@keithp.com>
We report the EDID values in RandR, and we let people configure whatever
they like for the screen in xorg.conf. Reporting the EDID values in the core
means applications get inconsistent font sizes in the default configuration.
Signed-off-by: Keith Packard <keithp@keithp.com>
In the X log, upon module load, it prints a line similar to the following.
> (II) Loading /usr/lib64/xorg/modules/extensions//libdbe.so
The attached patch removes the extra / before the module name.
Code already exists in hw/xfree86/loader/loadmod.c:InitPathList to add a
trailing slash if needed, removing the one added by sprintf is harmless.
Signed-off-by: James Cloos <cloos@jhcloos.com>
Otherwise, for example, when hacking config/*.c, it is required to
run make clean on that directory, to ensure the proper libconfig.a
will be linked in the generated Xorg binary.
Instead of always keeping two copies of the keymap, only generate the
core keymap from the XKB keymap when we really need to, and use the XKB
keymap as the canonical keymap.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
We already have state fully stored within XKB, so instead of duplicating it,
just generate the values to send to clients when required.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
XkbInitKeyboardDeviceStruct is now the only valid keyboard
initialisation: all the details are hidden behind here. This now makes
it impossible to supply a core keymap at startup.
If dev->key is valid, dev->key->xkbInfo->desc is also valid.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
No more #ifdef XKB, because you can't disable the build, and no more
noXkbExtension either.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>