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.

Latest Linux Hardware Reviews
  1. ASUS AM1I-A: A Mini-ITX Board For Socketed Kabini APUs
  2. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  3. Overclocking The AMD AM1 Athlon & Sempron APUs
  4. AMD Athlon 5350 / 5150 & Sempron 3850 / 2650
Latest Linux Articles
  1. Ubuntu 12.04.4 vs. 13.10 vs. 14.04 LTS Desktop Benchmarks
  2. AMD OpenCL Performance With AM1 Kabini APUs
  3. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  4. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
Latest Linux News
  1. FreeBSD Advances For ARM, Bhyve, Clang
  2. Ubuntu 14.04 LTS "Trusty Tahr" Officially Released
  3. Ubuntu 12.04 LTS vs. 14.04 LTS Server Benchmarks
  4. QEMU 2.0 Released With ARM, x86 Enhancements
  5. Running The Unity 8 Preview Session On Ubuntu 14.04 LTS
  6. R600 Gallium3D Disables LLVM Back-End By Default
  7. Fedora 21 Gets GNOME 3.12, PHP 5.6, Mono 3.4
  8. Fedora Workstation Is Making Me Quite Excited
  9. Maynard: A Lightweight Wayland Desktop
  10. Chromium Browser Going Through Growing Pains In Ubuntu 14.04
  11. KDE 4.13 Is Being Released Today With New Features
  12. Trying Out Radeon R9 290 Graphics On Open-Source
Latest Forum Discussions
  1. Radeon 8000M problematic on Linux?
  2. Updated and Optimized Ubuntu Free Graphics Drivers
  3. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  4. The GNOME Foundation Is Running Short On Money
  5. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  6. Suspected PHP Proxy Issue
  7. Change installation destination from home directory
  8. Bye bye BSD, Hello Linux: A Sys Admin's Story