RANDR 1.4 and multiple GPUs



Dear lovers of exotic hardware,

There are now laptops with two GPUs, and RANDR 1.4 supports configuring
them in multiple ways.  I'll quote from the RANDR specification:

Version 1.4 adds a new object called a provider object. A provider object
represents a GPU or virtual device providing services to the X server.
Providers have a set of abilities and a set of possible roles.

Provider objects are used to control multi-GPU systems. Provider roles can
be dynamically configured to provide support for:

 1) Output slaving: plug in a USB device, but have its output rendered
 using the main GPU. On some dual-GPU laptops, the second GPU isn't
 connected to the LVDS panel, so we need to use the first GPU as an output
 slave for the second GPU. 

 2) offload - For dual-GPU laptops, allow direct rendered applications to be run
 on the second GPU and display on the first GPU.

 3) GPU switching - Allow switching between two GPUs as the main screen
 renderer.

 4) multiple GPU rendering - This replaces Xinerama.

I haven't played with these at all, but I have a laptop with two GPUs
that are detected properly by the X server.

Does anyone know what the expected behavior is?  Some things should keep
working as normal (hit the SWITCHVIDEOMODE hotkey should cycle you among
multi-monitor modes; plugging a monitor should do the right thing...),
with the software hooking up the appropriate providers/sources/sinks.

But what about things like rendering on the fat GPU and displaying on
the main one?  Do we really want to give users that option?  Or how
would we go about detecting when that is really necessary ("this game
needs a fat GPU")?  Should we tie the fat GPU to being on AC power and
not on battery power?

Brainstorm away!  All ideas are appreciated.

(And if someone has a Windows box with two GPUs like that, I'd really
appreciate any information on how they present this to the user and what
they do.)

  Federico



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]