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

Reply via email to