I'm the dev of StarMade and we were recently affected by the crashes the new NVIDIA driver, particularly 3dVision is causing with java and LWJGL.
I tried everything and I finally found out how to completely solve the issue, so I wanted to share my findings.
The bug comes in two stages. One is caused by the driver itself and one by 3dVision. The driver itself stops on using OpenGL initialization functions resulting in "Pixelformat not accelerated", 3dVision might even crash on non LWJGL functions such as GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().
As strange as it sounds, the solution is to strictly use javaw.exe instead of java.exe for windows. I know that the only difference is that javaw targets the WINDOW subsystem, while java targets the CONSOLE subsystem https://msdn.microsoft.com/en-us/library/fcc1zstk.aspx?f=255&MSPPError=-2147217396 but for some reason, it solves the crash.
Here is the catch though. Using just "javaw" will not solve the problem. The executable has to be called directly. The problem with just calling "javaw" on a system with java installed is that it will call a dummy javaw.exe either located in system32 or in C:\ProgramData. This dummy file will delegate the command to the latest installation of java. If this happens, the crash will occur.
If you have a crashing test program you can try executing it with "javaw -jar test.jar" and "C:\PathToJavaHome\bin\javaw.exe -jar test.jar". The first one will crash, the second one will work.
Since minecraft (like starmade) is now deployed with java, it shouldn't be a problem anyways since the executable is called directly.
Hello,
I'm the dev of StarMade and we were recently affected by the crashes the new NVIDIA driver, particularly 3dVision is causing with java and LWJGL.
I tried everything and I finally found out how to completely solve the issue, so I wanted to share my findings.
The bug comes in two stages. One is caused by the driver itself and one by 3dVision. The driver itself stops on using OpenGL initialization functions resulting in "Pixelformat not accelerated", 3dVision might even crash on non LWJGL functions such as GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().
As strange as it sounds, the solution is to strictly use javaw.exe instead of java.exe for windows. I know that the only difference is that javaw targets the WINDOW subsystem, while java targets the CONSOLE subsystem https://msdn.microsoft.com/en-us/library/fcc1zstk.aspx?f=255&MSPPError=-2147217396 but for some reason, it solves the crash.
Here is the catch though. Using just "javaw" will not solve the problem. The executable has to be called directly. The problem with just calling "javaw" on a system with java installed is that it will call a dummy javaw.exe either located in system32 or in C:\ProgramData. This dummy file will delegate the command to the latest installation of java. If this happens, the crash will occur.
If you have a crashing test program you can try executing it with "javaw -jar test.jar" and "C:\PathToJavaHome\bin\javaw.exe -jar test.jar". The first one will crash, the second one will work.
Since minecraft (like starmade) is now deployed with java, it shouldn't be a problem anyways since the executable is called directly.