CreateDynamicMaterialInstance will pull from the base rather than overridden mesh on SkinnedMeshComponent when run from construction script

UE - Rendering Architecture - Feb 6, 2025

When UPrimitiveComponent::CreateDynamicMaterialInstance is called on a skinned mesh, and the input material is invalid, we call USkinnedMeshComponent::GetMaterial to get the base material on the exi ...

Static Meshes that are reimported with less materials can lead to map check errors on instances that had overriden materials that require manual cleanup

UE - Rendering Architecture - Feb 5, 2025

StaticMeshActors placed in the world can override the default materials of a static mesh. If the static mesh is then reimported with less materials, the actors maintain references to unused material ...

SkinnedMeshComponent::BoneTransformUpdateMethodQueue is never reset in server builds

UE - Rendering Architecture - Jan 27, 2025

We reset BoneTransformUpdateMethodQueue in USkinnedMeshComponent::CreateRenderState_Concurrent and USkinnedMeshComponent::SendRenderDynamicData_Concurrent but these code paths are never called in se ...

VisualizeTexture with the BMP flag causes a crash when any mip over mip0 is requested

UE - Rendering Architecture - Dec 18, 2024

When a mip level higher than 0 is requested in VisualizeTexture, the engine will crash. The root cause appears to be VisualizeTexture.cpp:924, on which an incorrect mip level is used to read a non-m ...

Runtime Virtual Texture rendering can allocate more FRDGBuffers than expected

UE - Rendering Architecture - Dec 10, 2024

When rendering runtime virtual texture pages without throttling (when r.VT.MaxUploadsPerFrame is high or during Movie RenderQueue captures) the number of FRDGBuffers allocated by the Render Graph Bu ...

WasRecentlyRendered() and GetLastRenderTimeOnScreen() still triggers when a skeletal mesh re-enters the view frustum despite being occluded.

UE - Rendering Architecture - Dec 4, 2024

AActor::WasRecentlyRendered() and UPrimitiveComponent::GetLastRenderTimeOnScreen() both still trigger when a skeletal mesh (occluded behind a wall) re-enters the player's view frustum after being ou ...

Crash when enabling r.PSOPrecache.Resources due to check() in FSkeletalMeshObjectGPUSkin::GetUsedVertexFactoryData

UE - Rendering Architecture - Dec 3, 2024

The game crashes because of a nullptr SkinnedMeshComponent in  FSkeletalMeshObjectGPUSkin::GetUsedVertexFactoryData when r.PSOPrecache.Resources is enabled and a skeletal mesh is loaded due to a new ...

LoadMapMisc LLM category contains Static Mesh allocations

UE - Rendering Architecture - Nov 12, 2024

UInstancedStaticMeshComponent::CreateSceneProxy() is missing a LLM_SCOPE(ELLMTag::InstancedMesh);  and during level loading allocations for it appear in LoadMapMisc instead of InstancedMesh. Addi ...

Lighting behavior is unreliable for translucent lit materials, results are inconsistent depending on the editor camera's FOV and the editor viewport's width/height/aspect

UE - Rendering Architecture - Oct 27, 2024

When working on the level editor viewport or testing on PIE, the visual appearance of additive/translucent lit materials changes significantly (and abruptly) when varying the camera FOV or the viewp ...

Crash in FPipelineFileCacheManager::RegisterPSOStats

UE - Rendering Architecture - Oct 25, 2024

The game can crash when one thread clears RunTimeToPSOUsage while another thread is expecting it to contain a PSO it is registering stats for. Thread A:  calls CacheGraphicsPSO() Thread B:  calls C ...