Hi everyone!
Receiving shadows without using a shadow caster pass in a shader used to work perfectly in 5.3. Since 5.4, I haven’t been able to do that anymore.
I was working on a water asset with Unity 5.3. I could receive shadows without having a shadow caster pass using SHADOW_COORDS, TRANSFER_SHADOW and SHADOW_ATTENUATION. (Render Queue is AlphaTest+50 (2500) )

I need to disable the shadow caster pass, because else it writes to the Z-buffer and that would mess up the depth effects like this:

So I test my shader on Unity 5.4, but the shadows are wrong:

It receives the shadow of the block, through the water.
So my guess is that the shadow calculation pipeline changed and now requires a shadow caster pass.
What I tried without success:
- Changing the rendering Queue and RenderType
- Changing Zwrite On/Off
- Using a custom shadow caster pass with ZWrite Off
- Using a Fallback
- Using a CommandBuffer to copy the depth buffer before the shadow caster: I managed to copy a depth buffer, but I can’t seem to copy it exactly where I want.
I know shadows are hard, but if someone knows a solution, I’d be happy to hear it!