Commit Graph

8875 Commits

Author SHA1 Message Date
Michel Dänzer
73ae547d5e EXA: Fix mixed pixmaps crash with missing / failing UploadToScreen hook.
For the recent mixed pixmaps changes, I failed to realize (or hit in my
testing) a problem which can occur if the driver doesn't provide an
UploadToScreen hook or provides one which can fail: There can be a crash
in exaMemcpyBox() because exaCopyDirtyToFb() passes pExaPixmap->fb_ptr to
exaCopyDirty(), but that's normally NULL with driver allocated pixmaps.

The solution is to make exaCopyDirty*() no longer rely on pExaPixmap->fb_ptr
but use pPixmap->devPrivate.ptr after PrepareAccess instead.

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=24167 .
2009-09-27 02:08:10 +02:00
Kevin E Martin
c9ec2bab2f dmx: undefine MITSHM, move undefs to miinitext.c.
This patch undefines MITSHM for dmx - we don't support the required
screen->ModifyPixmapHeaders. All undefines are moved from dmx-config to
miinitext.c, where they belong.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-26 13:14:50 +10:00
Kevin E Martin
fc9d733bab dmx: reshuffle linker order to avoid errors when MITSHM is undefined.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-26 13:09:52 +10:00
Peter Hutterer
e7c2598f56 dmx: core events are always in screen coordinates when passed to GPE.
This fixes input in dmx, the pointer appears at the right positions to the
clients now.

Also mark the spot where we pass in the button state as valuator to GPE
with a FIXME. (??)

Tested-by: Kevin Martin
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-26 12:25:19 +10:00
Peter Hutterer
43a2eb794f configure: Unify all library defines that require a specific version.
This patch moves all libraries that require a specific version into a single
location instead or duplicating them across the configure.ac file.
Libraries that do not require specific versions are left where they are.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-26 12:25:18 +10:00
Peter Hutterer
9bd08c690f Xi: update axisVals with the right subpixel data.
Subpixel data in data_frac is stored as FP32.32, hence we need to get that
down again before adding it to the current value.

Reported-by: Thomas Jaeger
Tested-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-26 12:25:18 +10:00
Michel Dänzer
abb8108fb4 EXA: Only calculate cache position once for each glyph. 2009-09-26 02:05:24 +02:00
Michel Dänzer
c11678cc18 EXA: Accumulate arbitrary number of glyphs without flushing. 2009-09-26 02:05:06 +02:00
Michel Dänzer
0369eeeb6b EXA: Try to minimize UploadToScreen calls for mixed pixmaps.
If there are several software fallbacks affecting the system memory copy of the
same pixmap, only copy the results back to the driver pixmap when it's used for
acceleration again, or in the BlockHandler, whichever happens first.
2009-09-26 02:04:48 +02:00
Michel Dänzer
1818cbd70f EXA: Extend mixed pixmaps scheme to allow driver PrepareAccess hook to fail.
If the PrepareAccess hook fails, use the DownloadFromScreen hook to retrieve
driver pixmap contents to a system RAM copy, perform software rendering on that
and copy the results back using the UploadToScreen hook. Use the classic
migration logic to minimize transfers (which as a bonus allows slightly
cleaning up some of the existing mixed pixmap code).

This enables things that weren't possible before with driver-allocated pixmap
storage: If some (or all) GPU pixmap storage can't be mapped directly by the
CPU, this can be handled between the PrepareAccess and
DownloadFrom/UploadToScreen hooks, e.g.:

* Radeon KMS on big endian machines can fail PrepareAccess if the pixmap
  requires byte-swapping and swap bytes in DownloadFrom/UploadToScreen.
* Environments where GPU and CPU don't have a shared address space at all.
  Here the driver PrepareAccess hook will always fail and leave all transfers
  between GPU / CPU storage to the Download/From/UploadToScreen hooks.

Drivers which can handle all pixmaps in the PrepareAccess hook should notice
little if any difference.
2009-09-26 01:59:39 +02:00
Alan Coopersmith
e23bffc41b Fix build of unit tests when dtrace probes are enabled
ar loses the dtrace probe magic when building static libraries, so we
have to link with the .O files in order to resolve the dtrace probe symbols.

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-09-24 16:36:25 -07:00
Peter Hutterer
9fa73be9fa Require libXext >= 1.0.99.4
Reported-by: Tilman Sauerbeck
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-25 09:03:47 +10:00
Peter Hutterer
a9c274df5c kdrive: plug two memory leaks when freeing the KdKeyboard/Pointer.
xkbRules, xkbModel and xkbLayout are strdup'd in KdNewKeyboard, need to be
freed.

