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. Scythe Mugen MAX
  2. Intel Core i7 5960X Haswell-E On Linux
  3. Intel 80GB 530 Series M.2 SSD On Linux
  4. With A New Motherboard, The Core i7 5960X Haswell-E Lights Up
Latest Linux Articles
  1. Running Fedora 20 On Intel's Core i7 Haswell-E Platform
  2. A Tour Of The New Phoronix Office
  3. 7-Way Linux Desktop Gaming Comparison On Ubuntu 14.10
  4. Intel P-State vs. CPUFreq Benchmarks On The i7-5960X
Latest Linux News
  1. Linux 3.17 Has Basic Support For The Xbox One Controller
  2. openSUSE 13.2 Beta Still Using Btrfs By Default, & KDE Plasma 5 For Testing
  3. GTK+ 3.14 Brings Much Better Wayland Support, Multi-Touch, New Theme
  4. DisplayPort Comes To USB's Type-C Connector
  5. NSS Updated On Ubuntu 12.04/14.04 To Allow Netflix Support
  6. Linux 3.17-rc6 Released; Linux 3.17 Final Might Come In One Week
  7. X.Org Server 1.16.1 Released
  8. Mesa Gets Closer To Having OpenGL 4.0 Tessellation Support
  9. Uselessd: A Stripped Down Version Of Systemd
  10. F2FS Tools Gain FSCK Support
Latest Forum Discussions
  1. Uselessd: A Stripped Down Version Of Systemd
  2. NVIDIA GTX 770/780 -works ?
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. State of Nouveau now and in the near future?
  5. X.Org Women Outreach Program Only Turns Up Two Applicants So Far
  6. Wasteland 2 Officially Launched Today, Including For Linux Gamers
  7. Trolling on the Phoronix forums
  8. New stress testing utility for GPU's