NetBSD Wiki/users/
macallan
Stuff I'm to blame for
- rewrote the interrupt handling code in ?macppc, made it machine independent enough to work on other PowerPC platforms as well
- rewrote the ADB subsystem used on ?macppc and probably ?mac68k - no more phantom events, keyboard LEDs work now, mouse button emulation, support for ?cuda's i2c bus, all in all it's much smaller and simpler than the old code
- wrote a bunch of graphical console drivers ( see below )
- wrote a bunch of Xorg/XFree86 drivers
- added generic support for virtual consoles, scrollback buffers etc. to wscons
- ?wscons-ified ?sparc64
- added provision to allow console drivers to be machine independent
- made ?Xorg work on ?macppc, ?shark, ?sgimips, ?sparc and ?sparc64
- craploads of bugfixes and other minor improvements
Drivers I wrote:
- ?cuda - the microcontroller found on older PCI PowerMacs, provides ADB, realtime clock, nvram, power control and in some cases an i2c bus
- ?pmu - the microcontroller found in PowerBooks, iBooks and newer pre-G5 PowerMacs, provides realtime clock, nvram, power control and sometimes ADB, battery, environmental sensors or volume and brightness control
- ?nadb - ADB device discovery, attached to ?cuda or ?pmu
- ?adbkbd - driver for ADB keyboards, includes emulation for mouse buttons 2 and 3
- ?adbms - driver for ADB mice and trackpads. Supports tapping on trackpads.
- ?adbbt - driver for volume, brightness etc. control keys found on some PowerBooks and all(?) iBooks
- ?sgsmix - additional mixer chip found in beige G3 Macs, supports additional bass and treble control, requires ?cuda since it's controlled via i2c which the old ADB subsystem does not support
- ?dbri - a driver for the ISDN / audio chip found in the SPARCstation 20 and SPARCbook 3GX, it's audio only, there is no support for the ISDN part
- ?panel - driver for the buttons on the SGI Indy's front panel
- agten - accelerated console driver for Fujitsu AG-10e SBus graphics boards
- cgtwelve - a console driver for Sun CG12 / Matrox SG3 graphics boards
- ?chipsfb - accelerated console driver for Chips & Technologies 65550 graphics controllers
- genfb - a generic framebuffer console driver. Depends on machine-dependent code to pass setup information as device properties
- ?gfb - dumb framebuffer console driver for Sun ?XVR-1000 graphics boards
- pm2fb - accelerated console driver for Permedia 2 graphics controllers
- ?r128fb - accelerated console driver for ATI Rage 128 graphics controllers
- ?voodoofb - accelerated console driver for 3Dfx Voodoo 3 graphics controllers
- ?voyagerfb - accelerated console driver for Gdium Liberty MIPS-based laptops
- wcfb - console driver for 3Dlabs Wildcat graphics boards
- ?xf86-video-ag10e - accelerated Xorg driver for Fujitsu AG-10e graphics boards
- ?xf86-video-crime - accelerated Xorg driver for the SGI O2's onboard rendering engine
- xf86-video-igs - accelerated Xorg driver for IGS CyberPro 2010 and similar chips, tested on ?shark only but supporting at least ?netwinder should be trivial
- ?xf86-video-pnozz - accelerated Xorg driver for the SBus Weitek P9100 found in SPARCbook 3GX laptops
Drivers I substantially improved
- igsfb - added mode setting support
- ?machfb - added hardware acceleration
- ?pnozz - added hardware acceleration and cursor sprite support
- ?crmfb - added hardware acceleration, cursor sprite, DDC2 and mode setting support
- ?tcx - added hardware acceleration
- ?tslot - adapted from OpenBSD, support for the PCMCIA slots in the SPARCbook 3GX
- ?xf86-video-suncg6 - added hardware acceleration
- ?xf86-video-suntcx - added hardware acceleration
TODO:
- figure out why anti-aliased font rendering with ?XAA in ?Xorg 1.6 is ridiculously slow compared to 1.4
Actually there is some progress. The miGlyphs() function uses a scratch pixmap to render characters into which it then renders into the target pixmap. Since off-screen pixmaps in XAA are currently broken and the Xorg people refuse to fix it the scratch pixmap will be in RAM with all XAA drivers resulting in software rendering ( not that XAA knows how to accelerate vram-to-vram composite ops anyway ). I got around that by implementing a private Glyphs() method for the crime driver which gives a nice speedup but still gets us nowhere near the performance we had with Xorg 1.4. A private Glyphs() implementation for XAA which avoids the scratch pixmap resulted in a small but measurable speedup with the ?sunffb driver. - add acceleration to Xorg's ?sunleo driver
I have some docs and hardware but the docs are incomplete - the way WIDs are encoded is missing and I can't find one that by default gives us a 24bit RGB or BGR display. - implement mode setting for ?voodoofb, ?voyagerfb, ?r128fb, ?chipsfb etc.
- figure out how to do composite ops on Fujitsu's AG-10e graphics board
- figure out how to use the SX rendering engine on Sun ?SparcStation 20 mainboards
I have a disassembler dump of Sun's own DDX, it shouldn't be all that difficult to do basic blitter operations. The SX itself could probably accelerate composite ops as well but there's no chance to do that without actual documentation.
Add a comment