The ephyr driver strdups the name on top of the already allocated
kdrive-assigned name. Memory must be freed beforehand.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-25 08:17:03 +10:00
Peter Hutterer
fd91313673 dix: plug memory leak in DeviceEnterLeaveEvents.
'event' must be freed before exiting.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-25 08:17:02 +10:00
Peter Hutterer
6ee796e9bb Xi: fix length calculation for ValuatorState in QueryDeviceState reply.
The length field needs to include the bytes required for the valuators
(INT32) as well.

The reply length has the right value and since the valuator state is always
last, clients didn't notice the wrong offset.

Tested-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-25 08:16:37 +10:00
Peter Hutterer
3b5bbb149d configure: fix up tslib check once again.
This patch addresses two issues:
The check for HAVE_TSLIB = xauto can never be true, the check has been
corrected to TSLIB = xauto.

Pre-pkgconfig versions of tslib fail to be found, this patch restores the
additional AC_CHECK_LIB. However, the pgk-config check must happen before
AC_CHECK_LIB, as AC_CHECK_LIB does not seem to honour the LD_LIBRARY_PATH.
Thus, if tslib is installed outside of the default paths, AC_CHECK_LIB
fails.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked--by: Daniel Stone <daniel@fooishbar.org>
2009-09-24 14:52:15 +10:00
Thomas Jaeger
5402f18d9c dix: report XI1 axis values correctly if first_valuator != 0
Signed-off-by: Thomas Jaeger <ThJaeger@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-24 14:52:15 +10:00
Jeremy Huddleston
33bf9cb69d XQuartz: GLX capabilities: Allow 16bit accumulation buffers
http://xquartz.macosforge.org/trac/ticket/308
(cherry picked from commit e9e63a2118)
2009-09-23 18:21:48 -07:00
Michel Dänzer
ce1fe8ddb4 render: Don't add b8g8r8x8 format for depth 24.
The components are required to be packed in the bottom of the pixel, so this
format can't fit in depth 24.

Also fix up a comment for the addition of BGRA formats.
2009-09-23 13:10:05 +02:00
Michel Dänzer
096f21bb7a EXA: Fix some issues pointed out by clang.
Remove dead variables, fix use of uninitialized values, that kind of thing.
2009-09-23 08:24:06 +02:00
Simon Thum
824a09d856 dix: move bounds check before access
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 16:26:14 +10:00
Peter Hutterer
9edb9e9b4d Bump to 1.7.99.1
X Server 1.7 has branched off.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 13:51:40 +10:00
Kevin E Martin
66ece3bfb1 dmx: only free the default pixmaps that we actually allocated.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 12:28:17 +10:00
Kevin E Martin
20fb8c2e2f dmx: disable Get/SetWindowPixmap, we don't support composite/redirected windows
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 11:48:09 +10:00
Keith Packard
fcdc1d78cc Fix sporadic segfault on resume due to accidentally freeing cursor.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 11:38:22 +10:00
Matthias Hopf
91e1fe5863 Revert fe31f9c + 977953b to fix issue for good.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 11:38:17 +10:00
Peter Hutterer
90aa0e4a49 input: don't use typecasts to access members of InternalEvent.
To avoid confusion, the member names are now postfixed with _event.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 11:15:32 +10:00
Peter Hutterer
693d4fdb1c Xext: switch mbuf.c to dixLookupResourceByType
Resolves a linker error caused by LookupIDByType.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 11:14:00 +10:00
Peter Hutterer
493d2f9c2f Xext: remove DisplayImageBuffers from mbuf.c
Not referenced by anything.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 11:05:07 +10:00
Peter Hutterer
fff40b3353 Xext: fix up multibuffer compiler errors.
Triggered by the xextproto 7.1 change, fixed by moving the matching
declarations from the header file to here.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 10:54:47 +10:00
Peter Hutterer
4c8f834da6 configure: fix up check for tslib.
Reduce the tslib-check to the pkg-config check only instead of the previous
library symbol check followd by a pkg-config check.

