Diff for /wikisrc/users/macallan.mdwn between versions 1.6 and 1.12

version 1.6, 2009/10/27 15:21:23 version 1.12, 2010/04/21 08:04:35
Line 1 Line 1
   ## 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 and cursor sprite 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:  ## TODO:
 * figure out why anti-aliased font rendering with [[XAA]] in [[Xorg]] 1.6 is ridiculously slow compared to 1.4<br>  * figure out why anti-aliased font rendering with [[XAA]] in [[Xorg]] 1.6 is ridiculously slow compared to 1.4<br>
 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.  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.
 * unbork [[wscons]] on [[sparc]] in the 5.0 branch  
 * write a [[wsdisplay]] driver for the Permedia2 graphics controller used on Sun's [[PGX32]] graphics board<br>  
 I have the docs and the hardware, only need some spare time  
 * add acceleration to Xorg's [[sunleo]] driver<br>  * add acceleration to Xorg's [[sunleo]] driver<br>
 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.  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.
 * make [[radeonfb]] work right on [[i386]]<br>  
 It works but for some reason X is crashing. This works fine on [[sparc64]] and [[macppc]], it also works with [[i386]] and [[vga]], no idea what's wrong here.  
 * implement mode setting for [[voodoofb]], [[voyagerfb]], [[r128fb]], [[chipsfb]] etc.  * implement mode setting for [[voodoofb]], [[voyagerfb]], [[r128fb]], [[chipsfb]] etc.
 * figure out how to do composite ops on [Fujitsu](http://www.fujitsu.com)'s [[AG-10e]] graphics board  * figure out how to do composite ops on [Fujitsu](http://www.fujitsu.com)'s [[AG-10e]] graphics board
 * write an Xorg driver for [IGS](http://www.tvia.com) [[CyberPro]] graphics chips used in [[shark]], [[netwinder]] and other machines<br>  
 I have the docs, but we will want to use kernel mode setting so maybe I should wait for the relevant GSoC project to get committed.  
 * figure out how to use the [[SX]] rendering engine on Sun [[SparcStation 20]] mainboards<br>  * figure out how to use the [[SX]] rendering engine on Sun [[SparcStation 20]] mainboards<br>
 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.  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.
   

Removed from v.1.6  
changed lines
  Added in v.1.12


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb