LWJGL trouble - jME3

Hi everyone,



I briefly tried out jME2 about 1.5 years ago then abandoned it in favor of Irrlicht because my puny 8-year-old Radeon X300 didn't actually run OpenGL programs (or rather used the Windows OGL 1.1 software renderer, which ran at 6 fps at its best.) Just a couple days ago, I bought a new graphics card, a Radeon HD 4350 with 1 GB of memory, and it works much better for everything I've found. So I finally got to run all the programs that I had to abandon before. I rediscovered jME just yesterday, and I've been trying to get it to work - more specifically, running the tests in the SDK. When I do this with the JOGL renderer, the thing works at a high framerate. When I use the LWJGL renderer, the program crashes instantly without displaying anything.



Can somebody please help me here? It would seem that a graphics card that's still available at Best Buy, with the drivers up to date (I installed them when I installed the card), would be able to run these tests with LWJGL, even in an alpha release of the jME3 SDK.



System specs:

Windows Vista 32-bit SP2, Home Basic (a.k.a. The Devil)

AMD Athlon 64 X2 dual-core 4000+, 2.11 GHz

2.00 GB RAM, if that matters…



Catalyst Control Center settings (affects behavior of the graphics driver, but probably not causing the problem):

OGL Triple Buffering: Off

Adaptive antialiasing: Off

Wait for vertical refresh: Off unless application specifies

Mipmap detail level: Performance

Catalyst AI: Disabled

Anisotropic filtering and antialiasing: application managed



Here's the output when I run jme3test.asset.TestOnlineJar from jMonkeyPlatform, 640X480 windowed, 24 bpp, antialiasing disabled, no vertical sychronisation, lwjgl-ogl3.1 (which should work):



init:

Deleting: E:jMEJmeTestsbuildbuilt-jar.properties

deps-jar:

Updating property file: E:jMEJmeTestsbuildbuilt-jar.properties

compile:

run:

Jun 8, 2010 8:52:40 PM jme3test.TestChooser start

INFO: Composing Test list…

Jun 8, 2010 8:52:41 PM jme3test.TestChooser find

INFO: Searching for Demo classes in "jar:file:/E:/jmonkeyplatform/jmonkeyplatform/libs/jMonkeyEngine3.jar!/jme3test".

Jun 8, 2010 8:52:43 PM com.jme3.asset.DesktopAssetManager <init>

INFO: DesktopAssetManager created.

Jun 8, 2010 8:52:44 PM com.jme3.asset.DesktopAssetManager <init>

INFO: DesktopAssetManager created.

INFO JmeSystem 8:54:40 PM Running on jMonkey Engine 3 ALPHA 0.50

INFO Natives 8:54:40 PM Extraction Directory #1: file:/E:/jmonkeyplatform/jmonkeyplatform/libs/

INFO Natives 8:54:40 PM Extraction Directory #2: E:jMEJmeTests

INFO Natives 8:54:40 PM Extraction Directory #3: E:jMEJmeTests

INFO LwjglAbstractDisplay 8:54:42 PM Using LWJGL 2.4.2

INFO LwjglDisplay 8:54:42 PM Selected display mode: 640 x 480 x 0 @0Hz

INFO LwjglAbstractDisplay 8:54:43 PM Display created.

INFO LwjglAbstractDisplay 8:54:43 PM Adapter: aticfx32

INFO LwjglAbstractDisplay 8:54:43 PM Driver Version: 8.17.10.24

INFO LwjglAbstractDisplay 8:54:43 PM Vendor: ATI Technologies Inc.

INFO LwjglAbstractDisplay 8:54:43 PM OpenGL Version: 3.3.9836 Compatibility Profile Context

INFO LwjglAbstractDisplay 8:54:43 PM Renderer: ATI Radeon HD 4300/4500 Series

INFO LwjglAbstractDisplay 8:54:43 PM GLSL Ver: 3.30

INFO LwjglTimer 8:54:43 PM Timer resolution: 1000 ticks per second

