nDisplay Starting But Engine Exits

Hello, I have a project that I am working on and we are attempting to setup Unreal run across two PCs, each having two monitors.

We found nDisplay utilizing Switchboard/SwitchboardListener, which seems like the correct technology to support this idea.

As a test, I am attempting to start up nDisplay as a single node with two monitors. I have enabled the nDisplay and Switchboard plugins within the project. I have created a new nDisplay Config asset and dragged the asset into the level, creating the nDisplayRootActor. I edited the project under Project Settings > Plugins > nDisplay to enable the plugin for the project.

In the nDisplayConfig asset, I have added two nDisplayScreen components to the BP, both set up to be 1920x1080, side by side (for a total of 3840x1080). I have set the primary node (and only node) to the IP address of the PC to start this on. After saving and compiling, then I exported the nDisplayConfig.

Afterwards, I launch Switchboard and SwitchboardListener, ensuring I perform “Run as administrator”. This caused me headaches for days as I was receiving an error in SwitchboardListener saying “unable to start flipmode ././presentmon.exe” and found out that it was because everything needs elevated rights to start correctly.

Regardless, I have that part working, but now I am running into an issue where I can successfully get Switchboard connected to SwitchboardListener and launch Unreal, but the screen comes up black, sits there for a bit, then closes.

Within my Node.log file, I see a line that says "LogCore: Engine exit requested (reason: EngineExit() was called). There isn’t any obvious errors before this line that says there was some type of error in the startup. Below this shutdown, I do see an error:

LogWIndows: Error: appError called: Assertion failed: SceneViewExtension.IsValid(). But I am unsure if this is just because the shutdown failed due to an abrupt closing of the engine or if this an actual error due to launching. Also, in both Switchboard and the Listener, I see an error "Error while trying to write to “C:..\nDisplayConfig.uasset” which I assume is just attributed to me having the editor open while attempting to run this.

Regardless, I am at a loss on what to do. I have spent a couple of days trying messing around with all kinds of settings within Switchboard, the uproject, ect and nothing seems to be getting me any closer to determining what my issue is.

I am attempting to launch this via Switchboard, just from the uproject file itself. I am unsure if this is considered “launching from the editor” as I noticed that if I utilize the editor buttons for switchboard/listener, the admin rights issues come back, thus I have no clue how to make it launch from the editor as a test.

Any help would be greatly appreciated!

Attaching the Node.log file.

Node_0.log (211.1 KB)

Since this post, I have found the nDisplayLaunch plugin, which will launch everything from the editor.

When I have this plugin and click Launch with config and node, it does the same as above. It starts up in a black screen and closes shortly there after.

The log file looks exactly the same. This makes me think I have something wrong with the nDisplay config but, I can not see what I have wrong.

Okay, so I created a blank nDisplay project, that contains the defaults here and I did get a successful launch and rendering in the newly launched window.

At this point, I am going to review all the various settings within this default simple project and see what I could be missing in the nDisplay configuration of the simple project and in my project to see if I can resolve this issue.

I am still at a loss. I copied the NDC_Basic nDisplay Config uasset from the nDisplay default project into my project, loaded up the editor, deleted my old nDisplay actor in the level and placed the new NDC_Basic actor.

I still have the same problem. It loads up, black screen, then closes. The nDisplay base project seems to work fine. I even modified the project to include some specifics for my setup and it seemed to work fine. I am almost tempted to copy all my source code, blueprints, ect over to the nDisplay base project to see if it works.

Is there something different in C++ code in the base nDisplay config that is initializing some type of information that I am not seeing that is outside the editor?

I hate to keep posting on this, but I am just shooting into the dark.

I am Beyond Comparing between the nDIsplay project that works and our project that I have included nDisplay and I can’t see any differences of missing settings.

I looked closely in the three Config .ini files, and while there is a lot of differences, the differences themselves don’t seem relevant. I also compared the uproject between them, and I had originally thought maybe OpenXR is needed for nDisplay, as the nDisplay project requests it. But, looking deeper, OpenXR is strictly for adding in VR, and nDisplay does not utilize any VR libraries directly.

This leaves me with the only other option, our project is a C++ project while the nDisplay one is a blueprint project, by default.

I am going to attempt to convert the nDisplay project to C++ and see if this breaks nDisplay.

I have moved this question into Virtual Production from Plugins in the hopes I will get more exposure/answers on this topic.

Sorry to bump, but does anyone have any insight or guidance on this one?

Well, I determined what my problem was.

It had nothing to do with nDisplay. Apparently, I am parsing command line arguments based on the idea that another program will send command line, but when running as nDisplay, Switchboard sends the command line arguments, and my parser was crashing with those.

The log files were not helpful in determining this as there was nothing within the log that stated that a crash was happening and where.

So, FYI. If anyone in the future is looking to see if this resolves a problem, it does not. My nDisplay setup worked correctly and a different issue was the cause of it.

Something learned, if the logs are not really telling you why something is happening, just check other files, such as your crash dump files:

proj/Saved/Crashes/UECC-platform-hexdecimal/

This is what finally told me that my project was crashing and where it was crashing at. It also tells me that even if you run nDisplay from the Editor, it will still always run outside the Editor, thus you can’t easily attach the debugger to it because if it crashes upon startup, that is too fast to attempt to attach.