I’ve written down the basic idea here. Done some tests and it really seems to work!
That required tiny 700 lines of hacky C++ code in the engine; but in exchange there’s no longer a need to write state restoring passes by hand. Maybe such effect usage scheme would even be useable in RealWorld!
Too bad I didn’t think it up a couple of months ago. My ShaderX4 article about this subject would have been much better…
Ok, still got to test this stuff on real world data (i.e. trying it on our demos)