Black screen when running standalone mode

Hi,
I’m using an MSI-GE72 laptop with a GTX970M. Proprietary drivers are compiled and working and UE4 works almost perfectly on it (Tried Ubuntu, but Arch is wayyy smoother) using primusrun. Very fluid, very fast.

When running a Standalone instance of my project to test remotely with another computer, although it works fine in PIE mode AND in selected viewport mode on the laptop, in “Standalone” preview mode, the new game title bar shows “GLSL430”, a red crosshair in the middle of the window and the tilde console (accessible, and I can type in it), and that’s it. Everything else is black.

I have seen posts with a similar issue mention the default map should be set in Project Settings.
Well, it is (although I doubt it has much value in my case, since I’m loading an external map on the server using open ).

Weird thing is, I have another older laptop and it works fine, EVEN with primusrun! The difference I can see is that when starting in standalone mode on that other system, I see GLSL150 instead of GLSL430. And, also on a desktop computer (with a GTX980), I see GLSL150 instead of GLSL430 in the title bar. I’ve also tried removing GLSL430 in the Linux tab in the project settings.

Now, when I ran UE4 the very first time, I had to change the Engine scalability settings to see anything in the viewport. Otherwise, everything was black in the editor. So, I’m thinking, is it possible the editor changed some parameters in viewport mode, but the standalone game mode ignores these changes? Can they be set manually (launch option, INI)?

Thanks!

Try passing -opengl3 to the engine on the computer where you are having the problem.

Thanks for your reply!
Unfortunately, same thing…

Here’s how I launch it:

LD_PRELOAD=/usr/lib/libGL.so.1 primusrun /UnrealEngine/Engine/Binaries/Linux/UE4Editor /myproject/myproject.uproject -opengl3

Any idea what the GLSL_430 stands for, and if it’s possible at all to force it to use GLSL_150 (like the other laptop and desktop)? Or alter parameters somewhere – in a config file?

Thanks!

GLSL_430 in the window means that you’re using OpenGL 4 rendering path. “-opengl3” should have switched it to OpenGL 3 (i.e. GLSL_150). Not sure why the commandline switch seems to be ignored, maybe primusrun does not pass it along? You can edit the code in OpenGLLinux.cpp to force GL 3 path.

It works!!!
Thank you so much for you help!

Now I can use Standalone mode, finally :slight_smile:

Ooops forgot to add.
In case others are wondering, the workaround was indeed to force the Engine in GLSL_150 (opengl3) mode. I edited OpenGLLinux.cpp, the line where it says:

OutMajorVersion = 4;
OutMinorVersion = 3;

replaced it by:

OutMajorVersion = 3;
OutMinorVersion = 2;

I wonder why it is ignoring the cmdline arguments, though…
But at least it works!
Thanks again