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 Radeon R9 290: Gallium3D vs. Catalyst Drivers
  2. AMD Radeon R9 290 Open-Source Driver Works, But Has A Ways To Go
  3. Trying The Configurable 45 Watt TDP With AMD's A10-7800 / A6-7400K
  4. Sumo's Omni Gets Reloaded
Latest Linux Articles
  1. 20-Way Radeon Comparison With Open-Source Graphics For Steam On Linux Gaming
  2. Preview: OS X 10.10 Yosemite vs. Ubuntu Linux GPU Performance
  3. Radeon Graphics Yield Mixed Results With Linux 3.17 Kernel
  4. AMD's RadeonSI Driver Sped Up A Lot This Summer
Latest Linux News
  1. New Virtual Monitor Software Might End Up On Linux
  2. Company of Heroes 2 Might Be Coming Out For Linux
  3. NIR Still Being Discussed For Mesa, LLVM Gets Brought Up Again
  4. Plasma Active Is Mostly Ported To KDE Frameworks 5
  5. Google Chrome 37 Brings Many Security Fixes
  6. MenuetOS Updated With SMP Threads & Onscreen Keyboard
  7. Mesa Has A New Release Manager
  8. Enlightenment E19 Lands Its New Wayland Compositor Code
  9. Nouveau Turns Into A Mess In Latest Linux 3.17 + Mesa 10.3-dev Tests
  10. New GCC 5.0 Changes, Command-Line Options That Landed So Far
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. [DB] BIOS - ACPI - data collecting
  3. It's Now Possible To Play Netflix Natively On Linux Without Wine Plug-Ins
  4. AMD Releases UVD Video Decode Support For R600 GPUs
  5. Announcing radeontop, a tool for viewing the GPU usage
  6. Users defect to Linux as OpenBSD removes Lynx from base system
  7. Chinese People Try To Patent Wine On ARM
  8. American Citizens running AMOK for food stamps