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

Proposals To Split KMS & GPU Drivers, 2D Kernel API

Free Software

Published on 21 February 2012 08:09 AM EST
Written by Michael Larabel in Free Software
21 Comments

Following a "Kernel Display and Video API Consolidation" mini-summit held at the Emebedded Linux Conference (ELC 2012) last week, Linaro and other mobile/embedded Linux stakeholders have come up with several graphics-related action items for the Linux kernel. One of the proposals is to split KMS and GPU drivers in the kernel.

The notes in full from last week's kernel display and video API consolidation meet-up from the Linux Foundation's embedded event in Redwood Shores can be found on the dri-devel mailing list. There's a few items worth mentioning that are likely of interest to Phoronix readers.

Split KMS and GPU Drivers: One of the goals coming out of this mini-summit is to "Split KMS and GPU drivers with in kernel API inbetween." The reasoning for allowing KMS/GPU drivers to be split is that with SoCs the graphics processor and display controller tend to be separate devices. If there was a split between the GPU/KMS (display) portions with a defined interface to tie them together, it would be possible to re-use GPU drivers on different devices. The example given by the developers is that there could be a single common PowerVR kernel driver for the many devices out there using this Imagination Technologies graphics core. The different devices could then have different display (KMS) drivers where needed. Basically it's allowing for a more modular kernel graphics stack, but would end up being optional whether or not the vendors/developers comply.

While this is with a mobile focus, there are also possible desktop benefits. "The same approach can be used on the desktop for the multi-GPU case and the USB display case." Basically it would be a different way of doing the GPU hot-plugging and display with DispalyLink devices on Linux, etc.

Those coming up with this splitting idea acknowledge that one of the biggest challenges would be getting the GPU vendors to use this new split model. Rob Clark of Texas Instruments is beginning work on a reference implementation for this new design while Jesse Barker of Linaro is going to try to convince ARM to split their Mali kernel driver.

DMA-BUF V4L2: There's work being done to implement the DMA-BUF API inside V4L2. For those not familiar with the DMA-BUF buffer sharing mechanism, read and watch DMA-BUF Is Ready To Push Forward Linux Drivers.

2D Kernel Acceleration API: The embedded developers talked briefly about exposing a 2D acceleration API to user-space for devices with kernel drivers supporting hardware-accelerated 2D rendering. However, for any modern graphics processor relying upon a command stream, a user-space library is necessitated in order to assemble the stream, which would eliminate in large-part the usefulness of a unified 2D acceleration kernel API. This item is likely dead in the water.

HDMI CEC: There's interest in supporting HDMI CEC within the kernel and then providing a user-space API for applications. There's already some developers working on this code which would span multiple sub-systems or lead to the creation of a CEC sub-system. There's plans to push CEC mainline support this calendar year. HDMI CEC (Consumer Electronics Control) allows users to command and control CEC-enabled devices via HDMI through one remote. The CEC specification also allows one CEC device to command/control another CEC device automatically all over HDMI.

Common Video Mode Data Structure / EDID Parser: A call to share a common EDID parser between DRM/KMS, fbdev, and V4L2. The Linaro-backed developers plan to use the DRM EDID parser as it's the most advanced and then work it into the other sub-systems while coming up with a new common video mode/timing data structure. The desire to have a common EDID parser in the kernel has been expressed in the past by developers.

Latest Linux Hardware Reviews
  1. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  2. Overclocking The AMD AM1 Athlon & Sempron APUs
  3. AMD Athlon 5350 / 5150 & Sempron 3850 / 2650
  4. Upgraded Kernel & Mesa Yield A Big Boost For Athlon R3 Graphics
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. Ubuntu 14.04 LTS "Trusty Tahr" Officially Released
  2. Ubuntu 12.04 LTS vs. 14.04 LTS Server Benchmarks
  3. QEMU 2.0 Released With ARM, x86 Enhancements
  4. Running The Unity 8 Preview Session On Ubuntu 14.04 LTS
  5. R600 Gallium3D Disables LLVM Back-End By Default
  6. Fedora 21 Gets GNOME 3.12, PHP 5.6, Mono 3.4
  7. Fedora Workstation Is Making Me Quite Excited
  8. Maynard: A Lightweight Wayland Desktop
  9. Chromium Browser Going Through Growing Pains In Ubuntu 14.04
  10. KDE 4.13 Is Being Released Today With New Features
  11. Trying Out Radeon R9 290 Graphics On Open-Source
  12. Intel Broadwell GT3 Graphics Have Dual BSD Rings
Latest Forum Discussions
  1. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  2. Updated and Optimized Ubuntu Free Graphics Drivers
  3. Suspected PHP Proxy Issue
  4. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  5. The GNOME Foundation Is Running Short On Money
  6. Change installation destination from home directory
  7. Bye bye BSD, Hello Linux: A Sys Admin's Story
  8. New tool for undervolt/overclock AMD K8L and K10 processors