Commit Graph

2135 Commits

Author SHA1 Message Date
Ander Conselvan de Oliveira
0df12a3f01 xfree86: Remove device from inputInfo.devices if ActivateDevice failed.
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>
2009-05-08 12:31:41 -07:00
Ian Romanick
199bb36715 DRI2: Send the version the code actually supports
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>
2009-05-08 12:23:27 -07:00
Adam Jackson
667865b9eb randr: Fix thinko in xf86TargetPreferred
The only-one-output case would only work right if that also happened to
be the zeroth output.  Oops.
(cherry picked from commit 8a6ed44a8b)
2009-03-20 16:58:06 -07:00
Michel Dänzer
e96921ca95 DRI1: Make DRICreateDrawable return TRUE for pixmaps.
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)
2009-02-25 11:34:48 -08:00
Alan Coopersmith
584f46b81c Add Extensions section to xorg.conf man page
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)
2009-02-25 11:34:29 -08:00
Keith Packard
ae7991b16d Pre-clip panning coordinates to keep crtc within panning region
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)
2009-02-25 11:27:15 -08:00
Keith Packard
9a59e7f304 xf86CrtcShadowClear is unused.
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>
2009-02-19 20:55:53 -08:00
Keith Packard
369d7b22a9 Make panning+transform be correctly driven by mouse
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>
2009-02-19 20:55:25 -08:00
Alan Coopersmith
c0a3619700 Make RgbPath keyword in xorg.conf a non-fatal error
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>
(cherry picked from commit d2cf562bba)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-19 13:43:40 -08:00
Keith Packard
4557b3f6c4 X11/fonts/fontmod.h doesn't exist anymore.
libXfont 1.4.0 no longer includes this file, nor do we need it, so just stop
attempting to reference it.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-18 16:43:23 -08:00
Keith Packard
a86dd529e9 Eliminate the shadow clear on transform change
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.

(cherry picked fom commit 5394b7e662)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 21:41:42 -08:00
Keith Packard
5946d603e7 Add XkbDir to Files config file section
The XKB base directory was not configuable through the config file.

(cherry picked from commit 76f18b94bd)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 19:12:44 -08:00
Paulo Cesar Pereira de Andrade
69a2728891 Default to use standard bitmap fonts, with builtins as fallback
The builtin-fonts configure option was removed, as it at best should
have been a runtime option. Instead, now it always register all "font
path element" backends, and adds built-ins fonts at the end of the
default font path.
  This should be a more reasonable solution, to "correct" the most
common Xorg FAQ (could not open default font 'fixed'), and also don't
break by default applications that use only the standard/historical
X Font rendering.
(cherry picked from commit 49b93df8a3)

    Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 19:10:14 -08:00
Keith Packard
4302a32391 Make crtc_notify wrap/unwrap code do nothing unless mode code is inuse
Drivers not using the new hw/xfree86/modes code would crash in DRI due to
that code trying to monitor CRTC changes.

(cherry picked from commit ea309e4745)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 19:07:13 -08:00
Eric Anholt
516f8e2cad glx: Replace broken GLX visual setup with a fixed "all" mode.
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.
(cherry picked from commit c40bad88475debf7a1774e22dce835577ad32154)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 19:00:41 -08:00
Keith Packard
536748aa88 Merge branch 'panning-for-server-1.6' into server-1.6-branch 2009-02-17 18:52:04 -08:00
Paulo Cesar Pereira de Andrade
8c6ddbf754 Correct static symbol XkmReadTOC and first pass on compile warning fixes.
The warnings corrected were only the ones that should correct
real problems. The most common one is 64 bit integers as
"printf %l" arguments.
  Note that there is a patch related to this at:
