Are you recommending VRS because I mentioned I was doing VR in another topic yesterday? Because it just happens I spent most my time yesterday implementing that. I.e. fixed-foveated-rendering, and it was definitely worth it.
I avoid back-end AA techniques. I was very happy that yesterday I managed to eliminate all signs of pixels in my game app in full super-sampling mode in VR (looks like 3x native) by applying a no-cost AA technique that maybe I’m the only person in the world who knows about it and uses it. It is pretty cool to see VR without any pixels, but since you work with Varjo you probably know all about that. (EDITED: I mean, it’s not full FOV but to me it looks as detailed as reality itself short of maybe some crispness here and there, but not square pixels. I’ve very impressed with PCVR except for god rays and dim/banded colors. I’m using HP Reverb G2.)
RE “rebuilding the shader to match state” I saw that some when I tried to use ANGLE with the newer graphics APIs. It was inside the driver and not in ANGLE’s software layer. That’s pretty crazy and probably shouldn’t be allowed… but I assume that the driver keeps both/all mutated versions of shaders and doesn’t just thrash them, but it still has to switch in response to state. I don’t think sorting textures based on the presence of colorkey style pixels would be super practical in terms of all the other sorting goals. It does seem like it would be good to have a hardware toggle to force off discard so what @GClements GClements said could be relied on… but what do I know.
As for what I meant about this… is I assume that GPU workloads have multiple shader pipelines operating simultaneously, but I’ve never looked into it. I’m sure it must at least have multiple GPU “cores” working on different apps/contexts simultaneously… anyway, that’s all I meant by “multiple shaders” since you asked.