As I frequently need to make sure my changes to EGL core do not break any of the various EGL drivers, I found that I have to change the configs between DRI and non-DRI ones, and re-build everything. It is a little time consuming, and I think it can be solved by moving the dri remap table to mesa core.
I've done some experiments and it seems to work great. The remap table in core is made a feature in mfeatures.h #ifdef IN_DRI_DRIVER #define FEATURE_remap_table 1 #else #define FEATURE_remap_table 0 #endif It has zero impact on the performance of non-DRI drivers because IN_DRI_DRIVER is not defined. But when IN_DRI_DRIVER is defined, the same libmesa.a can be linked to by DRI drivers and non-DRI drivers. Another direct benefit of the change is the separation of function remapping and extension initialization. In every hw dri driver, driInitExtensions is called twice to solve the chicken-egg problem: functions need to be remapped before a context can be initialized, and a context need to be initialized before extensions can be enabled. This problem is automatically solved when functions are remapped in mesa core. There is also no need for the DRI drivers to list an extension only because the mesa core implements some functions in terms of functions in the extension (See the comments in drivers/dri/common/utils.c). How does it sound? I can refine my experiments and post an RFC patch series if it sounds a good idea. -- Regards, olv ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev