Over the past few years more of the Linux graphics stack has moved within the Linux kernel so that there is finally a proper kernel memory management solution for the open-source graphics drivers and to also provide kernel mode-setting
. Moving more of the GPU driver code into the kernel DRM results in a more secure environment as the X Server can now run without root access, the start-up process is cleaner and faster with KMS, the performance will ultimately be better with a memory manager, there's more reliable and faster VT switching, suspend and resume is better, and the list of benefits just goes on. However, that's for Linux users. Most of the X.Org developers are centered on Linux support and as a result where in the past it was relatively easy to just support the X.Org DDX driver under multiple platforms, it's now not as easy when there's so much code tied into the kernel that isn't trivial to port between Linux and the *BSDs and OpenSolaris. As a result, driver support on the BSD operating systems and OpenSolaris has lagged behind Linux since they aren't up to speed with their kernel DRM code. Intel even has dropped their UMS code
, which now makes kernel mode-setting a necessity for their hardware. The Nouveau driver has also dropped its non-KMS code
For a year now we have known that kernel mode-setting for OpenSolaris
is being worked on and that the OpenBSD developers have also wanted to port KMS to their kernel for better security, but so far either effort hasn't amounted to much. The OpenSolaris support though may now change as PathScale is going to work on porting Nouveau, the free software NVIDIA graphics driver, to OpenSolaris.
PathScale, which specializes in cluster and high-performance compilers, wants to bring the Nouveau driver to OpenSolaris. Not only do they want Nouveau running there but they also want to run CUDA-like kernels atop the NVIDIA graphics hardware. In bringing Nouveau to the Sun operating system they also must bring over a kernel memory manager.
Intel's Graphics Execution Manager (GEM) is already available on OpenSolaris to some extent, but the Nouveau driver (and the ATI Radeon stack) largely uses TTM
while just exposing the GEM API. PathScale's Christopher Bergström has written a message to the Nouveau list
regarding this company's efforts.
A FreeBSD developer has ported some of TTM to their kernel, so Bergström is looking for feedback on how that went and then he raises the question if GEM is actually better than TTM. This GEM claim is based on the belief that GEM will continue to be supported, is more portable than TTM, and probably features better performance than TTM. These claims though can be argued. It wouldn't be too trivial to port the Nouveau driver over to OpenSolaris and at the same time switch the Nouveau driver over from using TTM to GEM, but Christopher mentioned it nevertheless.
PathScale wants this Nouveau support because "our interest is currently only in executing cuda-like kernels. If it doesn't add a substantial amount of effort we would like our efforts to also benefit others." Nouveau doesn't even have complete 3D support let alone any support for CUDA or any other GPGPU computing methods, so hopefully PathScale plans on contributing to this area of the Nouveau driver stack as well.