> Considering the disparate ISAs of nvfx, r300, i915, and things we
> don't have public drivers for (yet), like poulsbo and volari; and
> considering the inability of contexts to fail to compile shaders, I'd
> say that this is not such a simple thing.
What isn't such a simple thing?
> Sure, TGSI has double opcodes. One might think that this is awesome,
> and writes a shader using double opcodes. But, it mysteriously doesn't
> work on r300g.
We don't provide access to those from anywhere, so that would be very
hard. And when we do it's going to be in the next generation of state
trackers and these will simply not work with r300g, so as far as I can
tell that can't happen.
The only scenario here that could make this even remotely possible
is GL and the GL state tracker will need to solve this problem with
caps like it already does. Runtime checking of those things is the
only way it will ever work, docs just don't solve this problem.
> Either it asserts (current behavior), or it drops all
> the rendering on the floor. We have no way to tell the state tracker
> that the shader failed to compile. In my mind, this is a big problem,
> since it requires drivers to magically Just Work for any shader.
Yes, that's not ideal, but that's a different discussion.
z