The former <X11/extensions/XKBsrv.h> has been pulled into the server now as
include/xkbsrv.h, and the world updated to look for it in the new place,
since it made no sense to define server API in an extension header. Any
further work along this line will need to do similar things with XKBgeom.h
and friends.
Move the bell into an OS function, and use that if it's declared; else,
fall back to using the driver's function.
Remove the Linux keyboard bell function; just move it into the OS layer.
Use named initialisers when converting the old structures, and eliminate
unused functions.
Add KdOsAddInputDrivers, which adds all relevant input drivers.
Could possibly be refactored to KdAddInputDrivers, which called through
OsFuncs to a new function, if it existed.
Move the keymap copying to event processing time (in
ProcessInputEvents), instead of being at event enqueuing time.
Break SetCore{Pointer,Keyboard} out into separate functions.
Change mieqEnqueue to take a device pointer, that asks for the
_original_ device associated with this event.
Don't allocate events on every GKE/GKVE/GPE call, just have the DDX manage
it instead. Introduce GetMaximumEventsNum(), which is the maximum number
of events these functions will ever produce.
Do a linear n -> n initialisation on the map up until KD_MAX_BUTTON in
KdNewPointer, moving it out of both KdParsePointer, and KdPointerProc.
Also remove dead pointer acceleration code.
Convert KDrive to GPE/GKE interface.
Add first-class drivers and enumerate every device separately through
Xi, instead of lamely attempting to aggregate them.
Add XKB support to the Linux keyboard driver.
Add 'thumb button' support to the tslib driver.
Rejig InitInput, so each DDX has to add a list of drivers it supports.
Support NewInputDeviceRequest, et al.
Add #include <sys/file.h> on Solaris for FNONBLOCK/FASYNC definitions
hw/kdriver/linux/Makefile.am Move agp.c & agp.h to KDRIVE_HW_SOURCES since
they're not needed for Xephyr-only builds
Add -lrt to XEPHYR_LIBS if needed to get nanosleep().
Changed the semantics of the Convolution filter a bit. It now doesn't try
to normalize the filter values but leaves this to the client. This
gives more reasonable behaviour in the limit where the filter
parameters sum up to 0.
in the kaa structure: markSync and waitMarker. The first, if set,
returns a hardware-dependent marker number which can then be waited for
with waitMarker. If markSync is absent (which is the case on all
drivers currently), waitMarker must wait for idle on any given marker
number. The intention is to allow for more parallelism when we get
downloading from framebuffer, or more fine-grained idling.
- Replace the KdMarkSync/KdCheckSync functions with kaaMarkSync and
kaaWaitSync. These will need to be refined when KAA starts being smart
about using them. Merge kpict.c into kasync.c since kasyn.c has all the
rest of these fallback funcs.
- Restructure all drivers to initialize a KaaInfo structure by hand rather
than statically in dubious order.
- Whack the i810 driver into shape in hopes that it'll work after this
change (it certainly wouldn't have before this). Doesn't support my
i845 though.
- Make a new KXV helper to avoid duplicated code to fill the region with
the necessary color key. Use it in i810 and mach64 (tested).
might be able to do Precise in hardware, so leave it up to the driver.
- Add a helper function for computing a set of offsets for smooth trapezoid
rasterizing using many sharp trapezoids.
RasterizeTrapezoid screen function. These hooks will be called for
imprecise, non-sharp trapezoids with A8 destinations.
Note that the current main consumer of trapezoids, cairo, is requesting
precise, sharp trapezoids by not changing the default Picture
attributes, but gets non-sharp effects in software because fb bases its
choice of sharp/non-sharp on the mask format being A8 vs A1, and cairo
asks for A8. Follow fb's (poor?) example by ignoring the sharp setting
and basing the choice off of the mask being A8.
heuristic, delay the decision until the first
kaaPixmapUse{Screen|Memory}, and put it in framebuffer if UseScreen was
called. Provides a significant improvement in cairo speeds (100%
speedup in cairogears here) and is likely to improve text performance
as well.
rate selection necessary for Mac fbdev
Don't know about fb changes to pixmaps, so can't track dirt.
Add Mac specific 1280x854 mode. Warn when requested mode isn't found.
Add ability to soft-boot video cards.
Add region expand request. FIXME: need test cases
header include. I don't know how this happened, but I'm going to blame
a "few" fscks having happened between testing the code and committing
(due to other driver changes that made me not blame dirty for the
failures I saw) for disappearance of kasync.c changes. Fixes a lot of
corruption.
offscreen pixmap area, and set it when any rendering occurs. When
moving a pixmap out of offscreen, don't read data back if it wasn't
dirtied (compared to the system memory copy).
out when allocation can't find a free area of the requested size. When
offscreen pixmaps get used, the offscreen area's score is increased by
a constant value. Every certain number of increases, all offscreen area
scores get decreased by a fraction. When choosing a set of areas to
remove for a new allocation, the set of areas with the smallest total
score is chosen for removal. While this is not the smartest system, it
prevents things like always removing the first offscreen area in memory
(likely the most recent) to be kicked out when doing replacing.
solid-fill-based composite acceleration.
- Use a real pixmap when doing an UploadToScratch (For pDrawable->type ==
DRAWABLE_WINDOW, you need to get the backing pixmap).
- Pass back the x/y offsets from kaaGetOffscreenPixmap unconditionally,
because they'll be used in the scratch case.
- Turn on the Render acceleration for Rage 128 and Radeon 100-series at
last!
Fix a few allocation bugs with alternate visual ids Allow for non-8/8/8
alternate visuals
Turn off any existing shadow before enabling it again (avoids
re-registering existing damage)
Add some validation code to catch re-registered damages
addition to the ARGB32 one. This allows 'glitz' to run on top of any X
server using mesa.
Switch to using 32bpp for depth 24 pixmaps (even when the frame buffer is
not depth 24).
KdCheckSync -- the boolean used in the latter won't be set yet.
Oops. == instead of =.
Must sync hardware before rasterizing trapezoids in case the mask is in
off-screen memory and has just been erased. Yes, it is silly to place
masks in off-screen memory. That's a separate issue.
Off-screen reallocation could have used a stale pointer.
Separate framebuffer mapping computation from actual frame buffer mapping.
Now map the frame buffer from vesaEnable so that VT switch shares the
same mapping code. This makes sure any shadow framebuffer is allocated
again.
pixmap into temporary offscreen storage. Subsequent UploadToScratch may
clobber the data of previous ones. This allows hardware acceleration of
composite operations on glyphs.
- Add a new UploadToScreen kaa hook for doing the actual moving of data to
framebuffer. This would allow us to do things like hostdata blits or
memcpy to agp and then blit.
- Add an UploadToScreen on ATI which is just memcpy, but which will be
replaced with a hostdata blit soon.
- Add UploadToScratch on ATI and reserve 64k of scratch space. This
provided a 3x speedup of rgb24text on my Radeon.
functions. Along with making things more readable, it fixes a problem
where the coordinates would get messed up if acceleration failed due to
things like pixmaps being in the wrong locations.
pixmaps are offscreen and don't have alpha maps. It is the last case
checked before going to software fallback
- Use the new Composite hook in the ati driver to implement acceleration of
most Composites that get done in an xcompmgr environment on r100 series
cards. It is only available when using the DRM. There are still some
corruption issues, but the DRI is still non-default and I need to get
this into version control.
- Add libdrm and libdri. Portions of the DRI extension are stubbed out.
- Use the DRM in the ATI driver when available. This provides a minor
performance improvement in x11perf, and opens the possibility of using
the 3d hardware for acceleration in the future.
- Implement solid fill acceleration for Composite in KAA.
- Implement Blend hook for Composite and use it on r128.
- Fix a bug of mine that resulted in overuse of offscreen memory.
- Fix many miscellaneous bugs in ATI driver and add PCI IDs.
available, with fbdev being used by default.
- Use depth 16 by default when vesa backend is used.
- Add MMIO defines for PowerPC (should be in a common location).
Many thanks for Michel Daenzer for much of this code.
help with ati, and future DRM drivers.
- Add new "ati" kdrive driver. It has ancestry in the r128 driver from
andersca, but took a detour through being the WIP SiS 300 driver on the
way. It supports Radeons (tested on QD VIVO and 7500) and Rage 128.
Current limitations include that it requires depth 16 and that the
other Rage 128 PCI IDs aren't included yet.
change, just cleaning up a bit)
Reset the screen->memory_base value when frame buffer is remapped. This
makes sure new off-screen allocations point at the newly mapped region
rather than the old (now unmapped) region.
Sufficient, but not always necessary.
Add borderClip to damage on creation so that clients needn't guess.
Fix API to FbDots functions to make PolyPoint work with screen_x/screen_y
offsets
Add debugging code to make sure no pictures are left pointing at freed
pixmaps. "Can't" happen, but it did once.
Change KdOffscreenArea structure to eliminate separate private structure,
eliminate the ScreenPtr, change from doubly linked to singly linked
list.
Don't damage BackgroundNone windows on PW_BACKGROUND. Re-clip damage to
borderClip in DamageSubtract.
drawable pixmap rather than directly into the frame buffer. Rewrite
logic in kdoffscreen to make space for new allocations, now deals
correctly with locked areas.
unwrapping pixmap operations. This makes sure the accelerated code gets
invoked for pixmaps
Add pixmap migration support to kaa. Can't quite automatically migrate
pixmaps off-screen, but soon we will. Can kick objects out of video
memory. Move per-screen linked list pointers to pixmap private. Wrap
Composite in preparation for migrating pixmaps. Have kasync ignore
drawable type so that pixmaps trigger sync Add KdOffscreenFini to
cleanup on server reset. Switch off screen area to have only a 'save'
function; moving objects to off screen memory is done by saving then
freeing the area.
hw/kdrive/src/kdrive.h Add -switchCmd option to set command that is
executed whenever the VT is enabled or disabled. This permits input
device to be customized by external apps when switching to X.
may depend on setting done there (Egbert Eich).
318. Several fixes for cross compile environment (Egbert Eich).
317. Added code to allow for building of static only libraries with
-fPIC for platforms which require it (Egbert Eich).
316. Added '-m32' to gcc flags as default for ia32 builds when gcc version
is >= 3.1. This allows building a 32 bit Version of X on 64bit x86-64
(Egbert Eich).
315. Changed direct calls of ld to 'gcc -nostdlib' for Linux (Egbert Eich).
314. Changed calls to as to 'gcc -c -x assembler-with-cpp' for Linux
(Egbert Eich).
313. Added '-fno-strict-aliasing' flag to gcc version >= 3.1 (Egbert Eich).
Strict requires that one address must not contain pointers to different
types - a feature heavily used by X (Egbert Eich).
312. Fixed a core dump problem in libXtt (?) (Egbert Eich).
311. Removed '#pragma pack' from structures that contain function pointers
in x86emu. This causes problems on gcc 3.1 for ia64 (Egbert Eich).
310. Added defines for missing X types to saverproto.h (Egbert Eich).
309. Fixed compiler warings generated by gcc >= 3.1 in mesa drivers (Egbert
Eich).
308. For platforms that allow both 32 and 64 bit libraries to be executed
split Xlib i18n modules path into
<libpath>/X11R6/lib/X11/locale/lib/common and
<libpath>/X11R6/lib/X11/locale/lib64/common. 'lib64' has been defined
to be the default path for 64bit shared libraries on these platforms
(Egbert Eich).
307. Fixed obvious typo in OMlib (Egbert Eich).
306. Fixed code in cfb that didn't comply with C sequence rules. Modern C
compilers tend to be more aggressive on code reordering (Egbert Eich).
305. Changed arguments of NoopDDA() from VarArgs to void. Handling of
VarArgs by gcc isn't compatible with the way it was used on certain
platforms (Egbert Eich).
304. Added support for 32bit pixmaps for 24bit overlay framebuffers in fb
overlay code (Egbert Eich).
303. Fixed kdrive to print a meaningful error message instead of just core
dump when no matching graphics cards is found (Egbert Eich).
302. fixed portability bug in xwd (Andreas Schwab <schwab@suse.de>)
301. fixed X Server crash, which happended each time a proportional
iso10646 font was loaded with xtt backend (Yong Li
<rigel863@yahoo.com>)
300. Added some ARM specific fixes to compiler.h (Uli Hecht).
299. Added a virtual 'dummy' driver (Egbert Eich).
298. Fixed core dump when certain access functions are not set in xf86Bus.c
(Egbert Eich).
297. Fixed problem where SIGIO could be disabled after a server reset.
296. Added configurable list of devices the xf86Misc extension is allowed
to change the mouse device to (Egbert Eich).
295. Changed default mouse type to 'auto' when generating config file with
'-configure' (Egbert Eich).
294. Made sure keyboard modifier settings are consistent after exit from
DGA when the xkb extension is used (Egbert Eich).
293. Disabled keyboard processing when Xserver is suspended by power
management. This allows effective locking of laptops when stolen
(Egbert Eich).
292. Added/improved options for lockfile syncing (Egbert Eich).
291. Added support for backup copy of Xserver logfile (Egbert Eich).
290. Fixed GetTimeInMillis() to use deltas instead of absolute time
returend by gettimeofday(). This ensures time is monotonic in X (Egbert
Eich).
289. Fixed xf86Misc extension to allow modification of Expps2 mice (Egbert
Eich).
288. Made code in xf86MiscExt.c more readable (Egbert Eich).
287. Fixed PCI CardBus bridge handling (Egbert Eich).
286. Added code to reenable PCI bus mastering after coming back from a VT
switch to radeon driver (Charl P. Botha <http://cpbotha.net/>) (Egbert
Eich).
285. Dito for r128 driver (M. Harris).
284. Dito for glint and mga driver (Egbert Eich).
283. Fixed double scan issues for low res modes in C&T driver (Egbert
Eich).
282. Set rgbBits to 8 for all HiQV chips in chips driver (Egbert Eich).
281. Moved initialization of accel funtions past initialization of
offscreen fb manager in chips driver (Egbert Eich).
280. Fixed initialization of video in chips driver (?).
279. Fixed HALlib problem restoring text mode on G550 (Egbert Eich).
278. Restructured and included Matrox's Merged Framebuffer changes to mga
driver (Egbert Eich).
277. G450/550 clockchip programming fixes (Matrox).
276. Fixed HW Cursor for HALlib frame granularity (Egbert Eich).
275. Enabling 2D accel in 24-bit for neomagic 2360 and 2380 (Egbert Eich).
274. Added support for builtin 1024x480 mode of Sony subnotebooks for
Neomagic driver (Egbert Eich).
273. Fixed support for lowRes (320x240) modes in neomagic driver (Egbert
Eich).
272. Fixed RAC function registration in S3 driver (Egbert Eich).
271. Added some voodoo to screen initialization of S3 driver (Egbert Eich).
270. Fixed vbe/int10 support in SMI driver. It used to core dump when BIOS
was not usable (Egbert Eich).
269. Separated BRIGHTNESS and and CAPTURE_BRIGNTESS video attributes in smi
driver: CAPTURE_BRIGHTNESS refers to the capture chip (ie. Philips
SAA7110) while BRIGHTNESS controls the video overlay of the SMI chip
itself (Egbert Eich).
268. Disable automatic loading of DRI when running SUN ffb as this is
inconsistent with other drivers (Thorsten Kukuk).
267. Fixed Gamma/Brightness code in trident driver (Egbert Eich).
266. Added FpDelay debugging option (Egbert Eich).
260. Fixed video support for Trident 9397 (Egbert Eich).
265. Fixed Cursor/VT switch support for vmware driver (Egbert Eich).
264. Fixed Blit problems in vmware driver when running KDE (Egbert Eich).
263. Added RENDER support to vmware driver (Egbert Eich).
262. Added C&T 69030 to extrapci.ids (Egbert Eich).
261. Improved mouse autodetection code (Egbert Eich).
260. Restructured int10 code so that vm86 and x86emu support can be loaded
as modules. Implemented heuristic to try vm86 first and fall back to
x86emu. This allows 32 bit Xservers to run on x86_64 on 64-bit kernel
without vm86 support (Egbert Eich).
259. Restructured elf loader: determine which section to load from
elfheader flags (Egbert Eich).
258. Adding RENDER Support to RAC (Egbert Eich).
257. Using borderClip instead of borderSize region for redisplay function
in miext/shadow code to avoid core dumps when vt switched away (Egbert
Eich).
256. Replacing sprintf() by snprintf() in lbxproxy to eliminate possible
buffer overrun exploits (Egbert Eich).
255. KP_Decimal fixes to Czech and Slovak keybards (Jan Holesovsky
<kendy@suse.cz>) (Egbert Eich).
Add support for global screen origins (-origin option), handles both
Xinerama and mouse crossings.
Fix XV enable/disable sequences -- can't use card wrappers as cards have
more than one screen.
Change vesa/fbdev to use new depth-independent rotation shadow update
Fix vesa to allow starting rotation value (again)
Make vesa driver write all colormap changes in one INT10 call
37. Xdm/PAM fixes: leave it to PAM to observe whether or not an account is
locked, and reinitialize credentials after calling initgroups(),
because sometimes the credentials pam_setcred() gives are in the form
of group membership (#4693, Mike Harris).
35. Fix warnings when building mieq.c (#4689, Adam Sulmicki).
34. Fix some bugs in the cz and sk entried in XKB's keymap/xfree86 file
(#4692, Ivan Pascal).
33. Add 'hr' entries to XKB's keymap/xfree86 and rules/xfree86.lst files
(#4687, Nerijus Baliunas).
32. Include <X11/Xutil.h> in shape.h to get Region typedef (#4686, Adam
Sulmicki).
the Compaq IPAQ. Use -listmodes to see supported modes. Hack the
touchscreen driver to work as a mouse pad for the VGA screen. Fixup key
bindings so xmodmap can remap IPAQ's buttons as mouse buttons.
161. Fix *BSD aperture driver to allow for int10 (Bernd Ernesti, Marc La
France).
160. Fix vesafb restore problem in ATI driver (Marc La France).
159. Fix a few more compilation glitches (Marc La France).
Add overlay support in the Tiny-X Savage4 driver (required changing lots of
Tiny-X code). Savage4 now support 8/16, 8/32 overlays.
Add IGS Cyberpro 5050 driver. This chip has bus support for embeded
systems.
Pascal).
3553. Take advantage of FB speedups in Tiny-X (#3568, Keith Packard).
3552. Speed up FB and do 32bit accesses instead of 64bit accesses (#3567,
Keith Packard).
3551. Eliminate saving the contents of the screen durint VT switching
(#3562, Keith Packard).
3550. Make using fb easier for driver writers (#3561, Keith Packard).
3549. Fix TCP font server connections (#3560, Keith Packard).
3548. Implement the "OverclockMem" option for the Millennium and Millennium
II (#3558, Andrew Aitchison).
3547. Speed up some FB performance problems (#3557, 3559, 3560, Keith
Packard).
3546. Work around a bad code generation bug in gcc 2.7.2.3 that shows up in
XAA (#3550, Rik Faith).
3545. Add a -brief option to xclock to show only hours and minutes when in
digital mode (#3549, Keith Packard).
3544. Fix some dead key problems with xkb symbols for Swiss French and
Swiss German keyboards (#3546, Charles Lopes).
3335. Clean up compiler warnings in lib/font/bitmap (#3411, Matt Grossman).
3334. TGA fixes, add sync on green (#3410, Matt Grossman).
3333. Fix NULL pointer dereference in libXaw (#3406, Christopher Sekiya).
3332. Add Rage128 support (#3405, Rik Faith, funded by ATI).
3331. Add MTRR support for NetBSD and OpenBSD. Add new NetBSD aperture
driver (#3404, Matthieu Herrb).
3330. Xterm patch #121 (#3402, Thomas Dickey).
3329. Rendition driver bugfixes and alpha related cleanups (#3400, Dejan
Ilic, Marc Langenbach, Egbert Eich).
3328. Add void input device (#3392, Frederic Lepied).
3327. Changed the Xon serial option to be able to select xon/xoff for
input, output or both. Add support for Graphire models. Change wacom
init phase to use new Xoff option (#3391, Frederic Lepied).
3326. Change the SwapAxes option to SwapXY in elographics/microtouch driver
to match an already existing option in the Dynapro driver. Add a Focus
class capability to the elographics driver (#3395, Patrick Lecoanet).
3325. Update mouse rate handling (#3388, Harald Koenig).
3324. Fix NULL pointer dereference in misprite.c (#3380, Edward Wang).
3323. Add FBDev and ShadowFB support to glint driver. Add new option
"NoWriteBitmap" (#3383, Michel Daenzer).
3322. Update SuperProbe to handle S3 Savage4, Savage200 and clean up
Trio3D/Savage3D detection (#3382,3384 Harald Koenig).
3321. Add new framebuffer code and tiny X DDX architecture (#3379, Keith
Packard).
3320. Add DGA2 documentation (#3378, Mark Vojkovich).
3319. Update XFree86 manpage wrt -bpp/-depth/-fbbpp (#3377, Andy Isaacson).
3318. Make SuperProbe check primary cards, only (#3374, Harald Koenig).
3317. Add SilkenMouse to *BSD (#3373, Matthieu Herrb).
3316. Allow SilkenMouse to work if not all drivers of an OS support SIGIO
(#3372, Keith Packard).
3315. Fix a few problems in TGA driver and add support for backing store
and SilkenMouse (#3371, Matt Grossman).
3314. Add smarter scheduler (#3370, Keith Packard).
3313. Xterm patch #120 (#3369, Thomas Dickey).
3312. Enable xf86SetKbdRate function on Solaris 8 (#3364, David Holland).
3311. Fix some bugs and add acceleration to Rendition server (#3360, Dejan
Ilic).
3310. Make raw DDC information available as properties in the root window
(#3357, Andrew Aitchison).
3309. Fix for xf86CreateRootWindow (#3355, Andrew Aitchison).
3308. Add manpage for the chips driver (#3353, David Bateman).
3307. Update contact info (#3352, Andrew van der Stock).
3306. Add kbd rate support for Linux (#3363, Harald Koenig).
3305. Update Portuguese XKB map (#3351, Joao Esteves, Francisco Colaco).
3304. Fix text clipping in 3dfx driver (#3349, Henrik Harmsen).
3303. Fix S3 ViRGE hw cursor (#3348, Harald Koenig).
3302. Fix clipping in 3dfx driver (#3342, Daryll Strauss).
3301. Enable SilkenMouse for 3dfx driver (#3341, Henrik Harmsen).
3300. Enable SIGIO support on LynxOS (#3339, Thomas Mueller).
3299. Get TRUE defined in sigio.c. Fix xterm compile problem on ISC (#3338,
Michael Rohleder).
3298. Correct DPMS suspend/standby modes for 3dfx driver (#3336, Henrik
Harmsen)
3297. Xterm patch #119 (#3335, Thomas Dickey).