DeanoC said:
A initial submission strategy, would imply the driver getting (in future)10,000s of shaders... I doubt the driver is going to hand that well.
zeckensack said:
If you start whacking together a serious material system, your count of possible permutations easily goes into the thousands.
We had this discussion recently in another thread.
We shouldn't demand a driver to handle outrageous cases well. I have no sympathy for the developer who feeds the API with 10,000 shaders. The application is flawed. It's a poor usage of the API, and it's not the driver's responsibility to adhere to misuse of the API. It's the application's responsibility to use the API properly if you expect any level of performance, and that includes load time performance.
I don't have any sympathy for developers using 10,000 vertex buffers either. They made a poor design decision, and they have to suffer the consequences, namely poor performance. Just because you have 10,000 objects doesn't mean you should have 10,000 vertex buffers. The vertex buffers are flexible enough for you to be able to pack many objects into each buffer and yet draw them independently if neccesary. Just because you have 10,000 objects doesn't mean you should have 10,000 shaders. The shaders are very flexible, and if you want any level of performance, run time and load time, you better learn to use it properly.
I'm opposed to writing drivers according to the standards of badly written applications.