Description

A licensee wanted to report some missing PSO Precaching they found, which they have fixed locally:

1. UCableComponent doesn't implement CollectPSOPrecacheData or call CheckPSOPrecachingAndBoostPriority/PrecachePSOs
2. UNiagaraRibbonRendererProperties::IsBackfaceCullingDisabled() reports the wrong value if bUseMaterialBackfaceCulling=true instead of Material->IsTwoSided(), which results in caching the wrong PSO
3. FBasePassMeshProcessor::ShouldDraw should ignore the AutoBeforeDOFTranslucencyBoundary > 0 if Scene == nullptr (IE, it's the PSO precaching instance) so that those variants are cached also.
4. MD_LightFunction materials do not reliably precache and cause hitches. UMaterialInstance::PostLoad() does not check for MD_LightFunction like UMaterial::PostLoad does, which misses instances with static permutations, and even with that caching, CreateSceneProxy() on the LightComponents doesn't wait for precaching before creating the FLightSceneProxy, which causes hitches despite EPSOPrecacheProxyCreationStrategy::DelayUntilPSOPrecached

Steps to Reproduce

Steps to Reproduce

Run with r.PSOPrecache.Validation=2

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-314647 in the post.

0
Login to Vote

Unresolved
ComponentUE - Rendering Architecture - RHI
Affects Versions5.6
CreatedAug 20, 2025
UpdatedAug 20, 2025
View Jira Issue