1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

FreeBSD Will Pay For Some KMS & GEM Love

BSD

Published on 22 October 2010 01:57 PM EDT
Written by Michael Larabel in BSD
6 Comments

Chris Wilson of Intel back in July had written a branch of the Intel X.Org display driver (xf86-video-intel) that added back user-space mode-setting support to their open-source driver that did not need the Graphics Execution Manager (GEM) within the kernel to function. This code was previously stripped away from the driver previously since KMS+GEM is the future they wanted to head in, but for those with vintage Intel i8xx-era graphics hardware using these newer code paths frequently resulted in lock-ups and other problems. Rather than trying to solve the actual problem at hand of GEM and KMS for this old hardware, the easier solution was viewed to just add back non-GEM UMS support.

This user-space mode-setting support without any dependence on the kernel code didn't end up fixing the problems it was meant to solve for i8xx owners and resulted in a greater burden for the Intel developers with an extra ~40,000 lines of code to maintain and support. This didn't go over too well. But at the same time, this work had the nice side effect of helping out those on OpenSolaris, the *BSDs, and other Unix-like operating systems that don't yet have kernel support for KMS or GEM, as this driver then worked again on those platforms and thereby provided support for newer Intel IGPs and features added after the UMS support was dropped almost two years ago.

This UMS code-path though didn't end up being integrated back into the mainline xf86-video-intel driver, but instead another alternative came about and that is Intel's solution for i8xx owners. This other solution was to use kernel mode-setting, but rather than providing any hardware acceleration, just use a shadow frame-buffer with the CPU. All 2D acceleration can now be done in software with the system memory using a shadow buffer rather than touching GEM and potentially hitting the i8xx bugs. Using this path though also makes it not possible to have 3D hardware acceleration, but the maintenance burden is much lower than dealing with renewed UMS code. With still relying upon KMS, however, those operating systems whose kernels lack support for the KMS infrastructure are still out of luck.

Kris Moore of PC-BSD/FreeBSD wrote to the Intel mailing list this morning (here's the message) asking about whether the UMS Intel legacy branch will be maintained. FreeBSD/PC-BSD lacks KMS and GEM support at present, but this UMS driver allows their Intel users to run a newer DDX driver without the said requirements. However, as is the case, this branched legacy driver will not receive anymore work and Intel's OSTC X developers really don't have much interest in non-Linux platforms.

The good news, however, is that the FreeBSD Foundation is willing to finance a developer to work on bringing kernel mode-setting and Graphics Execution Manager support over to the FreeBSD kernel.
Also I'll mention that the FreeBSD foundation is looking to sponsor a developer who would be interested in working on our GEM/KMS support here soon. If anybody who could use some extra $$ and would be interested in working on this, then feel free to let us know.

Intel's Chris Wilson recommended that they get in contact with Owain Ainsworth for possibly doing this job. Owain has been working towards porting this code to OpenBSD. The security-focused OpenBSD project has been interested in utilizing KMS since they then could run the X.Org Server without root privileges. There's also been work towards driving KMS in Solaris, but who knows the state of that outside of Oracle.

Besides providing a virtual terminal experience and the ability to run the X.Org Server as a non-root user, it also presents the possibility of running the Wayland Display Server on non-Linux platforms, better debugging capabilities, the possibility to have a cleaner boot process, and other benefits. Better memory management support can also ultimately result in better performance and being able to take advantage of DRI2 / Gallium3D.

Let's hope that we see KMS and GEM/TTM support come to FreeBSD (and other operating systems) soon, which then would allow these *BSD users to finally take advantage of the open-source Nouveau driver for NVIDIA hardware (as it too now is KMS-only) and inevitably the ATI/AMD Radeon driver will eventually be working in that direction.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. AMD Launches New FX CPUs, Cuts Prices On Existing Processors
  2. Preview: AMD's FX-9590 Eight-Core At Up To 5.0GHz On Linux
  3. Intel Launches The Core i7 5960X, Mighty Powerful Haswell-E CPUs
  4. AMD Radeon R9 290: Gallium3D vs. Catalyst Drivers
Latest Linux Articles
  1. Ondemand vs. Performance CPU Governing For AMD FX CPUs On Linux 3.17
  2. How Intel Graphics On Linux Compare To Open-Source AMD/NVIDIA Drivers
  3. The Fastest NVIDIA GPUs For Open-Source Nouveau With Steam Linux Gaming
  4. Testing For The Latest Linux Kernel Power Regression
Latest Linux News
  1. New Group Calls For Boycotting Systemd
  2. The Features To Find With The Imminent Release Of LLVM/Clang 3.5
  3. Borderlands 2 Is Coming To Linux
  4. The Witcher 2 Ups The Performance More & Works Around Catalyst Bug
  5. Running Gallium3D's LLVMpipe On The Eight-Core 5GHz CPU
  6. Trying Intel OpenCL On Linux For Video Encoding
  7. GSoC 2014 Yielded Some Improvements For Mesa/X.Org This Year
  8. webOS Lives On As LuneOS With New Release
  9. Marek Lands Radeon Gallium3D HyperZ Improvements
  10. Mozilla Firefox 32 Surfaces With HTML5, Developer Changes
Latest Forum Discussions
  1. Lennart Poettering Talks Up His New Linux Vision That Involves Btrfs
  2. nv and xorg.conf under Debian PPC
  3. AMD graphics doesn't work with AMD Catalyst drivers
  4. Best Radeon for a Power Mac G5?
  5. The dangers of Linux kernel development
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. AMD Releases UVD Video Decode Support For R600 GPUs
  8. SSD seems slow