On 17/03/2008, Stefan Dösinger stefan@codeweavers.com wrote:
From the atifs API putting the code into its own shader backend really helps abstraction and efficiency in wined3d(e.g. different state linking). nvrc has a vastly different API(individual stages instead of one "atomic" program that can't be split up).
That's more an issue with the state table design than a reason to create a new shader backend. A more hierarchical state table would probably have helped there, but the general issue you're trying to solve is that you want the state table to change depending on the available extensions and wined3d configuration. I don't think that's limited to shaders or fragment processing. If a GL3 spec ever actually gets released, and actual drivers start implementing it, we'll run into it there as well.