Sharing surfaces and multiple drivers

Brian Paul brian.paul at tungstengraphics.com
Sat Apr 30 16:14:36 PDT 2005


Jon Smirl wrote:
> On 4/30/05, Brian Paul <brian.paul at tungstengraphics.com> wrote:
> 
>>Jon Smirl wrote:
>>
>>>My current machine has a R200, R128 and software mesa. Do we handle
>>>this correctly? There are three kinds of surfaces, R200, R128 and
>>>system RAM. Is AGP space another surface type? System RAM surfaces can
>>>be shared between the two hardware drivers, but the board specific
>>>ones can't. Another variation on this would be multiple identical
>>>cards sharing a single driver.
>>>
>>>Surfaces can generate at least three types of errors:
>>>bad handle
>>>surface lost - card removed
>>>not appropriate for the context - selecting R200 surface into R128 context
>>>
>>>This can be complex, create a software surface in RAM using SW mesa.
>>>Now you want to use it with an R200 context. The R200 context can't
>>>get to it. You need to use a SW mesa context to copy between system
>>>RAM and AGP space. Then the R200 one to get from AGP space to VRAM. Or
>>>maybe use the mesa context to copy directly to VRAM.
>>
>>EGL contexts and surfaces are created with respect to an EGLDisplay
>>connection.  An EGL context/surface created with one display can't be
>>used with another.
>>
>>I've been assuming that an EGLDisplay connection corresponds to a
>>graphics card/device.  So, moving/sharing surfaces between devices
>>isn't directly supported.
>>
>>Can you live without that feature for the time being?
> 
> 
> I was looking at EGLDisplay as having at least two devices, the
> hardware one and the software renderer.

Not sure I understand.  The Mesa software renderer is included in each 
hardware driver.  Do you see a need to specifically create 
software-based rendering contexts/surfaces when there's hardware 
rendering available?

-Brian



More information about the dri-egl mailing list