Here is a series of patches to add an extension which makes it possible to create an EGL context without specifying a config. A context created in this way can be bound with any surface using the same EGLDisplay rather than being restricted to those using the same config. The main use case is that it would then be possible for a Wayland compositor to drive two displays which may have different bit-depths without having to wastefully create two contexts.
Mesa seems to mostly cope with this already so the patches are mostly just to add the extension and remove the restriction. There is also a patch for Piglit to try and test the extension. I tried running the branch though the 'all tests' test suite and apart from this new test now passing there was only one difference which is that the GLX_OML_sync_control/swapbuffersmsc-divisor-zero test failed. However if I run piglit-run.py again and set a regexp so it only runs that one test then it passes so I'm wondering if it might just be an intermittent failure. The main thorny issue with the extension is how to handle the initial value of glDrawBuffer when a configless context is used. If a config is used then we can just say the default is GL_BACK if the config is double-buffered and GL_FRONT otherwise. I have taken the approach that this decision is made the first time the context is bound rather than when it is first created. There should be no way to query the value of glDrawBuffer until the context is first bound so it shouldn't cause any harm that Mesa changes the value at that point. I think this is worth doing for the convenience to the application which would otherwise have to remember to explicitly set it to GL_BACK in the common case that double-buffering is used. I've also included a couple of patches to take advantage of the extension in Weston. Regards, - Neil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev