This is the rendering engine, memory controller etc. found in SGI's ?O2 workstations. NetBSD has hardware accelerated drivers for both the kernel ( ?crmfb ) and ?Xorg ( ?xf86-video-crime ).
Video memory is allocated from main memory in chunks of 64KB which, depending on pixel size, result in 128x128, 256x128 or 512x128 tiles. Output is handled by either ?GBE for the VGA port or ?mace and the AV module for composite video or s-video ( we don't support TV output yet ).
The drawing engine has two parts - the main Rendering Engine which supports all kinds of fancy operations including alpha blending, z-buffering and whatnot, and the Memory Transfer Engine which only supports simple fills and copies but does them really, really fast ( at memory bandwidth speed according to the docs we have ).
Both engines share a set of TLBs:

All TLBs can only be written with 64bit-aligned writes, unaligned writes are ignored, writes smaller than 64bit result in the upper bits being written as zeroes. Reads can be any size with natural alignment.
Partial writes to at least a few other registers work though.

Add a comment