X.Org Server GPU Hot-Plugging Moves Along
David Airlie has achieved a bit more success in his GPU "PRIME" work to provide graphics processor hot-plugging support under Linux with the X.Org Server.
One month ago I wrote about Airlie's PRIME work getting back under-way for GPU offloading support. This news came a month after a working X.Org GPU hot-plugging prototype by Airlie.
That early code showed a DisplayLink USB-based display adapter working automatically as soon as it was plugged in -- the DRM driver being dynamically loaded and then the display lighting up with an X.Org environment. At that point David talked about his ambitions of eventually getting to a point where one GPU could do the actual rendering and to then pass the memory objects onto another GPU so that they could then be scanned out to an attached display. What Airlie now has to report on before ending out the year is basically these advancements.
The use-cases he's been working with on this X.Org Server hot-plugging code is to support Intel rendering and to offload then to a NVIDIA graphics card using the Nouveau driver, Nouveau rendering with a DVI output and then an Intel LVDS output, and then a USB hot-plugged display with either the Intel or Nouveau driver doing the actual rendering work.
He's re-based his PRIME code atop his "dma-buf" upstream work, which is successfully working for sharing a buffer between two Linux DRM drivers. The kernel PRIME "magic" shares a DRI2 front pixmap between devices/drivers and also sharing a pixmap that the rendering GPU copies dirty updates to and the "GPU output slaves" use that as their scan-out pixmap. He's been focusing upon the Intel, Nouveau, and DisplayLink kernel drivers for this initial PRIME work, but sadly not Radeon at this time.
His short-term TODO list is to address issues with the Nouveau/EXA port rendering, issues with xcompmgr, and adding USB output slave support. Longer out on his TODO list is working on controlling the different options via the RandR protocol, and lastly is implementing GLX_ARB_robustness support.
Those wanting to learn more can read today's blog post by David Airlie or checkout his drm-prime-dmabuf Git repository. It will likely be a while before all of the pieces for GPU hot-plugging with X.Org and the Linux kernel are successfully merged to mainline.