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 Benchmarking Platform
Phoromatic Test Orchestration

First Phase Of X.Org GPU Hot-Plugging Works

X.Org

Published on 22 October 2011 07:26 PM EDT
Written by Michael Larabel in X.Org
9 Comments

David Airlie has demonstrated success in the first phase of his X.Org GPU/driver hot-plugging work, which eventually may lead to proper dynamic GPU switching under X.

On David Airlie's blog he has written briefly about his X.Org hot-plug work that he's been doing on and off for the past year. He's also included a video (embedded at the end of this post) that demonstrates this video hot-plugging work.

What's going on is using the xf86-video-modesetting driver with his custom X.Org Server work and xterm and GNOME Metacity. When he plugs in a USB-based DisplayLink adapter that's using his custom Linux kernel DRM driver, the USB-driven display lights up and is functional.

What goes on is that his custom X.Org Server code is started up with the respective drivers and David's major X.Org video driver ABI re-work comes into play here. One X protocol screen is exported and then when the GPU hot-plug happens, the xorg-server initializes another screen for the new device and plugs it into the single protocol screen. The driver-level pixmaps/pictures/GCs are copied to the new driver. The single protocol screen is then multi-plexed across the plugged in driver screens. David explains it as being "like Xinerama pushed down a lot further in the stack, so instead of doing iterations at the protocol level, we do it down at the acceleration level. Also I have randr code hooked up so all the outputs appear no matter what GPU they are from."

This demonstration is from a DisplayLink USB adapter, which doesn't have 3D hardware acceleration abilities. What Airlie eventually wants to get to is getting the main GPU to do the rendering and then only send the scan-out buffer to the USB device. This rendering-on-one-GPU-and-send-to-another could also be used for multi-GPU desktop systems to offload rendering work for one intensive OpenGL application/game to a secondary GPU and then piping the contents back to the primary graphics processor, among other possibilities.

While good progress has been made, David has been dabbling with this code for a year and there's still much more work ahead before we might see the code merged into mainline and deployed. "The real solution is a still a long ways off, but this is just a small light in a long tunnel, I've been hacking on this on/off for over a year now, so its nice to see something visible for the first time."

In terms of dynamic GPU switching for multi-GPU setups (such as NVIDIA Optimus and other notebooks with dual graphics processors), David says in a comment on his blog that the KMS drivers would need to be modified to work with the new X.Org Server for switching and such. Sharing of more kernel-level objects via PRIME or dmabuf is also needed.


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 Articles & Reviews
  1. GeForce GTX 750 Series: Nouveau vs. NVIDIA Linux Driver Performance
  2. GLAMOR + RadeonSI 2D Acceleration Is Quite Good For Open-Source AMD 2D Performance
  3. AMD Radeon R9 290 OpenGL On Ubuntu 15.04: Catalyst vs. RadeonSI Gallium3D
  4. Ubuntu 15.04 Offers Faster OpenGL For AMD Radeon GPUs On Open-Source
  5. Ubuntu 15.04 Brings Some Graphics Performance Improvements For Intel Haswell
  6. Sub-$20 802.11n USB WiFi Adapter That's Linux Friendly
Latest Linux News
  1. Fresh, 5-Way Linux Distribution Benchmarks On Amazon's EC2 Cloud
  2. OpenGL 4.1 Extension Implemented For Intel Mesa Sandy Bridge
  3. Xubuntu Team Announces "Xubuntu Core"
  4. Many Ubuntu Phone Updates Are Coming Up Soon
  5. Nouveau Lands GL_AMD_Performance_Monitor Support
  6. Deb-Based Ubuntu Will Continue To Be Offered For The Foreseeable Future
  7. Linux Game Publishing Remains Down For The Count
  8. Red Hat Enterprise Linux 6.7 Beta Released
  9. Keeping The Humidity Out Of The Basement Linux Server Room
  10. It's A Long Road Ahead To Get Ubuntu Snappy On The Desktop
Most Viewed News This Week
  1. Trying Out Microsoft Visual Studio Code On Linux
  2. Microsoft Releases New Code IDE For Linux!
  3. Improvements On The Way For GNOME's Nautilus File Manager
  4. A Lot Of Improvements Are Coming For Mir 0.13, Including Work Towards Libinput
  5. Kodi 15.0 Beta 1 Released
  6. Wayland 1.8 Alpha Release Delayed
  7. Mono 4.0 Makes Use Of Microsoft's Open-Source Code, C# 6.0
  8. Lucid Sleep Support Is Being Worked On For The Upstream Linux Kernel