Eamon Walsh
d7c5e8bfc1
Modified performance patches from Arjan van de Ven <arjan@infradead.org>
...
Subject: [PATCH] fix some performance gaps in Xace
The XaceHook function is used in several hotpaths.
The problem with it (performance wise) is twofold:
* The XaceHook function has a big switch() statement for the hook number in it
* The XaceHook function uses varargs to reassemble the final dispatch arguments again
Both are expensive operations... for something that is known at compile time
This patch turns the hotpath XaceHook call into a direct call to avoid
the switch and varargs; this gives me over 10% performance gain
on the x11perf benchmark.
2007-11-06 16:26:09 -05:00
Eamon Walsh
a52c9b2a59
Merge branch 'master' into XACE-SELINUX
...
Conflicts:
dix/dispatch.c
dix/property.c
hw/xfree86/common/xf86VidMode.c
include/xkbsrv.h
render/glyph.c
xkb/xkbActions.c
2007-11-05 19:08:36 -05:00
Daniel Stone
dda10c9066
Remove all traces of external RGB database (and Speedo)
...
Remove all references to an external RGB database (which hasn't been enabled
for a very long time). Also get rid of some references to Speedo fonts.
2007-11-05 16:28:35 +00:00
Daniel Stone
83e5d9e75d
DIX: Remove last alloca call
...
Replace with heap allocations.
2007-11-05 14:36:54 +00:00
Daniel Stone
914922fd61
DIX: Remove usage of alloca
...
Replace with heap allocations.
2007-11-05 14:34:43 +00:00
Ben Byer
6e4f5cf83f
changing ALLOCATE_LOCAL to xalloc to prevent stack overflow
2007-11-05 05:53:34 -08:00
Aaron Plattner
f2e310132f
Add CreatePixmap allocation hints.
...
These hints allow an acceleration architecture to optimize allocation of certain
types of pixmaps, such as pixmaps that will serve as backing pixmaps for
redirected windows.
2007-11-04 16:11:28 -08:00
Adam Jackson
f01e149d1a
Move SIGUSR1 notification as late as possible.
...
If we inherited a signal mask from the parent process that ignores SIGUSR1,
then we will send SIGUSR1 to the parent to indicate when we're ready to
accept connections. Unfortunately, we send this notification way too
early, right after creating the sockets rather than just before entering
the main loop.
Move it to just before Dispatch() so we're not lying quite so much.
2007-11-02 11:54:16 -04:00
Peter Hutterer
352c5a3112
dix: don't compress motion events from different devices (EventEnqueue)
...
(cherry picked from commit 8840829ab9 )
2007-10-28 16:07:30 +02:00
Peter Hutterer
8d3d027062
dix: add XI event support to FixKeyState.
...
FixKeyState needs to be able to handle XI events, otherwise we get "impossible
keyboard events" on server zaps and other special key combos.
(cherry picked from commit 5ee409794e )
2007-10-28 16:05:04 +02:00
Eamon Walsh
5f9095f0d2
registry: Remove synthetic bit from event types in lookup function.
2007-10-25 19:09:26 -04:00
Eamon Walsh
8c6923018c
xace: Add a "manage" access check when setting the Redirect event bits.
2007-10-25 19:01:29 -04:00
Naoki Hamada
242f56f722
Input: Fix key down test (bug #12858 )
...
Fix the botched previous key_is_down test, which would give false positives.
Also move key_autorepeats to a separate inline function.
2007-10-25 18:46:27 +03:00
Eamon Walsh
0388a59a6e
Revert "registry: special case minor number when looking up core requests."
...
This reverts commit 31110d6837 .
This is handled properly by StandardMinorOpcode().
2007-10-23 20:59:21 -04:00
Peter Hutterer
b7ee005d32
dix: Don't interfere grabs the interfering device is of different type.
...
A pointer device should be able to send events while the client has a core
grab on a keyboard device, and likewise.
2007-10-24 10:26:12 +09:30
Peter Hutterer
02508614b9
dix: check for core passive grabs on inferiors when replaying events.
2007-10-24 10:09:18 +09:30
Eamon Walsh
825f09dffd
xace: Still more changes to selection code. Removed the SelectionPtr from
...
the hook - the hook only needs the Atom to control access to the selection
object. Upgraded the SelectionCallback to take a client argument and
additional type codes so that it can be used for redirection.
2007-10-23 17:12:57 -04:00
Eamon Walsh
9e0a468af1
xace: try to pretend events were sent when a denial occurs.
...
Probably need to redo the error return paths in these functions
at some point.
2007-10-23 13:35:30 -04:00
Peter Hutterer
7ef863720d
dix: Create new sprite for floating devices.
...
Floating devices get sprites, but still aren't spriteOwners. This prevents
them from getting rendered, and also stops segfaulting.
(not really solving the problems with keyboards though)
2007-10-23 17:28:03 +09:30
Eamon Walsh
12e889d202
xace: Bug fixes, name changes to selection access hooks and fields.
2007-10-19 18:43:38 -04:00
Peter Hutterer
5ba738935f
Xi: remove ChangePointerKeyboardPairing in favour of ChangeDeviceHierarchy.
2007-10-19 14:36:37 +09:30
Eamon Walsh
06eb830169
xace: Fix bug in AddPassiveGrabToList(), was using wrong GrabPtr.
2007-10-18 12:31:14 -04:00
Eamon Walsh
6107a24503
dix: Add client parameter to AddPassiveGrabsToList().
2007-10-18 12:24:55 -04:00
Eamon Walsh
31110d6837
registry: special case minor number when looking up core requests.
2007-10-18 10:30:44 -04:00
Eamon Walsh
e3fd90ae9c
registry: Add "X11:" prefix to core protocol names.
2007-10-18 10:29:10 -04:00
Eamon Walsh
c3f7b86255
Merge branch 'master' into XACE-SELINUX
...
Conflicts:
os/access.c
2007-10-17 15:00:54 -04:00
Eamon Walsh
e3a8cbe523
xace: add creation/labeling hook to CreateRootWindow().
2007-10-17 13:48:44 -04:00
Peter Hutterer
1d9ebbac8c
dix: Make InitCoreDevices use AllocMasterDevice.
...
Also change naming a bit, append "pointer" and "keyboard" to master devices
instead of -ptr and -keybd.
2007-10-16 18:46:12 +09:30
Peter Hutterer
299573f461
dix: add AllocMasterDevice for creation of new master devices.
...
Devices are initiated pretty much the same as the core devices.
2007-10-16 18:40:15 +09:30
Peter Hutterer
b697c4ed14
dix: CheckPassiveGrabOnWindow: only get paired device for non-keyboards.
2007-10-16 17:47:06 +09:30
Peter Hutterer
caa69d8f7b
dix: fix detritus from adding lastSlave field.
2007-10-16 17:38:13 +09:30
Peter Hutterer
90d077e537
dix: GetPointerEvents: get state from master device before applying valuators.
...
We need to get lastx/y from the master device before we start applying
acceleration etc. Otherwise we get jumping cursors, which is reasonably bad.
2007-10-16 17:37:33 +09:30
Peter Hutterer
e6bd8ae060
dix: set the device's sprite when using AttachDevice
...
Sprite is set to the master device's sprite.
2007-10-16 15:59:30 +09:30
Peter Hutterer
c7b878b904
dix: don't treat VCK/VCP separately in DevHasCursor, IsPointer/KeyboardDevice.
2007-10-16 15:07:31 +09:30
Peter Hutterer
e9f149fb56
Fix up detritus from removing GetPairedPointer/Keyboard.
2007-10-16 14:24:20 +09:30
Peter Hutterer
840bde3d32
dix: GetPairedDevice: return dev paired with master for slave devices.
2007-10-16 13:09:35 +09:30
Peter Hutterer
9ecbbf198f
dix: adjust PickPointer and PickKeyboard to get the first master device.
...
Simplifies it a lot, since we always have at least one master device
available at all times, so less mucking around.
2007-10-16 12:05:09 +09:30
Peter Hutterer
0c5f65ecd3
dix: don't allow slave devices as ClientPointer
2007-10-16 12:04:56 +09:30
Peter Hutterer
9ccc9ab6f2
dix: don't call CloseDevice on VCP/VCK separately.
2007-10-16 12:04:48 +09:30
Peter Hutterer
e4fd981b48
dix: check for isMaster before calling DeviceCursorCleanup.
2007-10-16 12:04:40 +09:30
Peter Hutterer
7503d13407
dix: don't check VCK and VCP separately when looking for device ids.
...
Both are part of the device list again, so we cover them there.
2007-10-16 12:04:30 +09:30
Peter Hutterer
032e906711
dix: Remove GetPairedPointer, GetPairedKeyboard in favour of GetPairedDevice.
2007-10-16 11:57:42 +09:30
Peter Hutterer
3e07e73fef
dix: remove pairing/attachment from InitAndStartDevices.
...
If we enabled in the correct order, this has all been done already.
2007-10-16 11:34:29 +09:30
Peter Hutterer
38baac71bd
dix: Set bidirectional pairing, don't allow pairing with already paired devs.
2007-10-16 11:30:59 +09:30
Peter Hutterer
70efd3d06a
dix: fix up Activate/Enable/Disable device.
...
Set isMaster for VCP/VCK.
Init sprites for master pointer devices.
Pair master kbds with master pointers (1:1 pairing!).
Attach other devices to VCP/VCK.
2007-10-16 11:30:32 +09:30
Peter Hutterer
bd7d5255ce
dix: add AttachDevice, needed to attach a slave device to a master device.
...
For now, we don't allow attaching slaves to other slaves, and we don't allow
pairing slaves with other slaves.
Pairing is for master keyboard->master pointer only.
Attaching is for slave device->master device only.
2007-10-16 11:18:31 +09:30
Peter Hutterer
be1565f6b8
dix: Set core devices to ProcessOtherEvents, set sendCore and XKB.
...
Even the virtual core devices should send through ProcessOtherEvents.
2007-10-16 11:05:34 +09:30
Eamon Walsh
6adeba1730
dix: Add a new "registry" mechanism for registering string names of things.
...
Supports protocol requests, events, and errors, and resource names.
Modify XRES extension to use it.
2007-10-11 14:18:59 -04:00
Eamon Walsh
8f23d40068
xace: move the property deletion hook inside the DeleteProperty function.
2007-10-10 19:56:03 -04:00
Eamon Walsh
473bc6ec4c
xace: remove the special-cased "ignore" functionality from the property code.
...
There will be no more faking of Success to hide things. XACE does not
provide polyinstantiation.
2007-10-10 19:43:12 -04:00