http://bugs.freedesktop.org/show_bug.cgi?id=18204

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 16b11cd03d)
2009-02-17 15:49:06 -08:00
Peter Hutterer
0c9db0ea10 xfree86: always force RAW mode under linux.
The previous check for AEI on left us with the possibility that AEI is forced
off in the config, but devices are added through evdev nonetheless. A keyboard
added this way can CTRL+C the server. Even when we use kbd, we can set the
mode to RAW, so it's safer alround to to so.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit b339052340)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 14:49:50 -08:00
Alan Coopersmith
3284b03dca Check for and report errors writing xorg.conf.new from Xorg -configure
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
(cherry picked from commit ac470dfb4f)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 14:48:19 -08:00
Alan Coopersmith
caf503aef1 Correct error message if specified config file is not found
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>
(cherry picked from commit bd713794ce)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 14:47:43 -08:00
Keith Packard
791c6eccee Handle the combination of panning and crtc transforms
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>
(cherry picked from commit 7968823cbc)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 14:43:25 -08:00
Keith Packard
099d74a127 Damage re-used shadow scanout buffer using new transforms.
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>
(cherry picked from commit 763df9eec7)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 14:43:25 -08:00
Xiang, Haihao
ef796a95dd avoid a potential endless loop.
Previously it is possible that creating rotation data, then cleaning
up and creating again so that pScreen->BlockHandler and
xf86_config->BlockHandler all point to xf86RotateBlockHandler.
See bug #19343.
(cherry picked from commit 5f3188228e)
2009-01-30 16:56:09 -08:00
Peter Hutterer
93e510d3ab xfree86: Only use the evdev ruleset on linux.
As suggested by Julien Cristau

This is an follow-up to
commit 9c5dd7337f
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Wed Dec 3 14:24:25 2008 +1000

    Let the DDX decide on the XkbRulesDefaults.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Acked-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit 13de7511b1)

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-01-11 16:08:56 -08:00
Peter Hutterer
cc78f04b22 Let the DDX decide on the XkbRulesDefaults.
Rather than assuming rules in the CoreKeyboardProc, init the default rules in
InitCoreDevices, then re-use them later.

In the xfree86 DDX, set the rules to "base" or "evdev", depending on whether
we'll load kbd or evdev.

If we create a new MD, use pc105,us as default and re-use the rules file used
previously.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-01-11 16:08:35 -08:00
Peter Hutterer
1ffd9ec760 xfree86: don't restore the TTY mode if we didn't initialize it ourselves
Restoring it unconditionally means we restore to whatever tty_mode has as
default value (i.e. 0). K_RAW happens to be 0x00, so we always restore to raw
mode if allowEmptyInput is off.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
(cherry picked from commit aea6f19f25)
2009-01-09 11:04:09 -08:00
Peter Hutterer
3c11efd7dc xfree86: If an input device failed to activate, return immediately.
Devices are only activated once - right after they've been added to the
server. If a device failes activation, it's dead. There's no reason to
continue. Return the error code from ActivateDevice() without setting up
sprite information or even sending a event to the client.

Then - in the DDX - just remove the device again.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 27011254c4)
2009-01-09 11:04:03 -08:00
Peter Hutterer
2ce48363b8 xfree86: don't call CheckMotion if a device hasn't been enabled. #19176
X.Org Bug <http://bugs.freedesktop.org/show_bug.cgi?id=19176>
(cherry picked from commit e1a3a1a0d8)
2009-01-09 11:03:58 -08:00
Maarten Maathuis
ffdf013905 randr/xfree86: Fix a one off error in the panning calculations.
- Example: mode 1280x1024, panned area 1281x1024
           panned_area.x2 = 1281
           mode.width = 1280
  If you substract 1280 from 1281, then that leaves you with one.
  Which is the one pixel that you need to move to actually see the last pixel collumn.
  Substracting 1 from this will consistently prevent you from seeing the right and bottom edge.
(cherry picked from commit aedd2f566d)
2009-01-09 10:59:05 -08:00
Adam Jackson
8ed4ca2801 XAA: Disable offscreen pixmaps by default.
Say Option "XaaOffscreenPixmaps" to turn them back on.

Apropos of bugs #13795 and #15098.  But this still isn't correct.
(cherry picked from commit 0c6987df3b)
2009-01-09 09:57:46 -08:00
Robert Noland
32e81074b9 Support -sharevts on FreeBSD
Bugzilla #11179

Submitted-by: Nathan Whitehorn

