wer are currently facing a problem with ndisplay when using Vulkan with UE 5.3. On launch all the nodes create the window successfully, connect to the master nodes and then crash with the following error:
This only occurs if the device is set to be side-by-side or top-bottom stereo-rendering. Mono device works fine.
We usually run on Linux, so there is no alternative to Vulkan. We tried to reproduce the problem on a Windows machine and it works fine with DirectX 12, but switching to Vulkan the crash also occurs on Windows. Same symptoms: mono works, side-by-side or top-bottom crashes with the same error.
We also tried to use an ndisplay config with only a single viewport on a single machine and the crash happens there as well. SM5 or SM6 makes no difference as well. Also tried packaging on Windows, cross compiling on Windows for Linux and packaging on Linux directly, again, no difference.
It was working fine with UE 5.1, we skipped UE 5.2, so not sure if the problem occurs there as well.
Has anyone encountered this problem before or can suggest a solution?
We did some further investigating and wanted to give an update:
Unreal 5.2 still works without any crashes, so the problem with the Vulkan crash seems to have started with UE5.3. We could not identify the reason for the crash so far.
Unreal 5.2 is not without issues though. It works when packaging for Windows, both with DX12 and Vulkan. However, when packaging for Linux the package runs but there is an issue with the skylight that only appears on Linux (with and without ndisplay). The skylight, or at least the shadows, are black, at least when lighting is not precomputed.
Unfortunately that makes UE5.2 not usable for us as well.
Any advice - either with the UE 5.3 Vulkan crash or the UE 5.2 skylight issue - would be very much appreciated!
After a bit more investigating, it seems to crash for me when I have 2 viewports on one node - at least it seems to run when I delete one of the,. I’m still not quite sure what part of it breaks.
For us this also happens with a fresh ndisplay project. We did further investigating and we found that our issue with 5.3 seems to be the dispatch of a Niagara computer shader.
Running with “-vulkandebug -rdgimmediate -rdgdebug -onethread” gives the following stack trace:
We tried disabling the Niagara plugin and then that package launched with stereo rendering. The problem is that some of the Virtual Production assets in the Engine Plugins use Niagara, so that is not a great solution and requires some tinkering.
Interesting. For us, it even fails with Mono when two viewports are on one node. Niagara was also active in our tests.
Could be that stereo or two VPs trigger a similar condition. Let’s hope your Bug Report will be looked at!
Hi. I just noticed this thread in the wake of the fact that we are hitting what appears to be the same failure after recently updating to 5.3. Although we still have one working branch of our project still on 5.1, updating to 5.3+ is ultimately necessary for another plugin dependency to work properly. The exact callstack looks a little different, but a lot of that has to do with our custom startup procedure and how we initialize nDisplay. Either way, the same Vulkan errors regarding incomplete descriptor state for a UNIFORM_TEXEL_BUFFER and a STORAGE_TEXEL_BUFFER are there, and it ultimately traces to the same Niagara init process, so I’m inclined to believe that it’s the same bug.
Just wanted to know if there was any update on the bug report. We don’t have any really involved use of Niagara just yet (it’s not a pressing concern at the moment), but we very well could in the near future, so disabling it isn’t really the best option. The last hotfix release seems to predate this thread, so I don’t expect it to have anything related. Do you have a link to the report?
I cannot remember exactly what the bug submission form said, but it was something along the lines of “we will look at it and decide what to do, you will only hear from us if we have further questions”. Never heard from it again and never saw it appear on the issue tracker.
Our hopes are on 5.4. There seem to be a lot of commits to ndisplay currently on git, but we will have to wait and see if everything will return to a working state.
Having done a few tests with the current ue5-main branch of Unreal, it seems like the issue has gone away. I’m not fully sure yet as I have only tested this on a local Linux instance and not on our CAVE yet, but it looks very promising.
I’m not sure if those changes are in the 5.4 preview yet, as I’m waiting for the docker images to test the prebuilds.