Unreal Engine 5.5 Preview

are you on Wayland or X? I’m using X and i only get random crashes when i turn on HW Raytracing. (seems to be somehow related to directional lights, but i couldn’t make a repro to report that bug)

xorg

Looks like we have another fire started :frowning:
New Fab.com purchase not showing up in Unreal Vault - General / Issues & Bug Reporting (Fab) - Epic Developer Community Forums

I’m also having this issue.

I think it’s solved already by now.

It is very likely that you aren’t importing the type of animation that would make the issue most obvious. For example, I use limited animation style, which requires stepped interpolation to be turned on, and curves to be changed to constant. You can see this in my video, and the same problem that is happening with 5.4 also happens with UE5.5.

If you have bones that need to remain still or held across few or many keys, this is when the problem is MOST noticeable. Not a lot of people do this form of animation often, which is why they don’t notice this problem. Animations running at high FPS, you will barely notice this because everything is already moving so smooth, but EVEN THEN the problem is still there. There were others on Reddit explaining how they did animations at 30 or 60fps and importing them into 5.4 was breaking them.

I only have my own video here as proof of what is happening, but perhaps it would be best if I made another one soon to show exactly what is actually happening with characters, specifically.

In 5.3 baked object animations (even alembic) break and skip frames, and in 5.4 more complex rigging (characters) breaks.

It should be that when something gets baked, that it does not move all around or smooth out between frames, but the latest versions of UE just disregard this.

I’ll explain to you the same thing that I told someone else here, it is very likely that you aren’t importing the type of animation that would reproduce the issue. Because I use limited animation style, this requires stepped interpolation to be turned on, and also curve key frames to be set to constant. You can see this in my video, and the problem has not been resolved so far with UE5.5.

I’m not sure if you have ever utilized it before, but the limited style of animation is done in a way that more resembles 2D frame by frame animation. And so, you have bones that need to remain still or be held across a few or many keys, and this is when the problem is MOST noticeable in UE. Not a lot of people do this form of animation often, which is why this problem is very easy to overlook. Animations at very high fps run a lot smoother, but regardless, there have been others reporting the same issue on Reddit even when using animations from 30 to 60fps.

I only have my own video here as proof of what is happening, but it may be a good idea to demonstrate the issue using an actual character, and hopefully that gets Epic’s attention.

It’s like 5.4 is ignoring baked animation, and I’m disappointed to see it happening in again in ver 5.5

There are several issues in 5.5 regarding animations. Not only do animations need to be rotated 90 degrees upon import, they also are incompatible with skeletal mesh clothing. Any attempt to change the way the MH is posed causes the SM to move in a wild manner. This is rendering services like Metatailor unusable in 5.5 for testing. Is anyone else having these issues?

Anyone else try building CitySample in 5.5? The first error you get is that the TypedElementsDataStorage plugin no longer exists. It looks like that plugin was changed to “EditorDataStorage” and a bunch of other things renamed in it. After commenting it out of the uproject file the build continues, but then you get a ton of errors like this:

1>C:\Dev\Unreal Projects\CitySample 5.5\Plugins\RuleProcessor\Source\PointCloud\Public\PointCloudSliceAndDiceCustomOverrides.h(61): error C3646: 'StructInstance': unknown override specifier
1>C:\Dev\Unreal Projects\CitySample 5.5\Plugins\RuleProcessor\Source\PointCloud\Public\PointCloudSliceAndDiceCustomOverrides.h(61): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Dev\Unreal Projects\CitySample 5.5\Plugins\RuleProcessor\Source\PointCloud\Private\PointCloudSliceAndDiceCustomOverrides.cpp(9): error C2065: 'StructInstance': undeclared identifier
1>C:\Dev\Unreal Projects\CitySample 5.5\Plugins\RuleProcessor\Source\PointCloud\Private\PointCloudSliceAndDiceCustomOverrides.cpp(21): error C2065: 'StructInstance': undeclared identifier
1>C:\Dev\Unreal Projects\CitySample 5.5\Plugins\RuleProcessor\Source\PointCloud\Private\PointCloudSliceAndDiceCustomOverrides.cpp(21): error C2039: 'StructInstance': is not a member of 'FCustomOverrides'
1>C:\Dev\Unreal Projects\CitySample 5.5\Plugins\RuleProcessor\Source\PointCloud\Public\PointCloudSliceAndDiceCustomOverrides.h(13): note: see declaration of 'FCustomOverrides'
1 Like

(post deleted by author)

I have a 5.1 project with it and migrated it to 5.5.0-Preview a few days ago after Fab went online, and I had no errors opening it.

Why does Vulkan SM6 give me a 50-100% increase in frame rate vs DX12 SM6 when using a nanite landscape? I’m not using ray tracing(supported is checked, but all the other options are turned off. I’ve tested it with and without, no difference). I am using lumen GI and reflections, along with VSM shadows. Virtual textures are also enabled. Other than that, it’s a pretty default setup on the rendering end of things.

