February 20, 2009 posted by Michael Lorenz
I just commited the missing bits to make my CRIME driver work with native Xorg and in the process got rid of most of the remaining glitches. This needs xf86-video-crime and libxaa.so.1 rebuilt. CRIME is the rendering engine found in SGI's O2 workstations.
The driver supports:
- all the usual screen-to-screen copy, rectfill etc. stuff
- image uploads with pixel format conversion so we can pretend to run in ARGB instead of CRIME's native format
- Xrender acceleration ( not all ops are implemented, just what's used to draw anti-aliased text and transparent icons. The others aren't hard to add, CRIME supports all OpenGL alpha-blending operations )
- solid and dashed lines ( the hardware supports anti-aliased lines, no idea how X would use that )
- CPU-to-screen colour expansion
- hardware cursor
- 24bit only. The hardware supports a lot of other pixel formats though.
- off-screen memory
Stuff that doesn't work (yet):
- video overlays. They're handled by the graphics backend, not CRIME, I don't have enough information about that
- image reads need to be implemented. Screenshots will look completely messed up otherwise.
- uncommon Xrender ops
- any kind of OpenGL acceleration
All in all X.org should do a LOT better than Xsgi with gtk2, KDE and anything that uses Xrender. There are some remaining glitches but it's definitely in a useful state now.
As far as I'm aware NetBSD is the only operating system except IRIX which supports hardware accelerated graphics on the O2.
In a related note, I also made Xorg's newport driver work with NetBSD, it supports pretty much the same features as the CRIME driver except off-screen memory ( because the card doesn't have any ). So far I could only test it on my R5k Indy with a 24bit Newport board.