Custom Sky - Visual Environment: Ambient Mode Dynamic refresh rate?

I build a custom SkyRenderer (based on HDRISky) to blend between multiple HDRI´s.
Works very nice.

With Ambient Mode enabled the result looks much nicer, but:
When i set the the Ambient Mode to Dynamic there is a some frames lag on the Ambient update.
The Sky´s Update Mode and Update Period doesn’t have any affect.

Is there a way to refresh the Ambient Mode manually on each frame?

Ps.: Same on ProceduralSky Package. When rotating the sun the Dynamic Ambient is some frames behind.

Running 2019.3.13f1 with HDRP 7.3.1

Unfortunately there is not much that can be done at this point.
What you observe is the result of the computation from the sky being readback on the CPU and fed to builtin unity systems so that it can pass the ambient probe to each objects during rendering.
The realtime mode won’t affect that because it only affects when HDRP decides to recompute the lighting from the sky, but whenever this happens then you will have the wait for CPU readback to get an updated ambient. Doing that synchronously would be terrible for performance so it’s not an option.

Good to know.
Thanks for your help.

After a deeper dive´in thru the sky rendering.
This solution finally runs smoothly and also with the cool dynamic ambient at 180 frames with this simple scene on my 7 years old Mac Pro :smile:

Just fading the intensity of each Cubemap here:

using System.Collections.Generic;
using IIC.HDRP;
using UnityEngine;
using UnityEngine.Rendering;

public class SkyMixerFader : MonoBehaviour {

    public Volume skyFogVolume;

    SkyMixer skyMixer;

    List<FloatParameter> parameters;

    int index = 0;

    void Start() {
        if (skyFogVolume.profile.TryGet(out SkyMixer skyMixerComponent)) {
            skyMixer = skyMixerComponent;
        } else {
            Debug.LogErrorFormat("Can´t get SkyMixer from {0}", this);
            enabled = false;
        }

        parameters = new List<FloatParameter> {
            skyMixer.intensity1,
            skyMixer.intensity2,
            skyMixer.intensity3,
            skyMixer.intensity4,
            skyMixer.intensity5,
            skyMixer.intensity6,
            skyMixer.intensity7,
            skyMixer.intensity8,
            skyMixer.intensity9
        };
    }

    void Update() {
        if (Input.anyKeyDown) {
            for (var i = KeyCode.Alpha1; i < KeyCode.Alpha9; i++) {
                if (Input.GetKeyDown(i)) {
                    index = i - KeyCode.Alpha1;
                }
            }
        }

        for (var j = 0; j < parameters.Count; j++) {
            var value = 0f;
            if (j == index) {
                value = 1f;
            }

            parameters[j].value = Mathf.Lerp(parameters[j].value, value, Time.deltaTime);
        }
    }
}