Hi all, This patch series brings a new EGL (meta) driver, libegl.a. Like libegldrm.a living under state_trackers/egl/, the build process uses it to build various EGL drivers, like egl_i915.so, egl_radeon.so, and etc. I've only tested egl_i915. myself, and others are only compile tested.
This driver should be more flexible/complete than the others. After it is tested and accepted, I want to remove egl_softpipe and egl_xdri, as they are deprecated by this driver. I also plan to add support for EGL_MESA_screen_surface and replace state_trackers/egl/. This driver consists of three part * EGL Driver Interface * Native Display(s) * State Tracker Loader The first part allows it to be loaded as an EGL driver, and all common functions are implemented. The second part abstracts a native display. A native display is the X server on most Linux desktops. But it may also be KMS, Android, or others. The abstraction makes it easy to support a new native display. Right now, there is only support for X server. It supports XImage/XShmImage for software rendering. And it also supports DRI2/GLX when the X server supports them. It talks the protocol directly and there is no dependency on libGL. It will ask the server for the driver name, and if the hardware pipe driver matches, it will be used. The detection is done at runtime and there is a fallback mechanism. One may also force the use of the software rendering by setting the env variable EGL_SOFTWARE=1. This should be the first time we have accelerated OpenVG and OpenGL ES on X11. All progs/egl/x* should render correctly with the new driver. All progs/openvg/* work too. But some of the OpenVG demos render incorrectly when used with the i915 pipe driver. I don't have other graphics hardwares that help me identify where the problem is :( The last part allows multiple client APIs to be used at the same time. Currently, the state tracker API is defined in st_public.h. Difference state trackers (say, OpenVG and OpenGL) define the same API that the EGL cannot distinguish. This driver solves the problem through the use of dladdr(). This is supposed to be temporary. I want to rework st_public.h after figuring out what a state tracker should look like. It might base on http://www.mail-archive.com/mesa3d-dev@lists.sourceforge.net/msg09789.html This is kinda a lenghty mail. Thank you for the patience and Happy New Year! -- Regards, olv
egl_g3d.tar.gz
Description: Binary data
------------------------------------------------------------------------------ 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