Commit Graph

8559 Commits

Author SHA1 Message Date
Peter Hutterer
622fc98fd0 render: Fix crash in RenderAddGlyphs (#23645)
This patch fixes two bugs:
size is calculated as glyph height * padded_width. If the client submits
garbage, this may get above INT_MAX, resulting in a negative size if size is
unsigned. The sanity checks don't trigger for negative sizes and the server
goes and writes into random memory locations.

If the client submits glyphs with a width or height 0, the destination
pixmap is NULL, causing a null-pointer dereference. Since there's nothing to
composite if the width/height is 0, we might as well skip the whole thing
anyway.

Tested with Xvfb, Xephyr and Xorg.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2009-10-01 16:00:41 +10:00
Peter Hutterer
758ab55d2d render: set the glyph picture to NULL by default.
In a follow-up patch we may have glyphs with a NULL picture. To cope with
that, always set the pictures for glyphs to NULL at creation time and cope
with cleaning up such glyphs. Also, since compositing a NULL source doesn't
do a lot anyway, skip trying to do so.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2009-10-01 16:00:13 +10:00
Michel Dänzer
b5fcc5553e exa: avoid infinite loops if UTS sw fallbacks.
The upload in finish access can cause an infinite loop if
UTS returns FALSE in here.

Fixes fd.o bug #24246.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-01 15:52:28 +10:00
Keith Packard
db98b26ee1 Re-fix DGA removal.
Removing DGA ended up breaking any drivers calling into the old
xf86DiDGAInit function as it tried to see if DGA was already enabled
and ended up crashing if the VT wasn't completely initialized. Oops.

Also, if the driver initializes DGA itself, have the DiDGA
initialization overwrite that information as the DiDGA code will call
ReInit on mode detect.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-01 11:02:25 +10:00
Jeremy Huddleston
873467adad XQuartz: Set the proper bitmap for key repeats...
XkbSetRepeatKeys lies and doesn't do what it says it will...
2009-09-30 00:23:47 -07:00
Jeremy Huddleston
7bef78e199 xkb: Use XkbPerKeyBitArraySize instead of hardcoded value of 32 2009-09-30 00:23:47 -07:00
Kim Woelders
4970666827 dix: Fix potential memory corruption in doListFontsWithInfo.
Signed-off-by: Kim Woelders <kim@woelders.dk>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-30 10:21:29 +10:00
Dave Airlie
6ffda5aae7 dix/glx/composite: consolidate visual resize in one place.
The previous code was copied and in both cases incorrectly fixed
up the colormaps after resizing the visuals, this patch consolidates
the visual resize + colormaps fixups in one place. This version
also consolidates the vid allocation for the DepthPtr inside the
function.

I'm not 100% sure colormap.[ch] is the correct place for this but
visuals are mostly created in fb and I know thats not the place to
be resizing them.

Fixes fd.o bug #19470.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-30 10:00:07 +10:00
Ian Romanick
ad5c0d9efa GLX: Enable GLX 1.4 on DRI2
Return the minimum GLX version supported by all screens.  Assume that
DRI2 screens have all the required features for GLX 1.4.  Assume that
everyone else can only support GLX 1.2.

Reviewed-by: Kristian Høgsberg <krh@redhat.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-09-29 16:46:39 -07:00
Jeremy Huddleston
f11a356bce XQuartz: Cleaned up keymap setting for easier maintenance
(cherry picked from commit b9dfed9e88)
2009-09-29 00:34:41 -07:00
Jeremy Huddleston
f3223c71cf XQuartz: Remove the redundant xquartz_resetenv_display
unsetenv(DISPLAY) takes care of this for us anyway
(cherry picked from commit d2263645d8)
2009-09-29 00:34:41 -07:00
Jeremy Huddleston
9b98b88322 XQuartz: Query the BundleIdentifier from the bundle in X11.bin rather than using the configure option.
This lets X11.bin drop into any .app ... the Info.plist and Xquartz binary need to have it hardcoded still.
(cherry picked from commit 9ad16b8e50)
2009-09-29 00:34:41 -07:00
Michel Dänzer
11817a881c Fix ShmPutImage non-ZPixmap case.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=23298 .
2009-09-29 08:56:59 +02:00
Peter Hutterer
19be992d9d ephyr: if -parent is given, check for a trailing -screen. (#24144)
If -parent is given, don't open up a new window if -screen is given as well.
The commandline option -screen allows to set the depth of the embedded
Xephry instance, even though width and height are autoscaled on -parent.

This patch checks for a -screen parameter after -parent and - if one is
found - delays initializing the screen. The parent window id is stored
temporarily but re-set after a -screen argument.
The following command is thus valid:

Xephyr -parent 1234 -screen 640x480@8 -screen 1024x768

It embeds the first 8-bit screen into window 1234 and opens up a new window
for the second screen. Multiple parent arguments are possible, the screens
are embedded in-order.

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

Tested-by: Vic Lee
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-29 09:38:44 +10:00
Ben Byer
efacd7bfd0 Add (ok, fix) support for DTrace under OS X
(cherry picked from commit 8428a57184)
2009-09-27 23:32:19 -07:00
Jeremy Huddleston
b3415187e9 Rootless: Correct border rendering on parent-relative windows
Resurected code from the punted RootlessPaintBackground/Border and added it conditionally to miPaintWindow
(cherry picked from commit cf2e3312cf)
2009-09-27 23:31:50 -07:00
Jeremy Huddleston
6df00917ca XQuartz: Fix QuartzSetCursor to match the expected prototype.
(cherry picked from commit dadab5a227)
2009-09-27 23:31:41 -07:00
Jeremy Huddleston
67a51cd9ef XQuartz: Fix a bunch of compilation warnings about style
(cherry picked from commit 54000bdcbc)
2009-09-27 23:31:35 -07:00
Jeremy Huddleston
96780eaf32 XQuartz: Nuke TSM
It's deprecated in SnowLeopard.  Ben and I both have no idea what it is for.  It says something about unicode input, but urxvt seems fine taking in unicode, so /shrug... bye.
(cherry picked from commit 29cb904e4d)
2009-09-27 23:31:29 -07:00
Jeremy Huddleston
15e15816a2 XQuartz: Fix inverse map from mode_switch to alt
(cherry picked from commit de6cee11e1)
2009-09-27 23:31:23 -07:00
Jeremy Huddleston
558d803b29 XQuartz: Force a keymap resync on the first keypress to workaround XKB mucking with our keymap.
We need to find a better way to work with XKB on this.
(cherry picked from commit ceaa5c779c)
2009-09-27 23:31:16 -07:00
Jeremy Huddleston
226b1033b4 XQuartz: Transition from xEvent based mieq to InternalEvent
(cherry picked from commit a3dbde2de8)
2009-09-27 23:31:07 -07:00
Peter Hutterer
0c2731596f Put tests for zero-sized strings in quotes (#24060)
X.Org Bug 24060 <http://bugs.freedesktop.org/show_bug.cgi?id=24060>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-28 15:07:48 +10:00
Peter Hutterer
83023ffd09 xfree86: use the DDC size if either width or height of DisplaySize is bogus.
If either width or height of DisplaySize is invalid, assume that the
configuration is invalid and use the DDC-reported values instead.

See Comment 9, Bug 9758.
http://bugs.freedesktop.org/show_bug.cgi?id=9758#c9

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Dave Airlie <airlied@redhat.com>
2009-09-28 14:51:39 +10:00
Peter Hutterer
f772014c43 render: Plug a memory leak in AddGlyph. (#23286)
AddGlyph was missing the FreePicture() call that DeleteGlyph used, resulting
in a memory leak when more than one Glyph was added in a RenderAddGlyphs
request.

Since the code in AddGlyph and DeleteGlyph is identical, move into a static
function to avoid such mistakes in the future.

X.Org Bug 23286 <http://bugs.freedesktop.org/show_bug.cgi?id=23286>
2009-09-28 12:59:27 +10:00
Tilman Sauerbeck
3db28f92b0 configure: make XNEST default to auto.
When we're checking whether to build Xnest, we're comparing the
variable to auto but before it never was assigned that.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>

[Xnest was enabled to yes to increase build exposure and catch compiler
errors early. The requirements to Xnest are quite low and I expect most
developers have them, so Xnext will be enabled on most boxes. Anyone
missing those requires probably doesn't want to build Xnest anyway.]
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-28 11:16:44 +10:00
Samuel Thibault
78ad6ca9a9 xfree86: Hurd fix
I hadn't paid attention that the parameters order had changed, here is a
trivial patch, please apply.

Signed-off-by: Julien Cristau <jcristau@debian.org>
2009-09-28 00:58:23 +02:00
Jeremy Huddleston
fb7938315b Xi: Make CopyKeyClass X_HIDDEN to avoid ugly ifdef-fu
(cherry picked from commit 6d436e17a9ae7f4ce8537f3fabc052d4f07ca75f)
2009-09-27 09:52:03 -07:00
Jeremy Huddleston
a2cd211778 XQuartz: Stop checking version numbers of the bundle because CFBundleGetVersionNumber is gimpish
(cherry picked from commit 9f5bdd8960)
2009-09-26 23:45:35 -07:00
Jeremy Huddleston
fbfbf93405 XQuartz: Add pressure/tilt property labels
(cherry picked from commit 84ea67130ef6b4086042aad6036ce66f93ea3e56)
2009-09-26 23:30:57 -07:00
Jeremy Huddleston
65f1484089 XQuartz: Fix a brain-o array indexing problem
/bop Peter
(cherry picked from commit 494a6b046a258ad83dc98eb92b7c3d8f1d2626bb)
2009-09-26 23:30:51 -07:00
Jeremy Huddleston
7159381881 XQuartz: Nuke duplicate locks that make painful headaches
(cherry picked from commit 1dd56322bd1722f2427fb2d833c5608248b60cf0)
2009-09-26 23:30:46 -07:00
Jeremy Huddleston
fba8c702ba Xi: CopyKeyClass is not static for XQuartz
(cherry picked from commit 85d6402354cdf143c6490f2725744c2f08b5605b)
2009-09-26 23:30:41 -07:00
Jeremy Huddleston
dc1e1bebff XQuartz: Use internal xshm header for new xextproto
(cherry picked from commit 1755239330)
(cherry picked from commit 697be460d0)
2009-09-26 23:30:39 -07:00
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