Unreal Engine 5.4 Released

hey

I’m having a problem with the camera calibration plugin in Unreal 5.3.
The resources stop responding to commands and ruin the project.

Do you believe it is stable in Unreal 5.4?

thanks

these numbers usually doesn’t say much as a lot of the rendering has moved over to compute to be done async. So depending on what is overlapping with what you can get different numbers. Have you tried using Unreal Insights or a gpu profiler like renderdoc or nvidia nsight? That can usually tell more.
As for the PSO compiling, you can see this in the log. At least for me it adds a line when encountering a PSO to be compiled.

Hi Matthew,

Here is a screengrab of the shader setup in UE5.3 that works fine, but does not work in UE5.4.

It’s not the most efficient shader I know, but it’s not meant to be used real time.

UE5.3:

I can kind of understand why the component mask before the noise node could break things, but it doesn’t break in 5.3, but that is not a huge deal to work around. And you can see in the below screenshots that I fixed the noise node issue by removing the component mask coming out of the world postilion node.

The biggest and by far the most broken thing I don’t understand is why having this shader set to forward shading breaks in 5.4?

Removing all of the above nodes BUT making the shader forward shading still breaks the shader making it 100% white. If I set it back to deferred its fine but I need the forward for the subsurface scatter etc

Below is the same shader in 5.4 (with the component masked removed):

Everything unplugged, the shader is still broken, see below:

Below is a brand new shader made in 5.4 with the nodes copied over and it works fine:

Also would switching to substrate shaders be better?

Thanks again

In 5.4, all the VDB Heterogeneuos volumes seem to have an offset applied.

This is true for various packs from the Marketplace

Thanks for any feedback if anyone has any insight/ideas

I forgot to mention it also produces lag which is likely the same issue outlined at

Above reports suggest that a default 5.3.2 setting migrated to 5.4 is the culprit.

Heterogeneous no longer have the pivot point placed in the middle of the bounding box. You can force it by checking a box “pivot point at center” (or something like that) in the details panel of your heterogeneous actor :slight_smile:

Same issue here, an old material (made in 5.3) turned all black. I had to create a new one, and copypaste everything from the previous material to the new one, fixed it

1 Like

Hi Everyone,

Whilst testing out our upgrade from 5.3.2 → 5.4.0, I found that I can no longer produce a package of the game. The packaging process hits an ensure in the following place:

LogOutputDevice: Error: Ensure condition failed: CurrentNum == InitialNum  [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 253]
LogOutputDevice: Error: Array has changed during ranged-for iteration!
LogOutputDevice: Error: Stack:
LogOutputDevice: Error: [Callstack] 0x00007ffbd7843f79 UnrealEditor-Engine.dll!ULevel::DetachAttachAllActorsPackages() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Level.cpp:4249]
LogOutputDevice: Error: [Callstack] 0x00007ffbd8beeab5 UnrealEditor-Engine.dll!UWorld::PreSaveRoot() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\World.cpp:1524]
LogOutputDevice: Error: [Callstack] 0x00007ffbdb2ee27f UnrealEditor-CoreUObject.dll!UE::SavePackageUtilities::CallPreSaveRoot() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\SavePackage\SavePackageUtilities.cpp:693]
LogOutputDevice: Error: [Callstack] 0x00007ffbdb30df41 UnrealEditor-CoreUObject.dll!UPackage::Save2() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\SavePackage2.cpp:3097]
LogOutputDevice: Error: [Callstack] 0x00007ffbdb30e5d9 UnrealEditor-CoreUObject.dll!UPackage::Save() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\SavePackage.cpp:20]
LogOutputDevice: Error: [Callstack] 0x00007ffbd2b33ea7 UnrealEditor-UnrealEd.dll!UEditorEngine::Save() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:4837]
LogOutputDevice: Error: [Callstack] 0x00007ffbd28ba027 UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::SaveCookedPackage() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\CookOnTheFlyServer.cpp:6172]
LogOutputDevice: Error: [Callstack] 0x00007ffbd289e128 UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::PumpSaves() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\CookOnTheFlyServer.cpp:4738]
LogOutputDevice: Error: [Callstack] 0x00007ffbd28c71e7 UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::TickMainCookLoop() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\CookOnTheFlyServer.cpp:1464]
LogOutputDevice: Error: [Callstack] 0x00007ffbd28c6624 UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::TickCookByTheBook() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\CookOnTheFlyServer.cpp:1346]
LogOutputDevice: Error: [Callstack] 0x00007ffbd25a1de0 UnrealEditor-UnrealEd.dll!UCookCommandlet::RunCookByTheBookCook() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\Commandlets\CookCommandlet.cpp:555]
LogOutputDevice: Error: [Callstack] 0x00007ffbd25630cd UnrealEditor-UnrealEd.dll!UCookCommandlet::CookByTheBook() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\Commandlets\CookCommandlet.cpp:508]
LogOutputDevice: Error: [Callstack] 0x00007ffbd257e910 UnrealEditor-UnrealEd.dll!UCookCommandlet::Main() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\Commandlets\CookCommandlet.cpp:249]
LogOutputDevice: Error: [Callstack] 0x00007ff7e6db95fd UnrealEditor-Cmd.exe!FEngineLoop::PreInitPostStartupScreen() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4194]
LogOutputDevice: Error: [Callstack] 0x00007ff7e6daf606 UnrealEditor-Cmd.exe!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:136]
LogOutputDevice: Error: [Callstack] 0x00007ff7e6daf8ea UnrealEditor-Cmd.exe!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:118]
LogOutputDevice: Error: [Callstack] 0x00007ff7e6db2dc4 UnrealEditor-Cmd.exe!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:258]
LogOutputDevice: Error: [Callstack] 0x00007ff7e6dc88c4 UnrealEditor-Cmd.exe!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:298]

