"org.lwjgl.LWJGLException: Pixel format not accelerated" only on dist

Hi everyone

I am new to JME and in the community.

I may have either a setup problem or I may not be understanding the application startup differences between the IDE and as standalone application.

To put the problem in context, I have started using JME yesterday. I was able to catch up soon and I really like it. Half of the time I develop in Linux and half of the time in Windows. The application boot from the IDE and I can set in the main method or select from the popup the graphic configuration (works well on both platforms).

However in Windows (I haven’t test this on Linux yet), when I try to launch the application from the exe build in the dist directory a error popup, and no stack trace, displays:

Failed to create display
LWJGLException: Pixel format not accelerated

When running the jar I get the same popup and also I am able to get the stack trace:

(pathtomyproject)\dist>java -jar MyGame.jar
(date) com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.0.10
(date) com.jme3.system.Natives extractNativeLibs
INFO: Extraction Directory: (pathtomyproject)\dist
(date) com.jme3.app.Application handleError
SEVERE: Failed to create display
org.lwjgl.LWJGLException: Pixel format not accelerated
…at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
…at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
…at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:244)
…at org.lwjgl.opengl.Display.createWindow(Display.java:306)
…at org.lwjgl.opengl.Display.create(Display.java:848)
…at org.lwjgl.opengl.Display.create(Display.java:757)
…at com.jme3.system.lwjgl.LwjglDisplay.createContext(LwjglDisplay.java:140)
…at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:113)
…at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:207)
…at java.lang.Thread.run(Unknown Source)

(date) com.jme3.system.lwjgl.LwjglAbstractDisplay run
SEVERE: Display initialization failed. Cannot continue.

Please note that there are other questions about this error, but for what I found it looks that in those the application doesn’t even start from the IDE and the answer is to update the graphic driver. In this case, how it could run in the IDE and not as standalone if it were a driver issue? On the other side, is the IDE using a debug like library that adds some functionality that the standalone is missing, for example software rendering? I don’t think this is a driver issue and updating the driver is not an option.

Your help would be really appreciated, even if it is a temporary workaround.

Thank you!

Do you maybe have two graphics cards in your system? I low power embedded one and a higher power GPU? If so then maybe it’s selecting the wrong one when you run from command line.

@pspeed

No, I don’t. Just one: Intel® HD Graphics.

I do, however, have 2 monitors, which one of them is a touch screen.

Did you update jme lately? In that case older dll’s /so’s might be still be lying around and be used.

@Empire_Phoenix

Yes. I just updated to the latest version (through the IDE update notification).
The problem is still there.

I will go try to investigate the cause in the JME source code. In theory, it should work exactly as it does in the IDE, as it is running in the exactly same system.

By the way, I am extending from SimpleApplication, if that matters.