Sorry, I pressed the wrong button and sent it prematurely. On Wed, Jan 13, 2010 at 8:41 AM, Chia-I Wu <olva...@gmail.com> wrote: > On Wed, Jan 13, 2010 at 2:46 AM, Jakob Bornecrantz <ja...@vmware.com> wrote: >> On 12 jan 2010, at 16.16, Chia-I Wu wrote: >>> >>> On Tue, Jan 12, 2010 at 10:52 PM, Jakob Bornecrantz <ja...@vmware.com> >>> wrote: >>>> >>>> On 12 jan 2010, at 04.23, Chia-I Wu wrote: >>>>> >>>>> * Write up documentation >>>>> * Remove unused/non-working EGL drivers >>>>> * Remove drivers that are deprecated by egl_g3d >>>>> * Automatic driver selection (like DRI) >>>>> * Re-organize EGL demos >>>>> >>>>> The drivers to be removed are >>>>> >>>>> * Unused >>>>> * src/egl/drivers/demo/ >>>>> * src/egl/drivers/xdri/ >>>> >>>> I think that at least demo should remain if for nothing more then to >>>> serve >>>> as a empty skeleton for anybody wishing to make their own driver. >>> >>> The idea is that src/egl/drivers/glx/ has already provided a simple EGL >>> driver >>> that works. The demo driver, though compiles, is outdated or may outdate >>> over >>> time since it is not a working driver that can be verified. >> Hmm, maybe you are right. But it doesn't cost anything to keep it around. > The demo driver does not free resources at eglTerminate. It does not > initialize surfaces with _eglInitSurface. There may be more, which makes it a > bad demo driver. > > It may be updated, but since the driver won't run, it is hard to find if > anything is missing there. >>>>> * Non-working >>>>> * src/egl/drivers/dri/ >>>> >>>> Having the dri driver working would be desirable since it allows you to >>>> use >>>> none gallium drivers standalone. >>> >>> The only problem with the dri driver is that no one is maintaining it. I >>> agree >>> that there might still interests in loading DRI drivers from EGL drivers. >>> I >>> wrote one for Android. >>> >>> How about we keep the xdri driver and leave dri driver in the git history? >>> The >>> xdri driver >>> >>> * dlopen()s DRI1/DRI2 drivers >>> * talks with the X server using DRI1/DRI2 (the protocol) to implement >>> functions like getBuffersWithFormat >>> * works well >>> >>> The first point is the key idea shared by both dri and xdri drivers. >> The xdri driver is pretty much deprecated by the glx driver as it does >> pretty much the same thing. The dri is more interesting then the xdri driver >> since it is standalone from X. > However, it lacks maintenance. Th I tried to fix it once, but I gave up soon. Because the fix to it is not trivial and even if that is done, the egl dri driver supports only DRI1, which is fading out. egl_xdri is doing what egl_glx is doing, but in an interesting and different way. With direct access to DRI drivers, it is capable of doing what egl_glx can't (e.g. eglBindTexImage requires pbuffer but GLX_EXT_texture_from_pixmap supports only pixmaps).
My concern with keeping these drivers is that, when I first came to EGL in Mesa, there were 4 drivers under egl/drivers/. Three of them did not work, and two of them even didn't compile. It confused me. There are two EGL implementations I know of that load DRI(2) drivers and support non-X window system. One is egl_android. The other is libeagle for Wayland. egl_android works great but it uses a different build system (Android.mk). libeagle is a standalone library, but it is more promising. I do have some interests in porting it to egl_eagle and have Wayland use standard libEGL, but I haven't found the time. It would be great if someone is willing to help port libeagle. Otherwise, I prefer egl_xdri over egl_dri, or removing both. What do you think? >>>>> * src/mesa/drivers/dri/fb/fb_egl.c >>>>> * src/mesa/drivers/dri/radeon/server/radeon_egl.c >>>>> * src/mesa/drivers/dri/r600/server/radeon_egl.c >>>>> * src/mesa/drivers/dri/r300/server/radeon_egl.c >>>>> * src/mesa/drivers/dri/r200/server/radeon_egl.c >>>>> * Deprecated by egl_g3d >>>>> * src/gallium/state_trackers/egl/ >>>>> * src/gallium/winsys/egl_xlib/ >>>>> >>>>> If anyone has any concern or is actively using any of the driver listed >>>>> above, >>>>> please let me konw. The removal, especially of those in the last >>>>> category, is >>>>> still a plan, and is supposed to be several weeks away. If anyone has >>>>> any >>>>> trouble using/testing egl_g3d, please let me know too. >>>> >>>> I'm okay with removing s/g/st/egl and moving egl_g3d to s/g/st/egl. >>>> Actually >>>> I'm more then okay with the move since I'm not a big fan of the name name >>>> egl_g3d. >>> >>> Thanks. I will do the rename after the removal :P >>>>> >>>>> As for the re-organization, I want to move various demos using EGL to >>>>> progs/egl/. The directory structure will be like >>>>> >>>>> progs/egl/opengl >>>>> progs/egl/opengles1 >>>>> progs/egl/opengles2 >>>>> progs/egl/openvg >>>> >>>> Also progs/egl/interop once we get inter API communication working. >>> >>> Yes. Actually, inter API communication should be working with egl_g3d. >>> It >>> just lacks demos. >> >> Ah cool, I'm looking forwards to when we get EGLImage. There is working EGLImage support in egl_android, which uses DRI. st_public.h is not enough to support EGLImage and its family. I plan to add it to egl_g3d after reworking st_public.h. >> >>>>> >>>>> There will be simple window-system glue code that the demos may use. >>>>> Simple >>>>> demos who use the glue code will be able to run on multiple window >>>>> systems >>>>> like >>>>> X11 and bare KMS. >>>>> >>>>> There are also plans for new features and internal cleanups. But I want >>>>> to >>>>> start with attracting new users/developers first, as EGL is almost ready >>>>> to >>>>> shine. >>>> >>>> Nice work! >>>> Can you write down a list of what drivers that the new code produce? >>> >>> When configured with --egl-native-displays=x11,kms, egl_g3d will give >>> libeglx11.a and libeglkms.a. They are used by winsys/drm/ to give >> >> Just a nitpick --egl-native-displays should be somehow marked as being >> gallium only as the native display interface is dependent on gallium, also >> why do you have to include egl_g3d there shouldn't that just be common? Sorry, I had some typos. It is "--with-egl-native-displays=x11,kms". It is used by gallium to decide which drivers to compile. And, it will be used by libEGL to decide which drivers to probe. I am thinking having libEGL look for egl_x11_*.so or egl_kms_*.so depending on an environment variable, say EGL_DISPLAY=x11 or EGL_DISPLAY=kms, respectively. When the variable is not set, it will assume a default value, which is the first display listed in --with-egl-native-displays. >> >>> >>> egl_x11_i965.so >>> egl_x11_i915.so >>> egl_x11_nouveau.so >>> egl_x11_r300.so >>> egl_x11_vmwgfx.so >>> egl_kms_i965.so >>> egl_kms_i915.so >>> egl_kms_nouveau.so >>> egl_kms_r300.so >>> egl_kms_vmwgfx.so >>> >>> I only tested the i915 ones. Luca reported success with nouveau ones. >>> The >>> others are only compile tested. Automatic driver selection is also part >>> of the >>> plan. >> >> Ok cool stuff. >> >> Cheers Jakob. >> > ------------------------------------------------------------------------------ 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