Problem with software rendering

Hello everyone!



I'm trying to enable software rendering with this here command:


-Dorg.lwjgl.opengl.Display.allowSoftwareOpenGL=true



But I get this error:

SEVERE: Cannot create window
java.lang.Error: Cannot create window: Could not find a valid pixel format
        at com.jme.system.lwjgl.LWJGLDisplaySystem.initDisplay(Unknown Source)
        at com.jme.system.lwjgl.LWJGLDisplaySystem.createWindow(Unknown Source)
        at rik.jme.firstpersonbuilder.RikSimpleGame.initSystem(RikSimpleGame.java:243)
        at com.jme.app.BaseGame.start(Unknown Source)
        at rik.jme.firstpersonbuilder.FirstPersonBuilder.<init>(FirstPersonBuilder.java:1
10)



What to do?

I remembered I had turned on antialiasing so I disabled it setting samples = 0.



I get past the "Could not find a valid pixel format" and get this:


org.lwjgl.opengl.OpenGLException: Invalid enum (1280)
        at org.lwjgl.opengl.Util.checkGLError(Util.java:56)
        at org.lwjgl.opengl.Display.update(Display.java:567)
        at com.jme.renderer.lwjgl.LWJGLRenderer.displayBackBuffer(Unknown Source)
        at com.jme.app.BaseGame.start(Unknown Source)
        at rik.jme.firstpersonbuilder.FirstPersonBuilder.<init>(FirstPersonBuilder.java:110)
        at rik.jme.firstpersonbuilder.FPB.main(FPB.java:23)


Software rendering is one of those "I've never seen it work properly, but that doesn't mean it can't."  We don't officially claim to support it, but if lwjgl made the flag to work the same as hardware mode, it should.  Does it work on your machine without the flag?  (or does your test work on another machine if you are trying software mode to get around a low end card on yours)

What platform are you on? I doubt you'll get it to work under windows… There's some sort of OpenGL 1.1 (incomplete?) implementation, but I wouldn't know how to tell windows to use that (maybe by turning off all hardware accelration, but it probably requires that to create a window). Only other thing I can think of trying is letting windows use the standard SVGA driver.



On linux, maybe you can set up MESA without using any hardware accelerated drivers.

Does it work on your machine without the flag?

Yes.

I'm not really planning to have the app running in software mode. I'm just trying to give the users information about what graphics card they have installed, in case they need to update it. I'm making these calls:

GL11.glGetString(GL11.GL_VENDOR);
GL11.glGetString(GL11.GL_VERSION);
GL11.glGetString(GL11.GL_RENDERER);



Problem is I can't make them if the window can't be created so it's a kind of "catch 22" situation. Therefore I want to be able to start the app in software mode so I can make those calls.

Thanks to you both for answering.


What platform are you on?

Windows.

(maybe by turning off all hardware accelration, but it probably requires that to create a window).

You mean turning of mipmaping and such? What exactly does the hardware acceleration do?

Only other thing I can think of trying is letting windows use the standard SVGA driver.

Do you have any clues about how to do this?

Since you just described the use case for what you'll need this for, these are useless steps, since they are some (severe) changes to settings of windows itself.