Commit graph xserver/hw/xfree86
Author SHA1 Message Date
Alan Coopersmith
599a0f3f1e Fix typo in 5bf2c88d23
Amazing how these things hide until you see the diff come back from
the commit list.
2008-11-24 20:37:58 -08:00
Alan Coopersmith
5bf2c88d23 Simplify filename generation code for Xorg -configure 2008-11-24 20:34:46 -08:00
Alan Coopersmith
75784e1e53 Solaris: Make KDSETMODE failure non fatal, and retry it on interrupts 2008-11-24 20:32:20 -08:00
Keith Packard
c4b9ab6bf5 Handle transform failure when computing shadow damage area.
PictureTransformBounds can fail, when this happens, damage the entire screen
so that the shadow gets repainted correctly.
2008-11-24 13:24:41 -08:00
Keith Packard
7236fd9dd4 Be careful about copying transforms around; they have allocated memory. 2008-11-24 13:24:41 -08:00
Keith Packard
7e69e364d2 Fix rotated/reflected cursor positions.
Doing projective transforms required repositioning the cursor using the
hotspot, but that requires relocating the upper left corner in terms of said
hotspot.
2008-11-24 13:24:40 -08:00
Keith Packard
7c61db66a4 Create rrtransform.[ch]. Add RRTransform argument to RRCrtcNotify.
Instead of using a separate function to notify DIX about transform changes,
add the transform to RRCrtcNotify so that the whole Crtc state changes
atomically.
2008-11-24 13:24:40 -08:00
Keith Packard
6fe9c15731 Allow drivers to set crtc transforms.
Track curent transform down in the mode setting code so that it may be set
separately from RandR.
2008-11-24 13:24:40 -08:00
Keith Packard
49db14e4ac Handle RandR transform matrices in floating point.
RandR matrix computations lose too much precision in fixed point;
computations using the inverted matrix can be as much as 10 pixels off.
Convert them to double precision values and pass those around. These API
changes are fairly heavyweight; the official Render interface remains fixed
point, so the fixed point matrix comes along for the ride everywhere.
2008-11-24 13:24:40 -08:00
Keith Packard
197aa78469 Report whether transforms are support from driver through extension to client
Add APIs to xf86RandR12 support and randr extension to record whether the
driver supports transforms, report that value in the RRGetCrtcTransform
reply.
2008-11-24 13:24:39 -08:00
Keith Packard
e86c34663e Clear shadow pixmaps before using them.
This eliminates some ugly flashing, as well as clearing the borders when the
shadow will not be completely painted.
2008-11-24 13:24:39 -08:00
Keith Packard
8fd82c88e3 Adjust transformed cursor position to account for hotspot 2008-11-24 13:24:38 -08:00
Keith Packard
eb222e6412 Actually use filter kernel size to expand transform redisplay box 2008-11-24 13:24:37 -08:00
Keith Packard
ee6326a6b8 Handle filter widths in xf86Rotate 2008-11-24 13:24:37 -08:00
Keith Packard
ddc8466137 Initialize and cleanup new filter fields in xf86Crtc. 2008-11-24 13:24:37 -08:00
Keith Packard
f50349e193 [RANDR] Support filters in CRTC transforms.
Create new RRTransform datatype to hold all of the transform related
information, use that in lots of places to pass filters around.
2008-11-24 13:24:36 -08:00
Keith Packard
e3d6f279d5 Wire up RandR CRTC transform protocol, bump server to RandR 1.3
This involved removing a pile of matrix code from the DDX,
as well as moving a bit of transform logic from DDX to DIX.
2008-11-24 13:24:36 -08:00
Keith Packard
e063162e80 Add projective transforms to RandR DIX/DDX API.
New RRCrtcGetTransform function in DIX that DDX can use to get the pending
transform. The DDX code should be complete; the DIX code is just a stub at
this point.
2008-11-24 13:24:35 -08:00
Keith Packard
9c7ac47b87 Notify DRI when crtc regions change
Drivers that care about crtc positions on the screen to ensure that vblank
works correctly need to be notified when crtcs are changed.

Provide a hook in the mode setting code that is invoked whenever any
configuration is done to the screen.

