Hi,
We noticed an issue when upgrading to 5.6 that some of our content that uses the SkyLightLeaking feature in SkyLights broke. We traced this back to Epic CL 37535452. The issue is that now that GetSkylightLeakingForReflections uses GetSkySHDiffuse they need to be populated and in our case they are not because UpdateSkyIrradianceGpuBuffer does not check IsStaticLightingAllowed() when testing the SkyLight->bHasStaticLighting flag. However, the mobile path in FViewInfo::SetupUniformBufferParameters does check it:
const bool bSetupSkyIrradiance = Scene
&& Scene->SkyLight
// Skylights with static lighting already had their diffuse contribution baked into lightmaps
&& (!Scene->SkyLight->bHasStaticLighting || !IsStaticLightingAllowed())
&& Family->EngineShowFlags.SkyLighting;
Changing the logic in UpdateSkyIrradianceGpuBuffer to be the same fixes the glaring issue, but looking at this code more, it seems like there are many spots that test FSkyLightSceneProxy::bHasStaticLighting and FkyLightSceneProxy::bWantsStaticShadowing without considering IsStaticLightingAllowed(). Is this intentional or should these paths be changed too? Or should those flags be forced to false earlier if IsStaticLightingAllowed()=false?
Thanks,
Lucas