Sharing surfaces and multiple drivers

Brian Paul brian.paul at tungstengraphics.com
Sat Apr 30 12:13:29 PDT 2005


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'm looking at the code in src/egl/drivers and multiple drivers is not
 > addressed by it. I'm thinking about how I can get SW mesa running with
 > a dumb FB and egl support.

I was hoping to do a sample/software EGL driver at some point, but 
I've got too many other things to work on.

-Brian


More information about the dri-egl mailing list