Adopting Single Pass Instanced. What's the proposed strategy here if any for existing packages?

Let’s assume we have a collection of working full-screen image effects that work with both multi-pass and SPSR.

When SPSR was introduced, many shaders had to be modified to introduce the use of new macros like UnityStereoScreenSpaceUVAdjust to seamlessly support both XR rendering paths. The positive outcome of that change was the support for both multi-pass and SPSR using the same shader code, so it was just another abstraction layer to implement.

Now, we are presented with another VR rendering path (Single Pass Instanced) which introduces a completely new set of macros to use across the shaders.

So how is supposed we should support the new Single Pass Instanced in existing full-screen image effects? Specifically I’d like to know if the new APIs will gracefully work with SPSR (non-instanced) - or if not possible, what’s the alternative to have full-screen image effects supporting all XR paths (duplicating packages/shaders?).

All of the stereo rendering macros should turn into NOPs in other rendering methods, so they can be combined.

Thanks.

Is it possible to have UNITY_SAMPLE_SCREENSPACE_TEXTURE_LOD in the future?

May SAMPLE_RAW_DEPTH_TEXTURE_LOD be used in its place for now?

That one works, but seems like a hack, wish they would make a standard practice of providing _LOD for all the macros. Seems very hit and miss.

#define UNITY_SAMPLE_SCREENSPACE_TEXTURE_LOD(tex, uv) UNITY_SAMPLE_TEX2DARRAY_LOD(tex, float3((uv).xy, (float)unity_StereoEyeIndex), uv.w)