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

The Kernel Graphics Interface (KGI) Is Effectively Dead

Free Software

Published on 03 July 2011 08:41 AM EDT
Written by Michael Larabel in Free Software
5 Comments

While the FreeBSD Foundation is now paying for Linux kernel mode-setting and GEM/TTM memory management to be ported to BSD -- and they are making some progress -- this isn't the first attempt at moving major parts of the graphics stack into the kernel. Pre-dating Linux KMS/DRM is the KGI Project, which still is technically around, but it's pretty much dead in terms of new development and any hope of the Kernel Graphics Interface reaching its goals.

I hadn't even thought of KGI (or the connected GGI) in years until late last month when a user asked how DRM differs from KGI. KGI stands for the Kernel Graphics Interface and it's basically an attempt like Linux KMS to move mode-setting into the kernel, and then to also push hardware acceleration into the kernel and other bits. The Kernel Graphics Interface is part of GGI, the General Graphics Interface, and tries to provide an API for high-level graphics clients (KGIDevice), low-level graphics back-ends (KGIDisplay), a graphics driver framework (KGIM), an input system (KII), and a console (KGC).

The introduction from the KGI project site reads:
KGI (Kernel Graphics Interface), is a project that aims for a portable framework providing a means for fully accelerated, secure, stable & portable GPU drivers to be implemented and used across multiple different platforms supporting KGI, with only needing a re-compile at most.

The basic driver functionality (including mode setting) is preformed in kernel space, this allows for a powerful console system.

KGI provides a flexible console system, which allows the user to map any input to any virtual console on any display. Multiple display support has been designed and implemented at the core of the KGI system since its initial design.

Together with GGI (General Graphics Interface) the two projects provide a full featured accelerated system to the console without the need for additional drivers. KGI handles the minimum required for safe acceleration and mode switching, while GGI operates from user space without loosing stability or security.

With the stable system of KGI & GGI users can make use of XGGI for a X11 environment. This setup moves X11 away from kernel space and leaves the hardware management up to KGI

However, if the user chooses so, there is no need for a heavy X11 based environment. Applications can run in a full screen graphics mode directly on the console.

It's an interesting concept in what it provides and at least planned out prior to Linux DRM picking up kernel mode-setting and moving full-steam ahead.

The KGI Framework also sought to be more portable across other operating systems, where as most of the X/Mesa/DRM developers these days don't care about anything but Linux. But the KGI developers never tried to engage with the Linux graphics developers years ago when there was potential for collaboration. With the complexity of modern GPUs, it doesn't make too much sense to now design their own framework and then write their own drivers too, when they could support the necessary Linux components and then port those more feature-rich drivers.

FreeBSD was of greater focus by the KGI developers with the Linux port of the code still being for the Linux 2.4 kernel with the Linux 2.6 kernel (and now Linux 3.0) support being just another item on their TODO list.

Beyond supporting the Linux 2.6 kernel, other work not yet done within KGI but found in the Linux DRM/KMS world is a memory allocation API, multi-head management, monitor hot-plugging, and support for PCI Express.

The KGI developers, however, seem to have pretty much thrown in the towel. The KGI WIP CVS tree hasn't been touched in a while with most of the files not being touched in a number of years (KGI has been around for more than a decade). In the main CVS tree, most files also haven't been touched in years, but there's at least one file that was touched six weeks ago.

Beyond their CVS trees, their project news area has its most recent news item from October of 2009 when they made a patch available so that KGI would work against FreeBSD 8.0-RC1. The KGI development mailing list also hadn't been posted to since 2009.

Of more interest now is how the DRM/KMS porting to BSD is going, which will be saved for another Phoronix news story.

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