Flickering water material in VR mode

Hi!

Please tell me why, the water starts to flicker when entering VR mode. A shader is used for water

Shader "WaterVR/Surface Light Clear"
{
    Properties
    {
        [Header(Color Settings)] _Color("Color", Color) = (1,1,1,0)
        _Tint("Tint", Color) = (0,0,0,0)
        [Header(Normal Settings)]_Normal("Normal", 2D) = "bump" {}
        _Normal2nd("Normal 2nd", 2D) = "bump" {}
        _Smoothness("Smoothness", Range(0 , 1)) = 0.8
        _NormalPower("Normal Power", Range(0 , 1)) = 1
        _NormalPower2nd("Normal Power 2nd", Range(0 , 1)) = 0.5
        [Header(Animation Settings)]_RipplesSpeed("Ripples Speed", Float) = 1
        _RipplesSpeed2nd("Ripples Speed 2nd", Float) = 1
        _SpeedX("Speed X", Float) = 0
        _SpeedY("Speed Y", Float) = 0
        [Toggle][Header(Visual Fixes)]_ZWrite1("ZWrite", Float) = 1
        [HideInInspector] _texcoord("", 2D) = "white" {}
        [HideInInspector] __dirty("", Int) = 1
        [Header(Forward Rendering Options)]
        [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
        [ToggleOff] _GlossyReflections("Reflections", Float) = 1.0
    }

        SubShader
        {
            Tags{ "RenderType" = "Opaque"  "Queue" = "Transparent-1" "IgnoreProjector" = "True" "IsEmissive" = "true"  }
            Cull Back
            ZWrite[_ZWrite1]
            GrabPass{ "_GrabWater" }
            CGPROGRAM
            #include "UnityStandardUtils.cginc"
            #include "UnityShaderVariables.cginc"
            #pragma target 5.0
            #pragma shader_feature _SPECULARHIGHLIGHTS_OFF
            #pragma shader_feature _GLOSSYREFLECTIONS_OFF
            #if defined(UNITY_STEREO_INSTANCING_ENABLED) || defined(UNITY_STEREO_MULTIVIEW_ENABLED)
            #define ASE_DECLARE_SCREENSPACE_TEXTURE(tex) UNITY_DECLARE_SCREENSPACE_TEXTURE(tex);
            #else
            #define ASE_DECLARE_SCREENSPACE_TEXTURE(tex) UNITY_DECLARE_SCREENSPACE_TEXTURE(tex)
            #endif
            #pragma surface surf Standard keepalpha noshadow exclude_path:deferred
            struct Input
            {
                float2 uv_texcoord;
                float4 screenPos;
            };

            uniform sampler2D _Normal;
            uniform float _NormalPower;
            uniform float _RipplesSpeed;
            uniform float4 _Normal_ST;
            uniform sampler2D _Sampler0409;
            uniform float _SpeedX;
            uniform float _SpeedY;
            uniform sampler2D _Normal2nd;
            uniform float _NormalPower2nd;
            uniform float _RipplesSpeed2nd;
            uniform float4 _Normal2nd_ST;
            uniform sampler2D _Sampler0410;
            uniform float4 _Tint;
            ASE_DECLARE_SCREENSPACE_TEXTURE(_GrabWater)
            uniform float4 _Color;
            uniform float _Smoothness;
            uniform float _ZWrite1;


            inline float4 ASE_ComputeGrabScreenPos(float4 pos)
            {
                #if UNITY_UV_STARTS_AT_TOP
                float scale = -1.0;
                #else
                float scale = 1.0;
                #endif
                float4 o = pos;
                o.y = pos.w * 0.5f;
                o.y = (pos.y - o.y) * _ProjectionParams.x * scale + o.y;
                return o;
            }


            void surf(Input i , inout SurfaceOutputStandard o)
            {
                float mulTime187 = _Time.y * _RipplesSpeed;
                float2 uv0_Normal = i.uv_texcoord * _Normal_ST.xy + _Normal_ST.zw;
                float2 panner22 = (mulTime187 * float2(-0.04,0) + uv0_Normal);
                float mulTime395 = _Time.y * (_SpeedX / (_Normal_ST.xy).x);
                float mulTime403 = _Time.y * (_SpeedY / (_Normal_ST.xy).y);
                float2 appendResult402 = (float2(mulTime395 , mulTime403));
                float2 temp_output_422_0 = (_Normal_ST.xy * appendResult402);
                float2 panner19 = (mulTime187 * float2(0.03,0.03) + uv0_Normal);
                float mulTime323 = _Time.y * _RipplesSpeed2nd;
                float2 uv0_Normal2nd = i.uv_texcoord * _Normal2nd_ST.xy + _Normal2nd_ST.zw;
                float2 temp_output_397_0 = (uv0_Normal2nd + float2(0,0));
                float2 panner320 = (mulTime323 * float2(0.03,0.03) + temp_output_397_0);
                float2 temp_output_423_0 = (appendResult402 * _Normal2nd_ST.xy);
                float2 panner321 = (mulTime323 * float2(-0.04,0) + temp_output_397_0);
                float3 NormalWater315 = BlendNormals(BlendNormals(UnpackScaleNormal(tex2D(_Normal, (panner22 + temp_output_422_0)), _NormalPower) , UnpackScaleNormal(tex2D(_Normal, (panner19 + temp_output_422_0)), _NormalPower)) , BlendNormals(UnpackScaleNormal(tex2D(_Normal2nd, (panner320 + temp_output_423_0)), _NormalPower2nd) , UnpackScaleNormal(tex2D(_Normal2nd, (panner321 + temp_output_423_0)), _NormalPower2nd)));
                o.Normal = NormalWater315;
                o.Albedo = _Tint.rgb;
                float4 ase_screenPos = float4(i.screenPos.xyz , i.screenPos.w + 0.00000000001);
                float4 ase_grabScreenPos = ASE_ComputeGrabScreenPos(ase_screenPos);
                float4 screenColor223 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_GrabWater,ase_grabScreenPos.xy / ase_grabScreenPos.w);
                o.Emission = (screenColor223 * _Color).rgb;
                o.Smoothness = (_Smoothness + (_ZWrite1 * 0.0));
                o.Alpha = 1;
            }

            ENDCG
        }
            CustomEditor "ASEMaterialInspector"
}