Commit Graph

105 Commits

Author SHA1 Message Date
Eric Anholt
d5db59bd79 Add an offscreen area scoring to improve choosing offscreen areas to kick
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.
2004-06-29 20:37:51 +00:00
Keith Packard
b9d920f3dc Fix SYNC_ALWAYS (debugging) code to use mach64WaitIdle instead of
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.
2004-05-20 05:27:03 +00:00
Keith Packard
94648799c8 Pin header-only pixmaps in memory.
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.
2004-05-20 02:42:20 +00:00
Eric Anholt
85f46e0bcd Add new CheckComposite hook. This allows a driver to avoid the migration of
pixmaps for a Composite operation if the operation can't be supported.
    This hook is optional.
2004-05-17 07:14:23 +00:00
Eric Anholt
74b2a76947 Add new flag, KAA_OFFSCREEN_ALIGN_POT, which tells KAA to align pixmap
pitches to a power-of-two number of bytes. Useful for Render
    acceleration on older cards.
2004-05-14 00:34:28 +00:00
Jaymz Julian
bd20c8d340 Polling input mode for the kdrive os layer. And a moose! 2004-02-05 09:09:51 +00:00
Eric Anholt
b27729ec88 - Add a new UploadToScratch kaa hook for putting the data for a single
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.
2004-01-08 08:16:24 +00:00
Eric Anholt
1e1a35e20c Actually align the offset of allocated offscreen areas. 2004-01-03 11:17:44 +00:00
Eric Anholt
c8eb20a08e - Add new Composite hook for kdrive drivers, which only ensures that the
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.
2003-12-30 08:23:56 +00:00
Eric Anholt
df03e80ae9 Merge dri-0-1-branch to trunk. Notable changes:
- 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.
2003-12-29 06:24:01 +00:00
Eric Anholt
9cdd6fd9e3 - Add fbdev mode-setting backend to Xati. It and vesa are compiled in when
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.
2003-12-01 04:33:36 +00:00
Eric Anholt
7abbcce422 - Add PCI information (device/vendor id, bus location) to KdCardAttr to
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.
2003-11-19 08:32:38 +00:00
Seth W. Klein
f333581b7b Added infrastructure for driver specific usage messages and added vesa
usage message.
2003-11-18 04:53:16 +00:00
Keith Packard
003e87717c Recompute winSize/borderSize to fix them when changing redirection.
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.
2003-11-17 22:09:12 +00:00
Keith Packard
5378236aa6 merge xfixes_2_branch back to HEAD 2003-11-02 19:56:10 +00:00
Keith Packard
16b2ea64e7 Discard/reconstruct list of offscreen areas on VT switch so no allocations
can occur while switched away.
Set type of off_screen_areas member to actual type instead of pointer
2003-10-16 08:03:25 +00:00
Anders Carlsson
f4bcd36a38 Add a memory_base variable and use it. 2003-10-15 05:34:54 +00:00
Keith Packard
cb46169759 Use same assumptions as layergc about what layer kind is approprate for
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.
2003-10-14 21:10:53 +00:00
Keith Packard
4b844cafb2 Check for off-screen pixmap support in KaaDrawableIsOffscreenPixmap. -Wall
fixes. Allocate pixmap private space only for screens with off-screen
    pixmap support
2003-10-14 05:07:39 +00:00
Anders Carlsson
44f2e82f1b Use pixmaps instead of drawables in the kaa functions. Have the mga server
support accelerated operations on offscreen pixmaps.
2003-10-13 02:19:47 +00:00
Anders Carlsson
47a9fab5e2 Add support for offscreen pixmaps. 2003-10-13 01:19:37 +00:00
Anders Carlsson
a50438b470 Add offscreen memory manager and update the servers to reflect the name
change for the kaa structure.
2003-10-13 00:19:58 +00:00
Keith Packard
aae3e6dcb3 configure.ac Makefile.am os/oscolor.c Xext/saver.c Xext/Makefile.am
hw/kdrive/linux/ts.c hw/kdrive/src/Makefile.am hw/kdrive/src/kdrive.h
    hw/kdrive/src/kinput.c hw/kdrive/src/kmap.c Autodetect VM86 (for vesa),
    AGPGART, APM, MTRR, tslib and handhelds.org touch screen. Add
    USE_RGB_BUILTIN and code for fileless RGB database. Add
    MIT-SCREEN-SAVER
