void LateUpdate()
        {
            NativeArray <float>?distances = null;

            if (stabilizationMode == StabilizationMode.FurthestObject)
            {
                var taa = new TransformAccessArray(_TransformList.ToArray());
                distances = new NativeArray <float>(taa.length, Allocator.Temp, NativeArrayOptions.UninitializedMemory);
                var job = new RenderingJobs.CalculateDistancesJob(distances.Value, transform.position);
                _Handle = job.Schedule(taa);
                _TransformList.Clear();
            }

            RenderingSettings.cameraScale = RenderingUtility.GetParentScale(transform);
            ValidateFarClip();
            ValidateNearClip();

            RenderingSettings.farClipDistance  = m_Camera.farClipPlane;
            RenderingSettings.nearClipDistance = m_Camera.nearClipPlane;
            RenderingSettings.focusDistance    = actualStereoConvergence;
#pragma warning disable 0618
            RenderingSettings.surfaceScale = m_SurfaceScale;
#pragma warning disable 0618
#if ML_RENDERING_VALIDATION
            CheckClearColor();
#endif
            switch (stabilizationMode)
            {
            case StabilizationMode.Custom:
                RenderingSettings.stabilizationDistance = ClampToClippingPlanes(stabilizationDistance);
                break;

            case StabilizationMode.FarClip:
                RenderingSettings.stabilizationDistance = m_Camera.farClipPlane;
                break;

            case StabilizationMode.FurthestObject:
                _Handle.Complete();
                if (distances.HasValue)
                {
                    if (distances.Value.Length > 0)
                    {
                        RenderingSettings.stabilizationDistance = distances.Max();
                    }
                    distances.Value.Dispose();
                    distances = null;
                }
                break;
            }
        }
        void LateUpdate()
        {
            NativeArray <float>?distances = null;

            if (stabilizationMode == StabilizationMode.FurthestObject)
            {
                var taa = new TransformAccessArray(_TransformList.ToArray());
                distances = new NativeArray <float>(taa.length, Allocator.Temp, NativeArrayOptions.UninitializedMemory);
                var job = new RenderingJobs.CalculateDistancesJob(distances.Value, transform.position);
                _Handle = job.Schedule(taa);
                _TransformList.Clear();
            }

            var scale = GetCameraScale();

            RenderingSettings.cameraScale = scale;
            // only perform clipping plane validation if the user has added the requisite components.
            ValidateFarClip(scale);
            ValidateNearClip(scale);

            RenderingSettings.farClipDistance  = GetFarClippingPlane(scale);
            RenderingSettings.nearClipDistance = GetNearClippingPlane(scale);
            RenderingSettings.focusDistance    = actualStereoConvergence / scale;
#if ML_RENDERING_VALIDATION
            CheckClearColor();
#endif
            switch (stabilizationMode)
            {
            case StabilizationMode.Custom:
                RenderingSettings.stabilizationDistance = ClampToClippingPlanes(stabilizationDistance);
                break;

            case StabilizationMode.FarClip:
                RenderingSettings.stabilizationDistance = GetFarClippingPlane(scale);
                break;

            case StabilizationMode.FurthestObject:
                _Handle.Complete();
                RenderingSettings.stabilizationDistance = distances.Max();
                distances.Value.Dispose();
                distances = null;
                break;
            }
        }