We are using the level streaming system extensively, and have all our levels set to use “External Actors”.

Attaching a debugger to the packaging process shows that its hitting this ensure whilst renaming "Child Actor"s from their “Parent Actor” external package, to the Level as the package.

So, inside the “rename” call at line 4267 of Level.cpp, it is changing the level->Actors array (which this code is currently iterating over):

	for (AActor* Actor : Actors)
		{
			if (Actor)
			{
				if (UPackage* ActorExternalPackage = Actor->GetExternalPackage())
				{
					Actor->DetachExternalPackage();

					// Process objects found in the source actor package
					TArray<UObject*> Objects;
					const bool bIncludeNestedSubobjects = false;

					GetObjectsWithPackage(ActorExternalPackage, Objects, bIncludeNestedSubobjects, RF_NoFlags, EInternalObjectFlags::Garbage);
					for (UObject* Object : Objects)
					{
						if (Object != Actor && Object->GetFName() != NAME_PackageMetaData)
						{
							// Move objects in the destination level package
							Object->Rename(nullptr, LevelPackage, REN_ForceNoResetLoaders);

							// Keep track of which package this object really belongs to
							ObjectsToExternalPackages.Emplace(Object, ActorExternalPackage);
						}
					}
				}
			}
		}

All this code is brand new to 5.4 compared to 5.3. I got around this bug by making any level containing child actors have internal actors again. I think this would be fairly reproducible, and if so, likely means any project using Child Actors cannot also use External Actor packages.

3 Likes

Further update, I created a test blueprint-only project to see what happens and the behaviour of the issue changed.

I made a test level with one sub-level, with both set to external actors. I made a blueprint actor that contains one other blueprint actor as a child (I put a cube in it so I can see it) and put it into the sub-level and set it to always loaded.

Packaging the test project succeeds, however the child actor was missing in the build. I added another instance, to the main persistent level, but in the packaged game it’s missing also.

Switching the sub-level back to “Internal Actors” makes its instance of the Child Actor appear appears in the build, similarly for the persistent level.

So I’ve created a reproduction of the issue independent of our main big project.

Curiously, toggling the levels back-and-forth between internal / external actors doesn’t trigger any ensures, so that process is working correctly.

1 Like

I have long shader compilation (tested on SM5 and SM6 on DX12). This (new) material need 10 seconds!!! to compile on i7 10700K, M2 NVME SSD. It works momentary in 4.27 - 5.3. But project after migration from 5.3 compiled more faster on 5.4 then it was before.

1 Like

We’ve been able to repro this and the team is working on a fix - thanks for reporting!

Ugg, fullscreen is broken and keeps flickering here:

avant j’avais la 5.2, je passe a la 5.4 et la quelle surprise l’unreal engine est en Français
un grand merci aux développeurs c’est super ce que vous faites.

Constant PipelineStateCache.cpp crashes every time I try to open any of my 5.3 maps and also insta-crash when trying to export retargeted animations from the retargetter :rage:

The preview of version 5.4 was excellent, and after much testing, I switched my project over to this version and all was well. When the official version 5.4 came out, I didn’t worry and upgraded. This version is the most buggy I’ve seen in the 10 years I’ve been working on the engine. Between blueprints that get corrupted on restart, widgets and meshes that disappear when you get close to them … I’m looking for the 5.4 preview if anyone knows where to download it, I’m not even sure I can go back :/.

I haven’t managed to load my 5.3.2 project into 5.4 - instantaneous crash) Will be waiting for more stable version. 5.4 deleted in the meanwhile, useless).

Creating Default VR Project. Going to settings and turning on virtual texture. Restart required. At the end of shader compiling, Crash on ShaderCompiler.cpp line 6845

UPDATE!

The 5.4.1 Hotfix is now live and includes a handful of key fixes for Unreal Engine 5.4.

Fixed in 5.4.1

Issue Summary
UE-213361 The first frame is not automatically played when a recording is loaded
UE-213190 Crashing on trying to render sequence
UE-213137 UBT does not error when compiling targets with a banned MSVC version , need to expand Ban Range
UE-213059 Fatal error during cooking - [X] was an archetype of FooComponent [Y] but returned a null index mapping object
UE-212795 Crash when creating a new media plate
UE-212785 Actor Coloration state is persistent between editor runs.
UE-212439 Disable TObjectPtr placeholder type flag checks in editor runtime
UE-212069 Modular Rig - Severe slowness
UE-212055 Crash closing persona with cloth paint active
UE-211808 Packaging with Editor Default Configuration always defaults to initial value when editor started
UE-211555 Light Intensity keyframes get removed when converting from Spawnable to Possessable in Sequencer
UE-211170 GitHub 11703 : Fixed the reference of Entitlement
UE-211144 Recording time counter, counts faster each time a new recording is started
UE-210257 Build fails when Verifying that the entire VisualStudio solution can be built in an Installed Build workspace. error CS0103: The name ‘Catch2’ does not exist in the current context

REMEMBER: Please report any new bugs you find by following the How To Report a Bug Guide

5 Likes

5.4.1 Does not address the foliage (Instance) material world position offset bug :frowning:
The bug report is out now. I hope someone checks it and it gets approved.

1 Like

Extremely surprising that the string table fix I’ve seen numerous complaints about wasn’t merged into hotfix 1.

2 Likes