2003-10-04 02:43:16 +00:00
Keith Packard
918a8273ee hw/kdrive/src/kdrive.c
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.
2003-09-24 21:07:06 +00:00
Anders Carlsson
514ab46ce3 Start autoifying everything. 2003-09-11 00:47:36 +00:00
Keith Packard
283a7f32c4 Update RCS tags, fix keyboard hang on VT switch, fix scroll wheel mice, add
-rawcoord option to not transform mice on rotate, fix mtrr to use
    power-of-two size, add a few vesa options
2003-07-07 19:13:03 +00:00
Keith Packard
7827fce0b5 Allow input devices to be closed while the VT is switched away (needs
per-driver support)
2002-11-13 16:37:39 +00:00
Keith Packard
612e82053d Clean up touch screen hacks for controlling pointer on alternate screen 2002-11-05 05:28:34 +00:00
Keith Packard
7d214e2e2a Fix additions of RandR support in kmode.c 2002-10-18 06:08:10 +00:00
Keith Packard
e1c304e22b Add refresh rates to RandR (v1.1) 2002-10-14 18:01:42 +00:00
Keith Packard
b5d1c53862 Add vtxx option to kdrive servers 2002-10-08 21:28:05 +00:00
Keith Packard
a80e1e5aed Update kdrive servers to support reflection 2002-10-03 22:09:04 +00:00
Keith Packard
238a2ec201 Update RandR to 1.0 (library version 2.0) 2002-09-29 23:39:47 +00:00
Keith Packard
cf49ce6f26 Allow both touchscreen and mouse at the same time 2002-08-02 16:15:02 +00:00
Keith Packard
28fd5f7525 kdrive: add new auto-detecting and auto-switching mouse driver 2001-10-12 06:33:12 +00:00
David Dawes
f856b952ec 187. Add an MS mouse driver for KDrive (#4754, Juliusz Chroboczek). 2001-08-09 20:45:15 +00:00
Keith Packard
958c0374a6 kdrive: add apm support, fix MTRR unmapping bug 2001-07-24 21:26:17 +00:00
Keith Packard
79486b3b5c Too many changes, but all in kdrive:
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
2001-07-20 19:35:30 +00:00
Keith Packard
562474091a Fix TOUCHSCREEN support in kdrive 2001-07-11 02:58:19 +00:00
Keith Packard
67cd53abfc Rework kdrive input fd handling, enable multiple simultaneous mice 2001-06-29 14:00:41 +00:00
Keith Packard
7fcf46356b Allow for hardware acceleration under RandR with Layer. Hardware/Software
cursor switching still busted
2001-06-04 09:45:42 +00:00
Keith Packard
78b53386b5 Add miext/layer for more complete RandR support in kdrive/Xfbdev 2001-05-29 04:54:13 +00:00
Keith Packard
f39a62d122 Add Xmuu library to remove requirement for Xt/Xaw from most X utilities Add
i810 and Xv support to kdrive
2001-03-30 02:15:20 +00:00
Keith Packard
d09a156d92 kdrive: allow screen size specification 2000-12-08 22:59:37 +00:00
Keith Packard
5f8e75f27d kdrive: add MTRR support, add clock support to trident driver 2000-11-29 08:42:25 +00:00
Keith Packard
6171187e92 kdrive: memory/fd leaks fixed in fbdev/vesa/trident drivers 2000-09-27 20:47:37 +00:00
Keith Packard
94368c3b92 kdrive: Add iPAQ and Touch screen support 2000-09-26 04:31:23 +00:00
Keith Packard
2bbb90ebd9 Changes for PPC support under linux and a few overlay additions 2000-09-22 06:25:29 +00:00
Keith Packard
d6e151ce4d Tiny-X: Add mouse matrix to rotate mouse, allow enable to fail, add render
by default
2000-09-15 15:19:00 +00:00
Keith Packard
83a388c96d Try to avoid hitting hardware during server reset when not active, add
KdPicture code
2000-08-26 00:24:38 +00:00
Keith Packard
3731c184d6 Lots of Tiny-X changes:
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.
2000-05-06 22:17:53 +00:00
David Dawes
4b54f22b6a remove/disable standard RCS ident lines that are in some files some bindist
updates don't define noPanoramiXExtension when Xinerama is not enabled
    Add xfontsel to programs/Imakefile
2000-02-23 20:30:15 +00:00
David Dawes
306ac1db85 3554. Fix "controlization" in XLookupString for chars > 127 (#3569, Ivan
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).
2000-01-21 01:12:02 +00:00
Robin Cutshaw
30e35cb44b 3516. Jumbo Tiny-X patch with Itsy support (#3527, Keith Packard). 1999-12-30 03:03:21 +00:00
Dirk Hohndel
f13b792a3a 3336. Fx up new MMIO macros (#3337, Matt Grossman).
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).
1999-11-19 13:54:06 +00:00