This patch also reduces the required version of tslib back down to
tslib-0.0. Unfortunately, the 1.0 tarball available through
http://tslib.berlios.de/ still announces itself as 0.0.2.

Reported-by: Werner Landgraf
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 07:59:55 +10:00
Matthias Hopf
977953bf14 Less intrusive workaround for sporadic segfault on resume.
Hopefully fixes fdo #24010 (memleak).
2009-09-21 16:41:49 +02:00
Peter Hutterer
55747d256d input: define server-supported protocol versions in one single file.
include/protocol-versions.h specifies each extension version as supported by
the server and sent back on the wire to the client.

This fixes up several issues with the server potentially reporting a higher
version of the protocol if recompiled against a newer version of the
protocol.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Rémi Cardona <remi@gentoo.org>
Acked-by: Julien Cristau <jcristau@debian.org>
2009-09-21 21:47:35 +10:00
Keith Packard
0b7c6c728c xfree86/modes: Remove all framebuffer support from DGA
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.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-21 16:20:25 +10:00
Peter Hutterer
d3a3c904e5 configure: resourceproto is optional.
Although a --disable-xres flag is provided, resourceproto was listed in
REQUIRED_MODULES since 2005 (5b218617fa).
Remove, make conditional on the xres flag only.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-21 12:12:22 +10:00
Peter Hutterer
b9ae1b91f3 dmx: silence 'implicit declaration of function ‘XFixesSetPictureClipRegion’
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-21 09:23:16 +10:00
Peter Hutterer
aa71e268f5 Xext: silence 'warning: no previous prototype' for sync, bigreq and xcmisc.
xcmisc and bigreq don't have their own header so just declare it here to
shut up the compiler.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-21 09:17:56 +10:00
Peter Hutterer
00dfe69aab randr: reply with the server or client version, whichever is lower.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-21 08:12:02 +10:00
Peter Hutterer
8b75d0f9d3 render: reply with the server or client version, whichever is lower.
Protocol requires that the lower of [server version, client version] is
returned to the client.

The other part of the issue discussed in reply to [1] remains.
[1] http://lists.freedesktop.org/archives/xorg-devel/2009-September/001990.html

Reported-by: Julien Cristau

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-21 08:12:00 +10:00
Peter Hutterer
20ccc66708 xfree86: silence warning: ‘ramplen’ may be used uninitialized
'ramplen' is only set and used if stuff->size > 0 but the compiler doesn't
pick that up.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-21 08:03:37 +10:00
Keith Packard
2df10a4986 RRDestroyOutputProperty: Free randr property valid values
These were leaked when the property was destroyed.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:25 +10:00
Keith Packard
d3a84906c0 Free randr crtc and output pointer arrays
All of the crts and outputs were freed, but not the arrays full of
pointers to them.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:25 +10:00
Keith Packard
6086a60656 xf8CrtcSetModeTransform: free adjusted_mode name too
The adjusted mode was freed, but any name allocated for that was leaked.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:25 +10:00
Keith Packard
0881078273 LoaderSortExtensions: free graph nodes
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:25 +10:00
Keith Packard
d5959d37cd Free libpciaccess iterator in xf86PciProbe
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:25 +10:00
Keith Packard
ded35b7bf7 xf86Xinput.c: get DIX event queue pointer once at InitInput time
The DIX event queue is allocated before InitInput is called, so fetch
the pointer there and not randomly at other times. This avoids failing
to fetch the pointer sometimes during server regen and then smashing
memory through the stale pointer from the previous server generation.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:24 +10:00
Keith Packard
54f15a4141 probe_devices_from_device_sections: don't leak list of devices
xf86MatchDevice returned malloc'd storage containing the list of
devices to look at; make sure that gets freed.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:24 +10:00
Keith Packard
8b5086250a Eliminate bogus event resizing.
Now that all event queues hold internal events only, they never need
to be resized. Resizing them led to memory corruption as they would
get sized for an appropriate xEvent, not an internal event.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:24 +10:00
Peter Hutterer
c7987660fd xfree86: fix up wrong use of OptionRec for AutoAddDevices andAutoEnableDevices
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:24 +10:00
Thomas Jaeger
971d4eac12 Xext: include security protocol header instead of client header
Signed-off-by: Thomas Jaeger <ThJaeger@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 19:57:01 +10:00