[RFC] Virtual CRTCs (proposal + experimental code)
ihadzic at research.bell-labs.com
Thu Nov 3 10:14:53 PDT 2011
On Thu, 3 Nov 2011, Roland Scheidegger wrote:
> Am I right in assuming this could also be used for making muxless hybrid
> GPUs work (i.e. radeon/intel igp)?
Yes, this is actually one of the scenarios on my wish list too. In the
terminology that I defined with the introduction of VCRTCM, IGP would act
as a CTD driver and Radeon would be the GPU driver.
It should be relatively straightforward to add CTD hooks to an existing
Intel GPU driver and load the module in "CTD mode" when you want to do
Another (maybe trivial, but solution unknown to me) hurdle would be to
"convince" your motherboard not to turn off IGP if it senses that there is
a GPU plugged in its PCI-Express slot. I would assume that there is a way
to do that and maybe Intel folks could tell us (or maybe it's already
known, but I am ignorant on this).
> Though it would be restricted to do
> all work on one gpu and the igp would just send the data to the display
> (which ultimately is not really what we want as compositing etc. should
> ideally always happen on the IGP so external graphic chip can be turned
> off but I don't even want to think about what needs to happen to make
> that work).
In a straightforward implementation, that would be a restriction. However,
when a CTD driver "asks" VCRTCM module to create a push-buffer for it (a
buffer in the memory to which GPU will push the pixels from a virtual
CRTC), what comes back are pages associated with a GEM/TTM bo in GART
domain. I could imagine an IGP "reusing" that object for some additional
rendering (as opposed to just linking it to its own CRTC).
These are just half-baked thoughts and I am sure that it would require
some "specialty" in the userland and that things would get messy before
they get better, but still not outside of the realm of possiblities.
More information about the dri-devel