Skip to content

DRM Multi-GPU

Simon Ser requested to merge github/fork/ascent12/drm-multi-gpu into master

Created by: ascent12

Finally got this shit sorted. This introduces the ability for multiple DRM backends to be running at the same time, and have each of them driving their own outputs.

This performs all of the rendering on the primary GPU ("boot_vga" or whichever was found first), and copies it over to the other GPU to be displayed. It uses zero-copy (with DMA-BUFs and EGLImages), so it's not too inefficient. I didn't notice any performance problems in my testing.

We'll eventually need to have a way to specify which GPU should be doing the rendering, and maybe even have a way at runtime to switch between them (e.g. unplugging laptop will use iGPU instead of discrete GPU) if it's even possible. That can come later, though.

There is also various bits of refactoring in this PR.

Merge request reports