INFO Camera 8:54:43 PM Camera created (W: 640, H: 480)

INFO LwjglMouseInput 8:54:43 PM Mouse created.

INFO LwjglKeyInput 8:54:43 PM Keyboard created.

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Gui Node)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (BitmapFont) attached to this node (Statistics View)

INFO Node 8:54:44 PM Child (Statistics View) attached to this node (Gui Node)

INFO DesktopAssetManager 8:54:44 PM DesktopAssetManager created.

INFO Node 8:54:46 PM Child (Textured Quad) attached to this node (Root Node)

SEVERE Application 8:54:46 PM Uncaught exception thrown in Thread[LWJGL Renderer Thread,6,main]

java.lang.IllegalStateException: Cannot render mesh without shader bound

        at com.jme3.renderer.lwjgl.LwjglRenderer.setVertexAttrib(LwjglRenderer.java:1668)

        at com.jme3.renderer.lwjgl.LwjglRenderer.setVertexAttrib(LwjglRenderer.java:1673)

        at com.jme3.renderer.lwjgl.LwjglRenderer.renderMeshDefault(LwjglRenderer.java:1859)

        at com.jme3.renderer.lwjgl.LwjglRenderer.renderMesh(LwjglRenderer.java:1885)

        at com.jme3.material.Material.render(Material.java:476)

        at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:247)

        at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:100)

        at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:142)

        at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:332)

        at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:460)

        at com.jme3.renderer.RenderManager.render(RenderManager.java:474)

        at com.jme3.app.SimpleApplication.update(SimpleApplication.java:165)

        at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:112)

        at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:162)

        at java.lang.Thread.run(Thread.java:619)

BUILD SUCCESSFUL (total time: 2 minutes 7 seconds)



I've seen this error, or something like it, in these fora, but not an answer that helped me run jME3 with lwjgl. It seems unlikely that a graphics card purchased just a few days ago would be the cause of the problem. It also seems unlikely that updating the libs with a nightly build would help either, since as many of those crash as do the tests run from jMonkeyPlatform.



Help!


First, make sure you have the very latest drivers from ATI. If you're still having the issue, try updating from SVN (rather than use alpha1 version) as there was a very similar bug to this that I think I fixed.

Momoko_Fan said:

First, make sure you have the very latest drivers from ATI. If you're still having the issue, try updating from SVN (rather than use alpha1 version) as there was a very similar bug to this that I think I fixed.

You dont need to uodate from svn when using jMP, just go to Tools->Plugins and activate the nightly update center.

I activated the nightly update center, checked for updates, and installed all 4 updates successfully; then I created a new jME test project. I ran jme3test.asset.TestOnlineJar with much the same result.



I'll try installing the most recent drivers from ATI again after lunch, but I don't think it'll make any difference, since I installed them when I got my new graphics card just a few days ago.

Hello :smiley:



Got rev 5371 from http://jmonkeyengine.googlecode.com/svn/branches/jme3

in Eclipse Helios RC1 64bit (eclipse-java-helios-RC1-win32-x86_64.zip)

with jdk 6u20 32bit and 64bit installed (with 64bit one as default)

using latest ATi drivers ATI Catalyst 10.5 5/26/2010     10-5_vista64_win7_64_dd_ccc_enu.exe



I'm getting the same thing on almost any test, for example TestBitmapFont.java in src/test/jme3test.gui/