Signed-off-by: Robert Noland <rnoland@2hip.net>
(cherry picked from commit 7aa29b9d66)
2008-12-16 12:05:53 -08:00
Cooper Yuan
75bad86992 Fix typo in xf86PickCrtcs()
(cherry picked from commit 2a61397d17)
2008-12-16 12:03:05 -08:00
Peter Hutterer
e56059dfa5 xfree86: fix compiler warning (use of uninitialized variable)
drv and idev are only set for SDs, but are only dereferenced for SDs too, so
initializing them to NULL is safe.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
(cherry picked from commit 8e32791349)
2008-12-16 12:03:04 -08:00
Peter Hutterer
0d12c44d83 xfree86: don't render SW cursors for devices attached to VCP (#16805)
When leaving 3D games such as quake3 or sauerbraten, a cursor may stay on the
screen. This is caused by one run of SW rendering for the SD, even though the
SD was attached to the VCP and thus has HW rendering capabilities.

Check for the SD's attachment (like in all other functions) before deciding on
SW or HW rendering.

X.Org Bug 16805 <http://bugs.freedesktop.org/show_bug.cgi?id=16805>

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
(cherry picked from commit bb072019fa)
2008-12-16 12:03:04 -08:00
Keith Packard
09039fb89f Patch brown-bag fix for bug 19017 (scrn->virtualX/virtualY 0 before PreInit)
When a driver uses a crtc during device detection, the scrn has not yet been
configured and virtualX/virtualY are still zero. This caused the X server
to try and allocate a shadow frame buffer, which couldn't work.

Detect this by checking for zero virtualX/virtualY values.

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 063eb6743c)
2008-12-15 20:12:33 -08:00
Keith Packard
ae2cbbff9f Use scrn->virtualX/virtualY in xf86CrtcFitsScreen. Fix bug 19017.
pScreen->width/height are not initialized when doing initial mode setting,
which makes this function incorrectly fail. Using scrn->virtualX should work
in all cases though.

Bug 19017 reports a crash in xf86CrtcSetModeTransform when doing a modeset
for output probing, long before the screen array is initialized; that was
caused by a work-around to set pScreen->width/height so that xf86CrtcFitsScreen
could find the right values.

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit fde2f96103)
2008-12-15 11:47:57 -08:00
Keith Packard
6d671b2dee When disabling SIGIO tracking, use SIG_IGN instead of SIG_DFL.
This avoids a race condition for drivers which mis-order the fd close and
signal disable.

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 29a5b0596b)
2008-12-15 11:47:12 -08:00
Keith Packard
8f17a31aa7 Clean up rotation data when crtc is turned off
The shadow frame buffer and other data used for rotation need to be freed
when the crtc is disabled, not just when rotation is disabled.

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 1ba4cbb159)
2008-12-15 11:46:47 -08:00
Matthias Hopf
be21199f55 randr: Fix initial panning border copy
Thanks to Julien Cristau for finding this.
2008-12-12 11:01:59 +01:00
Matthias Hopf
ab56607a08 randr: Update initial screen size if panning information is present 2008-12-12 11:01:53 +01:00
Matthias Hopf
657d963a66 randr: Fix error message for bad panning config 2008-12-12 11:01:32 +01:00
Matthias Hopf
44b89dc0a5 randr: Add monitor option "Panning" for initial panning configuration 2008-12-12 11:01:04 +01:00
Matthias Hopf
798a4878a4 randr: Allow panning to be disabled per axis
(cherry picked from commit e5ab9e6662)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:57:13 -08:00
Matthias Hopf
5fa2cce83c randr: Rework panning area verification
(cherry picked from commit bad118ace6)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:57:05 -08:00
Matthias Hopf
97e8a75ce3 randr: Don't change panning parameters if verification fails.
(cherry picked from commit 219c26ce0c)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:56:57 -08:00
Matthias Hopf
6189f0832e randr: Rename pan() to set_origin(), and xf86CrtcPan() to xf86CrtcSetOrigin()
(cherry picked from commit 18a8bac1a1)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:56:47 -08:00
Matthias Hopf
bc05471d11 randr: Panning support
(cherry picked from commit b929d721ef)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:56:17 -08:00
Matthias Hopf
f7e2fee8fe randr: Crtc interface update for panning support.
(cherry picked from commit 834cbc16f3)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:55:57 -08:00
Matthias Hopf
27ca32eb05 randr: Weird enough, crtc->version was never set upon creation. Fix that.
(cherry picked from commit a475eb9fee)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:55:48 -08:00
Peter Hutterer
b0c6472552 xfree86: don't FatalError on "too many input devices".
Just ignore devices after MAXDEVICES has been reached, but warn the user that
the devices are ignored.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:48:20 -08:00