> Screen surfaces are by definition scan-out buffers of the adapters.  In
> theory, the extension is used by opengl applications in an environment
> without display server, or used by the display server itself.  And the
> extension cannot be supported by any X11 driver.
>
> The main reason, at least for me, to "emulate" it under X11 is that
> about half of the demos require the extension to run.  It might scare
> away those who are new to EGL when half of the demos fail to run under
> X11.  But to emulate it, I would like it to be as simple as possible.

Another big advantage is that it is the only way to write EGL programs
without window system specific code.
Maybe an EGL_MESA_input could be added to abstract input in the same
way, but this is more tricky.

I'm not sure if it can be made simpler.
Presenting a maximized window seems to me much more user friendly that
a randomly sized one, especially considering that the application may
not have code to handle resizing of the window, so I wouldn't cut that
out
You could cut out the xrandr modesetting, but that would prevent using
the extension to actually set a screen mode as it would happen on a
console implementation.
Outside of eglx11.c, the changes are minimal.
egl_glx support is required for acceleration.
egl_xlib support may be removed, but it is cheap to have.

> What do you think if the changes are made minimal and are made to a
> single driver?  I think eglx11.[ch] may be simplified for less
> flexibility and functionality, but still enough to support the demos.
> Also, I would like to move it to either egl_softpipe or egl_glx.  I
> prefer egl_softpipe because it supports APIs other than OpenGL (which is
> why it is default).  But if you would like to have acceleration, egl_glx
> is fine too.

For the purpose of making demos just work, egl_glx seems superior, as
it would be surprising for the user to have their demos possibly
taking several seconds per frame with egl_softpipe.
That allows to have EGL demos be as good as the GLX ones, and actually
better since they would automatically present sensibly sized (i.e.
maximized) windows and support fullscreen.

> There are 3 EGL drivers for X11 right now.  Longer term, I would like to
> have a single driver that supports multiple APIs and acceleration.  The
> driver should talk DRI2 (the protocol) and probably minimal GLX to the X
> server.

Yes, that probably should be done.
Ideally the following should probably happen:
1. Make all the various components shared libraries (with git version
or whatever in the filename to allow ABI breaking): Mesa, the Mesa
state tracker, and the Gallium state trackers and drivers
2. Make libGL.so GLX a driver loader
3. Make a GLX indirect driver from src/glx/x11
4. Make a DRI GLX driver from src/glx/x11 and mesa/drivers/dri/common. Remove
5. Make a Gallium software GLX driver from src/gallium/winsys/xlib
6. Remove egl_xlib in favor of egl_glx over the Gallium software GLX
driver. This way X11 support is only done through GLX.
7. Remove the non-Gallium fakeglx stuff in src/mesa/drivers/x11 in
favour of src/gallium/state_trackers/glx/xlib
8. Remove egl_dri and egl_xdri
9. Change src/gallium/state_trackers/egl to be an independent EGL
driver loading the shared librariy Gallium drivers
10. Possibly remove swrast and all the Mesa drivers except state_tracker

This way we would have the Gallium EGL driver for console EGL and
egl_glx for X11.
Non-Gallium DRI EGL support probably doesn't matter since it will
hopefully go away relatively soon and there is no real installed base.

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to