Use this new hook in the DRI code so that DRI clients are notified and
receive updated information.

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-11-24 13:24:35 -08:00
Peter Hutterer
554592cd70 DGA: silence compiler warning.
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-11-24 11:50:57 +10:00
Peter Hutterer
0dbcbd35f6 xfree86: Split the working code of NIDR into new xf86NewInputDevice.
The xfree86 server previously hat NewInputDeviceRequest and InitInput, and
both basically did the same thing. Reduce NIDR to parameter checking and use
xf86NewInputDevice from both InitInput and NIDR to actually create the device.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2008-11-24 10:17:45 +10:00
Matthieu Herrb
387563b777 Merge branch 'master' of git+ssh://herrb@git.freedesktop.org/git/xorg/xserver 2008-11-23 13:15:46 +01:00
Matthieu Herrb
85f650c9b7 missing action in if statement. 2008-11-23 13:15:17 +01:00
Stefan Dirsch
f6e01fa1b8 Added '-showopts' option to print available driver options (#5564). 2008-11-23 11:16:03 +01:00
Matthieu Herrb
bc0c7075e2 Remove the old libusbhid copy from os-support/bsd.
This has been replaced by in-kernel support for USB mices several
years ago and hasn't been enabled in build since X.Org 6.8.
2008-11-22 19:12:23 +01:00
Egbert Eich
a9e20306fb int10: Do an mprotect(..,PROT_EXEC) on shmat()ed memory ranges.
When the linux kernel sets the NX bit vm86 segfaults when it tries to execute
code in memory that is not marked EXEC. Such code gets called whenever
we return from a VBIOS call to signal the calling program that the call
is actually finished and that we are not trapping for other reasons (like
IO accesses).
Use mprotect(2) to set these memory ranges PROT_EXEC.
2008-11-21 18:57:07 +01:00
Rémi Cardona
a54153e669 xfree86: don't reset Auto(Add|Enable)Devices, use defaults from xf86Globals
Without this, commit ace38fafb0 is useless
when HAL support is disabled.

Signed-off-by: Julien Cristau <jcristau@debian.org>
2008-11-21 18:55:07 +01:00
Matthieu Herrb
10d472bf9d Support for BSD apm
XXX check amd64 pci init
2008-11-21 18:07:03 +01:00
Peter Hutterer
ace38fafb0 xfree86: without CONFIG_HAL, Auto{Add|Enable}Devices and AEI is false.
There's little chance that we'll get the input devices at runtime without HAL,
we might as well force the server to add mouse/kbd devices automatically -
just like in the olden days.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-11-21 08:48:38 +10:00
Alan Coopersmith
570835b9a8 Use bsd_pci stub routines on Solaris too, since we use pciaccess for real work
Depends on commit 70e18a3b6b to get
definition of xf86InitVidMem on Solaris.
2008-11-19 10:19:20 -08:00
Keith Packard
3932a84857 Xinput: use floats for ConstantDeceleration and AdaptiveDeceleration
These values need not be constrained to integer values.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2008-11-18 14:21:01 -05:00
Michel Dänzer
24928b85dc DRI2: Don't crash in DRI2ClipNotify when DRI2DrawablePtr is NULL. 2008-11-15 13:28:53 +01:00
Alex Deucher
81fd17f5f4 Only add default modes if EDID supports continuous-frequency
When an EDID is present, only add the default mode pool if the
continuous-frequency bit is set in the EDID.  Should fix bugs
like 18512.
2008-11-13 15:00:30 -05:00
Adam Jackson
c232f3d673 xf86TargetExact should try harder if there's only one monitor attached.
If there's no preferred mode, but only one monitor, pick the
biggest mode for its aspect ratio, assuming one exists.
2008-11-13 14:58:21 -05:00
Alex Deucher
6b501d7cc5 Add missing newline when printing edid info 2008-11-13 13:57:30 -05:00
James Cloos
24383056d0 Don’t recommend fixing HAL if HAL support is disabled.
As reported in http://bugs.freedesktop.org/show_bug.cgi?id=18438
the server suggests reconfiguring HAL if AllowEmptyInput is enabled
and no input devices are known.

Instead of that notice, if HAL is disabled at configure time,
AllowEmptyInput is enabled in the config and no input devices are
found report those facts and recommend disabling AllowEmptyInput.
2008-11-08 13:11:51 -05:00
James Cloos
b3c7e62664 Remove some null statements.
Remove several doubled statement-terminal semicolons.

Reported by Fernando Carrijo.
2008-11-08 12:21:20 -05:00
Luc Verhaegen
59f9fb4b8c XAA PixmapOps: Sync before accessing unwrapped callbacks.
When using any XAAPixmapOps, we call into unknown but freshly
unwrapped callbacks (like fb ones). Unlike the XAA*Fallback calls,
we did so without syncing first, exposing us to all kinds of
synchronisation issues.

I believe that the rendering errors appeared now because *PaintWindow
vanished (e4d11e58), and we just use miPaintWindow instead. This
takes a less direct route to the hw and ends up at
PolyFillRectPixmap, which very often left drawing artifacts.

We now sync accordingly, and no longer get the rendering artifacts i
was methodically reproducing on radeonhd, radeon, unichrome...

Also, in order to allow driver authors to remove extensive syncing
or flushing to hide this issue, create XAA_VERSION_ defines, put
them in xaa.h and bump the patchlevel.

(novell bug #435791)
2008-11-07 19:13:58 +01:00
Julien Cristau
991c88b754 xfree86: xf86SetDepthBpp needs to respect the driver's depth24flags
When setting the depth to 24, leave bpp unset so the logic to pick
a supported value is used instead of ignoring the driver's preference
and forcing 32 bpp.
2008-11-07 19:03:40 +01:00
Adam Jackson
446d9443ce linux: Drain the console fd of data when using evdev for keyboards
Works around a silly bug in the kernel that causes wakeup storms after
too many keypresses.  Should fix the kernel bug too, but this at least
keeps the idle wakeup count below 1000/sec.
2008-11-05 11:51:06 -05:00
Egbert Eich
9a874a71a7 DDX/RandR: When positioning outputs assume width/height = 0 if no modes exist.
When a user specifies the position of an output for which no modes exist
(for whatever reason) assume that the width and height of this output
is 0. The result will be the same as if this output isn't taken into
consideration at all and thus should be sane. It will prevent a segfault
when trying to determine the width and height of a non-existent mode.
2008-11-04 21:31:27 +01:00
Daniel Stone
f4036f6ace Remove XEvIE
It's unmaintained and has been broken for quite a while; MPX finally
smashed it completely.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-11-04 16:01:07 +10:30
Daniel Stone
8c3753a0b7 A bit of whitespace cleanup in include directives.
It's #include <foo>, not # include <foo>

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-11-04 16:01:07 +10:30
Daniel Stone
889a8dc02b Xi: XINPUT has been mandatory for ages
Ditch all #ifdef XINPUT, since it's always built.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-11-04 16:01:07 +10:30
Adam Jackson
4cf2f4172a Add xf86MonitorIsHDMI() helper. 2008-11-03 14:35:03 -05:00
Alan Coopersmith
70e18a3b6b Refactor Solaris mapping code to work with standard shared/vidmem.c
Also merge sun_bios.c into sun_vid.c and upstream Solaris patch to
keep aperture device open, to allow mappings to occur after X server
has given up uid 0.
2008-10-30 21:00:46 -07:00
Peter Hutterer
4ce19b4477 xfree86: fix xf86ScaleAxis once again.
Maybe one day I stop doing stupid patches like
a3a7c12fcf.

So, if X < low, reset to low, and _not_ to high.
If X > high, reset to high, and _not_ to low.
2008-10-30 16:59:43 +10:30
Peter Hutterer
c264826da9 xfree86: If AEI is on, disable "kbd" and "mouse" devices.
This consists of two parts:
In the implicit server layout, ignore those drivers when looking for a core
device.

And after finishing the server layout, run through the list of devices and
remove any that use mouse or kbd.

AEI is mutually exclusive with the kbd and mouse drivers, so pick either - or.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-10-29 12:07:26 +10:30
Julien Cristau
102c4dac7c x86emu: fix sparse warnings
ops2.c:113:18: warning: Using plain integer as NULL pointer
ops2.c:207:18: warning: Using plain integer as NULL pointer
2008-10-26 13:17:31 +01:00
Julien Cristau
ffaaa1a198 xfree86: fix compiler warnings in DoModalias()
The precedence of == is higher than that of &, so that code was
probably buggy.

xf86Init.c: In function 'DoModalias':
xf86Init.c:300: warning: suggest parentheses around comparison in operand of &
xf86Init.c:304: warning: suggest parentheses around comparison in operand of &
xf86Init.c:308: warning: suggest parentheses around comparison in operand of &
2008-10-26 13:13:21 +01:00