X.org on NetBSD/sgimips

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.



Post a Comment:
Comments are closed for this entry.