I have a landscape scene with a 4km map. It has a single landscape layer, but I use some splatmaps scaled to fit in the material(making interactive aerial concept art where I don’t need ultra high quality at foot level). There are maybe a thousand scattered boulders and large rocks and a single layer water plane.

EDIT: I also tested with the game packaged(shipping) and I have buttons to switch between high/epic scalability presets:
Vulkan: 92/63 fps
DX12: 50/42 fps

VRAM and RAM usages are fine, not OOMing on either. 4.9gb on epic with Vulkan and 4.3gb with DX12 out of the 8gb this card has.

I’ve checked all the various debug views, like making sure the VK mode was actually using nanite and it was. Visually, they look pretty much identical.

RTX 2080 with the latest 566.03 drivers. I’ve also cleared out the shader caches for both Nvidia and the Unreal as well. Windows 11 23H2 fully updated (still waiting on it to push the 24H2 update)

Is Vulkan shortcutting something vs DX12? Is this some limitation to this old GPU like maybe it doesn’t like some type of calculation precision that DX12 is using, but Vulkan isn’t? Is this some kind of bug in the code? It’s had me scratching my head for a couple days now.

1 Like

DX12: 50/42 fps

Try typing

r.Nanite 0 in DX mode and see if you get a performance boost.

Staff says its currently in progress

Does it run though? I had plenty of compile errors i had to fix related to the Mass Entity system, and even after that the traffic didn’t work

Sure…

Except we don’t know when and where did they say that, who is “staff” and what “currently” means

But other than that very useful information, thanks

This is a huge bug if confirmed. Do you have an isolated test project to check it? It will be super useful for Engine devs.

Tried it and the frame rate tanked to like 20fps, from 60, while in the editor.

I’ll try making a barebones version or a list of steps to reproduce. I’m not a fan of trying to find a webhost to upload gigs on a 10mbps upload connection.

What is smaller in the ms budget between dx and vulkan?

Lighting, shadows, basepass?

It’s the nanitebasepass. I stripped the level down all the way, put on a simple color material, removed the PCG scattered nanite rocks so that it’s just a barren landscape, removed the water as well. I deleted all my lighting/clouds/etc, opened the environmental light mixer, click click click for directional light, sky atmosphere and skylight. Turned the sun intensity down and angled it.

Here are the results for the stat gpu with scalability set to epic:

VK: 0.26
DX12: 6.87
26x longer on the nanite base pass with DX12 for some reason.

Another thing I noticed while experimenting was that my original material for my landscape seemed to bog DX12 down a lot more than it did Vulkan. The material wasn’t terribly complex, but it was three layers of albedo+normal+ORD(not using displacement), along with some noise textures(built in ones) for variation and two channels for the landscape coordinate scaled splatmaps(only two channels).

Base pass shader: 463 instructions
Stats: Resources Used: 15
Resource Limit: 64
Samplers Used: 12
Sampler Limit: 32

I should also mention that for testing, I manually ported all of this to a fresh new project created with 5.5 because I was worried that something was bugging out or maybe some cvar was set differently in the console that I forgot about, when upgrading a project from 5.4 to 5.5, and that 5.5 was using some different settings or something.

EDIT:
I rebuilt the game(shipping) again, but this time with two versions of the map and a key to switch between them. Map A has the landscape set to use nanite, map B is set to use the regular landscape. After building the game, I’m now finding that DX12 is performing 5-10% better than Vulkan. Maybe there was some broken shader or something that sponaneously fixed itself? I have absolutely no clue how or why it’s working now, after having spent a ton of time reliably reproducing the performance degredation with DX12.

EDIT2:
Now I’m having another issue on a second launch with DX12:

LowLevelFatalError [File:D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Util.cpp] [Line: 998] 
RayTracingDevice->CreateStateObject(&Desc, IID_PPV_ARGS(Result.GetInitReference())) failed 
 at D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12RayTracing.cpp:663 
 with error E_INVALIDARG

I have to go into my appdata local directory for the game’s saved information and delete the *.upipelinecache in order to fix it. Again, if I delete that file, launch the game with DX12, it will work fine. I then close the game, and try to launch it a second time, it will crash with an error like this every time until I delete that file again.

I should also note that this is directly tied to running r.Lumen.HardwareRayTracing 1 during runtime(I have a keybind to enable/disable it). It’s disabled in the project settings, but can be turned on/off at runtime. If I don’t enable this, I won’t get the crash when reopening the game again. If I enable it or enable->disable it during runtime, it will crash with this D3D12RayTracing.cpp related error every time when trying to reopen the game. My guess is that since the game has it disabled by default, when it launches, it checks that upipelinecache for what it needs and in that cache and the data is still tied to having lumenHWRT enabled, instead of disabled; causing the crash, since it’s a mismatch. I just rebuilt again, this time with lumen HWRT enabled in the project settings (on begin play, I disable it with the above command). Still causes the crash on subsequent relaunches on DX12 until that cache file is deleted.

2 Likes

What did you do about TypedElementsDataStorage? Did disabling the plugin work, or did you port the project to EditorDataStorage? I didn’t spend the time to see if the internals are different, or if it just needs a redirect to the new plugin.