Description

UnkownRef Mips is meant to fix/workaround the problem where some textures are used for rendering but they don't have any component references them (such as texture used by PP effects)

These UnkownRef seems to be caused by the following situation:

  • Meshes in the new level are rendered as AddToWorld() progress.
  • FRenderAssetInstanceAsyncView::GetRenderAssetScreenSize() can't provide screen size for textures used by the rendering because FRenderAssetStreamingManager::IncrementalUpdate() is still in progress.
    And `bUseUnkownRefHeuristic` become true in `FAsyncRenderAssetStreamingData::UpdatePerfectWantedMips_Async()`.
    StreamingRenderAsset.bUseUnkownRefHeuristic = MaxSize == 0 && MaxSize_VisibleOnly == 0 && !MaxNumForcedLODs && StreamingRenderAsset.LastRenderTime < TimeSinceRemoved - 5.f;
    

Licensees can disable the usage of the unknown mip heuristic manually in code by commenting out a the following code in FAsyncRenderAssetStreamingData::UpdatePerfectWantedMips_Async().

if (StreamingRenderAsset.bUseUnkownRefHeuristic && StreamingRenderAsset.LastRenderTime < 90.0f && (Settings.DropMips != 3 || AssetType == EStreamableRenderAssetType::Texture))
			{
				if (bOutputToLog) UE_LOG(LogContentStreaming, Log,  TEXT("  UnkownRef"));
				MaxSize = FMath::Max(MaxSize, MaxAllowedSize); // affected by HiddenPrimitiveScale
				if (StreamingRenderAsset.LastRenderTime < 5.0f)
				{
					MaxSize_VisibleOnly = FMath::Max<int32>(MaxSize_VisibleOnly, MaxAllowedSize);
				}
			}

Disabling this cause all decals to be blurry. The workaround for that is to add UStaticMeshComponent as a sub-object of ADecalActor to inform the streamer of the existence of the decals.

Steps to Reproduce

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Graphics Features
Target Fix5.6
CreatedMar 27, 2023
UpdatedOct 18, 2024
View Jira Issue