
Originally Posted by
smitty3268
The state trackers in G3D are cross platform, the rest is not. There is a whole winsys layer defined in gallium that hooks into the native OS calls.
The (correct) way of accessing actual hardware is to do it in the kernel, and every kernel is different. You can come up with a big compatibility layer that your kernel driver sits in, like the nvidia and fglrx drivers do, but that's a fair amount of work to do which not many are really interested in. The main bits that have to be implemented within the kernel itself are the memory manager - the GEM and TTM APIs. Once they are provided, the rest of the kernel drivers should be pretty simple to port over.