Commit Graph

2130 Commits

Author SHA1 Message Date
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
Peter Hutterer
480caacbdd xfree86: init EQ before trying to initialise the devices (#18890)
The kbd driver may send events during device initialisation, and these events
need the EQ set up already.

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

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

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:42:16 -08:00
Maarten Maathuis
991f0be6e2 randr: Avoid needlessly creating a shadow framebuffer.
- pScreen->width and height were zero, so it didn't "fit" the screen.
(cherry picked from commit ffb484f7ef)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:41:50 -08:00
Timo Aaltonen
d6129ebf8d If AEI is on, disable 'vmmouse' in addition to 'kbd' and 'mouse'.
Signed-off-by: Timo Aaltonen <tjaalton@cc.hut.fi>
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
(cherry picked from commit dd128ddcdc)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-09 20:40:14 -08:00
Alan Coopersmith
40116cd5d0 More man page updates for 1.6 release for Xorg, xorg.conf & exa man pages.
- Remove remaining references to XFree86-Misc options AllowNonLocalModInDev
  and DisableModInDev.
- Remove remaining references to grab-breaking keys & associated options.
- Update description of Ctrl-Alt-Backspace to new -retro/DontZap defaults.
- Add description of new options -modalias and -showopts.
- Update list of modules loaded by default.
- Update input driver references from keyboard to evdev & kbd.
- Update list of driver man pages to match xf86-*-* drivers with man pages.
- Add See Also section to exa man page.

and various formatting/typo/etc. fixes.

The Xorg/xorg.conf sections on input device selection could use further
updates to better match the current state of HAL-enabled configuration.
(cherry picked from commit 8c560422b4)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-02 23:37:36 -08:00
Alan Coopersmith
4e5be5ad36 Correct warning for unknown GlxVisuals option in conf file
(cherry picked from commit 6a1850b8c6)

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-02 23:35:52 -08:00