The idea here is that the DDX creates a GLX provider during AddScreen, and then GlxExtensionInit walks the list of created providers and calls their setup functions to initialize GLX for a screen. If you have heterogeneous GPUs in a Zaphod setup this would let you have GLX on both. If you often change between drivers with different GLX stacks, this lets the driver ask for the right thing instead of requiring xorg.conf changes.
That's a lie, of course, because in this series the xfree86 DDX doesn't implicitly register a provider for you. I'm not sure what the best way to handle this is. I'd like not to have to touch every driver, and I'd like it if the DRI2 provider was only probed if the screen called DRI2ScreenInit, and I'd like it if that didn't rely knowing which order CallCallbacks was going to walk its list; I may not get everything I want. It might be worth just teaching the vnd layer about the swrast provider and letting it claim any otherwise-unclaimed screens, even though that feels like a layering violation. Other things that aren't quite handled yet: - autotools build system - windows and osx builds - dmx not ported - libglx should be loadable for more than just xfree86 Still, feedback much appreciated. - ajax _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
