Hi, so as part of hotplug I've started to specify a "provider" object to basically represent a GPU.
http://cgit.freedesktop.org/~airlied/randrproto/commit/?h=provider&id=670d2762a5c92da778fc3be4ad5a6b952e4f4027 The idea of a provider is you have multiple providers per protocol screen, and they have a list of roles. Current roles are: a) master - a fully rendering and displaying GPU - initially I'd allow only one master per screen, when the code gets to replacing xinerama (i.e. shatter works) then we'd allow multiple masters per protocol screen. b) offload slave This is a slave device that can offload DRI2 operations to. i.e. GL and VDPAU so far. This is what the second GPU in an optimus laptop would be. c) output slave This is a slave that we can offload a chunk of the screen outputting to. It doesn't render any operations. The idea would be the primary master GPU would provide a shared shadow pixmap with the slave, and the primary GPU would take care of dirty updates to that pixmap, and the slave output would just scanout. USB output devices are one use case, the other would be for the intel GPU on optimus systems where the nvidia is in charge of rendering the desktop, but cannot write direct to the LVDS/eDP. The provider object also contains the list of crtcs and outputs controlled by this provider. The set provider API is then used to dynamically do things, like attach/detach output slaves, switch an offload slave into a master (GPU switching), etc. I'm just wondering what other info I should or shouldn't be including in the provider, I sort of think some sort of device identifier or bus id would be useful, maybe the input guys have some stuff they found useful to know. Like we'd probably need a way for GUI tools to display info about the provider like a name or something. Dave. _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel