gallium API: Single entrypoints for shader create/destroy (and maybe bind?)
Working on the NIR/TGSI behavior of the GL frontend to gallium, part that keeps bothering me is the split between the shader stages for shader create/destroy. Given that TGSI and NIR both have the stage baked into the shader, and most drivers have the same method on the backend, the split feels like a waste. I'm particularly bothered by the difference in type for the compute shader creation, when we already have extra per-stage info for non-fragment shaders in the form of stream out.
I think the nastiest part of the transition would be the parts of the draw module that hook in for single shader stages. Still, I think it's worth exploring.
One prep MR is at !8431, working on another one for d3d12.