invalid subscript 'worldPos' at Assets/Features/Shared/Volund_UnityStandardCore.cginc(252) (on d3d11)

I'm always getting this error on my shader

Shader error in 'Volund/Standard Character (Specular)': invalid subscript 'worldPos' at Assets/Features/Shared/Volund_UnityStandardCore.cginc(252) (on d3d11)

Compiling Vertex program with DIRECTIONAL Platform defines: UNITY_NO_DXT5nm UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME

I don't know why but here is my shader code for that area:

inline UnityGI FragmentGI (
float3 posWorld, 
half occlusion, half4 i_ambientOrLightmapUV, half atten, half oneMinusRoughness, half3 normalWorld, half3 eyeVec,
UnityLight light )
{
UnityGI d;
ResetUnityGI(d);
d.light = light;
d.worldPos = posWorld;
d.worldViewDir = -eyeVec;
d.atten = atten;
#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
    d.ambient = 0;
    d.lightmapUV = i_ambientOrLightmapUV;
#else
    d.ambient = i_ambientOrLightmapUV.rgb;
    d.lightmapUV = 0;
#endif

    //change the above code with this
#if UNITY_SPECCUBE_BLENDING || UNITY_SPECCUBE_BOX_PROJECTION
        d.boxMin[0] = unity_SpecCube0_BoxMin;
        d.boxMin[1] = unity_SpecCube1_BoxMin;
#endif
#if UNITY_SPECCUBE_BOX_PROJECTION
        d.boxMax[0] = unity_SpecCube0_BoxMax;
        d.boxMax[1] = unity_SpecCube1_BoxMax;
        d.probePosition[0] = unity_SpecCube0_ProbePosition;
        d.probePosition[1] = unity_SpecCube1_ProbePosition;
#endif

//lets change the code
    //d.boxMax[0] = unity_SpecCube0_BoxMax;
    //d.boxMin[0] = unity_SpecCube0_BoxMin;
    //d.probePosition[0] = unity_SpecCube0_ProbePosition;
    //d.probeHDR[0] = unity_SpecCube0_HDR;

    //d.boxMax[1] = unity_SpecCube1_BoxMax;
    //d.boxMin[1] = unity_SpecCube1_BoxMin;
    //d.probePosition[1] = unity_SpecCube1_ProbePosition;
    //d.probeHDR[1] = unity_SpecCube1_HDR;

    return UnityGlobalIllumination(
        d, occlusion, oneMinusRoughness, normalWorld);
}





 //-------------------------------------------------------------------------------------
half4 OutputForward (half4 output, half alphaFromSurface)
{
#if defined(_ALPHABLEND_ON) || defined(_ALPHAPREMULTIPLY_ON)
    output.a = alphaFromSurface;
#else
    UNITY_OPAQUE_ALPHA(output.a);
#endif
return output;
}

// ------------------------------------------------------------------
//  Base forward pass (directional light, emission, lightmaps, ...)

struct VertexOutputForwardBase
{
float4 pos                          : SV_POSITION;
float4 tex                          : TEXCOORD0;
half3 eyeVec                        : TEXCOORD1;
half4 tangentToWorldAndParallax[3]  : TEXCOORD2;    // [3x3:tangentToWorld | 1x3:viewDirForParallax]
half4 ambientOrLightmapUV           : TEXCOORD5;    // SH or Lightmap UV
SHADOW_COORDS(6)
UNITY_FOG_COORDS(7)

// next ones would not fit into SM2.0 limits, but they are always for SM3.0+
#if UNITY_SPECCUBE_BOX_PROJECTION
    float3 posWorld                 : TEXCOORD8;
#endif
};

VertexOutputForwardBase vertForwardBase (VertexInput v) 
{
VertexOutputForwardBase o;
UNITY_INITIALIZE_OUTPUT(VertexOutputForwardBase, o);

float4 posWorld = mul(unity_ObjectToWorld, v.vertex);
#if UNITY_SPECCUBE_BOX_PROJECTION
    o.posWorld = posWorld.xyz;
#endif
o.pos = UnityObjectToClipPos(v.vertex);
o.tex = TexCoords(v);
o.eyeVec = NormalizePerVertexNormal(posWorld.xyz - _WorldSpaceCameraPos);
float3 normalWorld = UnityObjectToWorldNormal(v.normal);
#ifdef _TANGENT_TO_WORLD
    float4 tangentWorld = float4(UnityObjectToWorldDir(v.tangent.xyz), v.tangent.w);

    float3x3 tangentToWorld = CreateTangentToWorldPerVertex(normalWorld, tangentWorld.xyz, tangentWorld.w);
    o.tangentToWorldAndParallax[0].xyz = tangentToWorld[0];
    o.tangentToWorldAndParallax[1].xyz = tangentToWorld[1];
    o.tangentToWorldAndParallax[2].xyz = tangentToWorld[2];
#else
    o.tangentToWorldAndParallax[0].xyz = 0;
    o.tangentToWorldAndParallax[1].xyz = 0;
    o.tangentToWorldAndParallax[2].xyz = normalWorld;
#endif
//We need this for shadow receving
TRANSFER_SHADOW(o);

// Static lightmaps
#ifndef LIGHTMAP_OFF
    o.ambientOrLightmapUV.xy = v.uv1.xy * unity_LightmapST.xy + unity_LightmapST.zw;
    o.ambientOrLightmapUV.zw = 0;
// Sample light probe for Dynamic objects only (no static or dynamic lightmaps)
#elif UNITY_SHOULD_SAMPLE_SH
    #if UNITY_SAMPLE_FULL_SH_PER_PIXEL
        o.ambientOrLightmapUV.rgb = 0;
    #elif (SHADER_TARGET < 30)
        o.ambientOrLightmapUV.rgb = ShadeSH9(half4(normalWorld, 1.0));
    #else
        // Optimization: L2 per-vertex, L0..L1 per-pixel
        o.ambientOrLightmapUV.rgb = ShadeSH3Order(half4(normalWorld, 1.0));
    #endif
    // Add approximated illumination from non-important point lights
    #ifdef VERTEXLIGHT_ON
        o.ambientOrLightmapUV.rgb += Shade4PointLights (
            unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0,
            unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb,
            unity_4LightAtten0, posWorld, normalWorld);
    #endif
#endif

#ifdef DYNAMICLIGHTMAP_ON
    o.ambientOrLightmapUV.zw = v.uv2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;
#endif

#ifdef _PARALLAXMAP
    TANGENT_SPACE_ROTATION;
    half3 viewDirForParallax = mul (rotation, ObjSpaceViewDir(v.vertex));
    o.tangentToWorldAndParallax[0].w = viewDirForParallax.x;
    o.tangentToWorldAndParallax[1].w = viewDirForParallax.y;
    o.tangentToWorldAndParallax[2].w = viewDirForParallax.z;
#endif

UNITY_TRANSFER_FOG(o,o.pos);
return o;
}