Jun 9, 2010 7:03:04 PM com.jme3.asset.DesktopAssetManager <init>
INFO: DesktopAssetManager created.
INFO JmeSystem 7:03:07 PM Running on jMonkey Engine 3 ALPHA 0.50
INFO Natives 7:03:07 PM Extraction Directory #1: file:/S:/eclipse.workspace/jme3/bin/com/jme3/system/
INFO Natives 7:03:07 PM Extraction Directory #2: S:eclipse.workspacejme3
INFO Natives 7:03:07 PM Extraction Directory #3: S:eclipse.workspacejme3
INFO LwjglAbstractDisplay 7:03:07 PM Using LWJGL 2.3
INFO LwjglDisplay 7:03:07 PM Selected display mode: 640 x 480 x 0 @0Hz
INFO LwjglAbstractDisplay 7:03:07 PM Display created.
INFO LwjglAbstractDisplay 7:03:07 PM Adapter: RDPDD
INFO LwjglAbstractDisplay 7:03:07 PM Driver Version: 6.1.7600.16385
INFO LwjglAbstractDisplay 7:03:07 PM Vendor: ATI Technologies Inc.
INFO LwjglAbstractDisplay 7:03:07 PM OpenGL Version: 3.3.9836 Compatibility Profile Context
INFO LwjglAbstractDisplay 7:03:07 PM Renderer: ATI Radeon HD 4800 Series        
INFO LwjglAbstractDisplay 7:03:07 PM GLSL Ver: 3.30
INFO LwjglTimer 7:03:07 PM Timer resolution: 1000 ticks per second
INFO Camera 7:03:07 PM Camera created (W: 640, H: 480)
INFO LwjglMouseInput 7:03:07 PM Mouse created.
INFO LwjglKeyInput 7:03:07 PM Keyboard created.
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Gui Node)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 7:03:08 PM Child (Statistics View) attached to this node (Gui Node)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Gui Node)
INFO Node 7:03:08 PM Child (BitmapFont) attached to this node (Gui Node)
SEVERE Application 7:03:08 PM Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.lang.IllegalStateException: Cannot render mesh without shader bound
   at com.jme3.renderer.lwjgl.LwjglRenderer.setVertexAttrib(LwjglRenderer.java:1682)
   at com.jme3.renderer.lwjgl.LwjglRenderer.setVertexAttrib(LwjglRenderer.java:1687)
   at com.jme3.renderer.lwjgl.LwjglRenderer.renderMeshDefault(LwjglRenderer.java:1873)
   at com.jme3.renderer.lwjgl.LwjglRenderer.renderMesh(LwjglRenderer.java:1899)
   at com.jme3.material.Material.render(Material.java:476)
   at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:247)
   at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:100)
   at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:139)
   at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:356)
   at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:460)
   at com.jme3.renderer.RenderManager.render(RenderManager.java:477)
   at com.jme3.app.SimpleApplication.update(SimpleApplication.java:165)
   at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:112)
   at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:162)
   at java.lang.Thread.run(Unknown Source)




EDIT: forgot to say, 640x480, 24bpp, Disabled, no Fullscreen, no VSync, LWJGL-OpenGL2
- it works with JOGL-OpenGL1
- same error with LWJGL-OpenGL3 and LWJGL-OpenGL3.1

EDIT2: - tried with 32bit and 64bit JDKs and also with 2.4 lwjgl libs/natives, same error
- also commented the line that throws that exception and the screen is just fully black, so I hit ESC to come back :)
...standing by for instructionz :D

Hmm…sounds like some reverse engineering of the ATI drivers is called for…or not.



I got a completely different but undoubtedly related error for jme3test.light.TestShadow using either jogl or lwjgl:


init:
Deleting: E:jMEJmeTestsbuildbuilt-jar.properties
deps-jar:
Updating property file: E:jMEJmeTestsbuildbuilt-jar.properties
compile:
run:
Jun 9, 2010 12:48:22 PM jme3test.TestChooser start
INFO: Composing Test list...
Jun 9, 2010 12:48:22 PM jme3test.TestChooser find
INFO: Searching for Demo classes in "jar:file:/E:/jmonkeyplatform/jmonkeyplatform/libs/jMonkeyEngine3.jar!/jme3test".
Jun 9, 2010 12:48:28 PM com.jme3.asset.DesktopAssetManager <init>
INFO: DesktopAssetManager created.
Jun 9, 2010 12:48:28 PM com.jme3.asset.DesktopAssetManager <init>
INFO: DesktopAssetManager created.
INFO JmeSystem 12:48:31 PM Running on jMonkey Engine 3 ALPHA 0.50
INFO Natives 12:48:32 PM Extraction Directory #1: file:/E:/jmonkeyplatform/jmonkeyplatform/libs/
INFO Natives 12:48:32 PM Extraction Directory #2: E:jMEJmeTests
INFO Natives 12:48:32 PM Extraction Directory #3: E:jMEJmeTests
INFO LwjglAbstractDisplay 12:48:35 PM Using LWJGL 2.4.2
INFO LwjglDisplay 12:48:35 PM Selected display mode: 640 x 480 x 0 @0Hz
INFO LwjglAbstractDisplay 12:48:36 PM Display created.
INFO LwjglAbstractDisplay 12:48:36 PM Adapter: aticfx32
INFO LwjglAbstractDisplay 12:48:36 PM Driver Version: 8.17.10.24
INFO LwjglAbstractDisplay 12:48:36 PM Vendor: ATI Technologies Inc.
INFO LwjglAbstractDisplay 12:48:36 PM OpenGL Version: 3.3.9836 Compatibility Profile Context
INFO LwjglAbstractDisplay 12:48:36 PM Renderer: ATI Radeon HD 4300/4500 Series
INFO LwjglAbstractDisplay 12:48:36 PM GLSL Ver: 3.30
INFO LwjglTimer 12:48:36 PM Timer resolution: 1000 ticks per second
INFO Camera 12:48:36 PM Camera created (W: 640, H: 480)
INFO LwjglMouseInput 12:48:36 PM Mouse created.
INFO LwjglKeyInput 12:48:36 PM Keyboard created.
INFO Node 12:48:38 PM Child (BitmapFont) attached to this node (Gui Node)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (BitmapFont) attached to this node (Statistics View)
INFO Node 12:48:39 PM Child (Statistics View) attached to this node (Gui Node)
INFO Node 12:48:39 PM Child (Floor) attached to this node (Root Node)
INFO Node 12:48:40 PM Child (Models/Teapot/Teapot.obj) attached to this node (Root Node)
INFO Camera 12:48:40 PM Camera created (W: 512, H: 512)
INFO Node 12:48:40 PM Child (f) attached to this node (Root Node)
SEVERE Application 12:48:40 PM Uncaught exception thrown in Thread[LWJGL Renderer Thread,6,main]
java.lang.[b]IllegalArgumentException: For material Pre Shadow, technique not found: FixedFunc[/b]
        at com.jme3.material.Material.selectTechnique(Material.java:180)
        at com.jme3.material.Material.render(Material.java:403)
        at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:244)
        at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:100)
        at com.jme3.renderer.queue.RenderQueue.renderShadowQueue(RenderQueue.java:113)
        at com.jme3.shadow.BasicShadowRenderer.postQueue(BasicShadowRenderer.java:124)
        at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:456)
        at com.jme3.renderer.RenderManager.render(RenderManager.java:474)
        at com.jme3.app.SimpleApplication.update(SimpleApplication.java:165)
        at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:112)
        at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:162)
        at java.lang.Thread.run(Thread.java:619)
BUILD SUCCESSFUL (total time: 24 seconds)



I'll see if I can figure this out from the source, but my success is unlikely. Sounds like ATI's driver is part of the problem. I wonder if using an earlier driver would work? Are there any persons with ATI graphics cards who have jME3 working? If so, it'd be super-nice of you to post some system specifications, driver versions, jMP versions, etc.  :)

got the same error, and with JOGL renderer also but I couldn't exit the white window… had to kill javaw.exe



then I did this in Material.java

            // XXX: hack warning, choose "FixedFunc" if GLSL100

            // not supported by renderer

        selectTechnique("Default");

//            if (!rm.getRenderer().getCaps().contains(Caps.GLSL100)){

//                selectTechnique("FixedFunc");

//            }else{

//                selectTechnique("Default");

//            }


and that's what I see with LWJGL