EGL_MESA_choose_display version 1

Jon Smirl jonsmirl at gmail.com
Wed Jun 15 10:13:24 PDT 2005


On 6/15/05, Adam Jackson <ajax at nwnk.net> wrote:
> But it _can_ tell the difference.  That's the whole point of wanting this
> extension.  The first case is one EGLDisplay handle that can have two screen
> surfaces attached; the second case is two EGLDisplay handles with one screen
> surface each.

It can not tell the difference if the driver hides the information

> One EGLDisplay maps to one GPU.  If you want to virtualize multiple
> EGLDisplays out of one GPU for that DX10 mux trick you mentioned, you need
> kernel support for that anyway, so do it there, not in EGL.

Obviously the support to implement this needs to go into the driver. 
It is the driver that is going to make EGL think that a single
physical card is two cards. In this system the screens are assigned to
the users individually, not the physical cards. The driver syntax for
EGL needs to reflect screen assignments not card assignments or this
multiuser feature will be blocked from being accessed by the API.

In the Linux implementation the fbdev devices have to be one per
screen since you need to be able to set the mode to each screen. fbdev
does not follow the model of display-screen, it is screen only.

At the higher level just call egl_initialize for all of the screens -
screen/0 screen/1 etc. Or call it with default display and I walk the
device nodes, see which ones you own and initialize all of them.

Xinerama type support is achieved inside of the OpenGL drivers. If you
have initialized both of the screens on your card there will be extra
modes in the mode list representing the Xinerama type modes. Set one
of these and it will trigger mergedfb and make the other screen handle
return EGL_LOST. All of this can be done in the existing EGL
framework.

> 
> - ajax
> 
> 
> 


-- 
Jon Smirl
jonsmirl at gmail.com


More information about the dri-egl mailing list