The State of Kernel Mode-Setting
Earlier this year Fedora 9 was the first distribution providing kernel-based mode-setting (or KMS for short). At the time there was only a kernel mode-setting driver for Intel hardware and it ended up being disabled by default. We had provided a preview of kernel-based mode-setting that showed how the system display looked when it came to the flicker-free boot experience, fast and clean VT switching, and the technical advantages this method provides over the graphics mode-setting within an X.Org DDX driver. With months having passed since our first article and Red Hat engineers working aggressively on KMS improvements for Fedora 10, we are providing another look at this technology and some of the recent advancements.
All of the kernel-based mode-setting excitement in Fedora 9 was limited to those using Intel's integrated graphics hardware. With Fedora 10 not only can Intel users benefit but so can those with ATI Radeon hardware. Jerome Glisse has been working on Radeon kernel mode-setting code since December of last year, and in recent months David Airlie and Adam Jackson have joined in on this work. For those using an ATI R300 GPU to R500 will have kernel-based mode-setting support enabled by default in this next Fedora release. A few months back AMD had released a new AtomBIOS parser to the open-source community, which is being used for the KMS driver and should enter the mainline Linux kernel -- likely with Linux 2.6.28.
For those with older ATI hardware that doesn't support AtomBIOS, it still relies on traditional GPU programming. With the vintage ATI R100 and R200 series hardware, there is no kernel mode-setting support that still allows for 3D acceleration, so that is being disabled by default until Fedora 11. For the newer ATI R600 and R700 series the KMS support still needs additional testing.
While kernel-based mode-setting was kick-started by Intel, it doesn't look like their KMS support will be enabled by default. Red Hat is still working through Intel KMS issues so for now it's still relying upon the traditional xf86-video-intel DDX driver. For those with NVIDIA hardware they cannot yet experience kernel-based mode-setting. NVIDIA's official open-source driver, xf86-video-nv, doesn't support kernel-based mode-setting nor would we expect to see such support any time soon. The driver is rather limited in its features already and it doesn't support upon any (GEM or TTM) kernel memory manager, which is a prerequisite for this mode-setting technology. Nouveau, the community-spawned party reverse-engineering NVIDIA's binary driver in order to write a full-featured open-source NVIDIA driver, does have GeForce 8 kernel mode-setting support with active work underway, but this project has a whole hasn't been making a lot of headway in recent months.