I've been working my way through all the tests launched from the TestChooser application. Everything was going fine until I reached TestImposterNode. The JVM crashes and there's no graphics, but the window does appear! I've got an ATI Mobility Radeon 9700 on a DELL XPS laptop running Win/XP. It appears to be crashing in the OpenGL driver to the board, which means it doesn't like something being passed in. Any ideas why this is crashing?
Here's the output:
Oct 22, 2007 4:14:17 PM jmetest.TestChooser start
INFO: Composing Test list…
Oct 22, 2007 4:14:17 PM jmetest.TestChooser find
INFO: Searching for Demo classes in "jmetest".
Oct 22, 2007 4:14:17 PM com.jme.scene.Node <init>
INFO: Node created.
Oct 22, 2007 4:14:22 PM com.jme.app.BaseGame start
INFO: Application started.
Oct 22, 2007 4:14:22 PM com.jme.system.PropertiesIO <init>
INFO: PropertiesIO created
Oct 22, 2007 4:14:22 PM com.jme.system.PropertiesIO load
INFO: Read properties
Oct 22, 2007 4:14:37 PM com.jme.input.joystick.DummyJoystickInput <init>
INFO: Joystick support is disabled
Oct 22, 2007 4:14:37 PM com.jme.system.lwjgl.LWJGLDisplaySystem <init>
INFO: LWJGL Display System created.
Oct 22, 2007 4:14:37 PM com.jme.system.lwjgl.LWJGLDisplaySystem getValidDisplayMode
INFO: Selected DisplayMode: 1280 x 768 x 16 @60Hz
Oct 22, 2007 4:14:37 PM com.jme.system.PropertiesIO save
INFO: Saved properties
Oct 22, 2007 4:14:37 PM com.jme.app.BaseSimpleGame initSystem
INFO: jME version 1.0
Oct 22, 2007 4:14:38 PM com.jme.renderer.lwjgl.LWJGLRenderer <init>
INFO: LWJGLRenderer created. W: 1280H: 768
Oct 22, 2007 4:14:38 PM com.jme.app.BaseSimpleGame initSystem
INFO: Running on: ati2dvag
Driver version: 6.14.10.6561
ATI Technologies Inc. - MOBILITY RADEON 9700 x86/SSE2 - 2.0.5279 WinXP Release
Oct 22, 2007 4:14:38 PM com.jme.renderer.AbstractCamera <init>
INFO: Camera created.
Oct 22, 2007 4:14:38 PM com.jme.util.lwjgl.LWJGLTimer <init>
INFO: Timer resolution: 1000 ticks per second
Oct 22, 2007 4:14:38 PM com.jme.scene.Node <init>
INFO: Node created.
Oct 22, 2007 4:14:38 PM com.jme.scene.Node <init>
INFO: Node created.
Oct 22, 2007 4:14:38 PM com.jme.scene.Node attachChild
INFO: Child (FPS label) attached to this node (FPS node)
Oct 22, 2007 4:14:39 PM com.jme.scene.Node <init>
INFO: Node created.
Oct 22, 2007 4:14:39 PM com.jme.scene.Node attachChild
INFO: Child (MD2 mesh-1663715008) attached to this node (MD2 mesh-1663715008)
Oct 22, 2007 4:14:40 PM jmetest.renderer.TestImposterNode simpleInitGame
INFO: Time to convert from md2 to .jme:1406
Oct 22, 2007 4:14:40 PM com.jme.scene.Node <init>
INFO: Node created.
Oct 22, 2007 4:14:40 PM jmetest.renderer.TestImposterNode simpleInitGame
INFO: Time to convert from .jme to SceneGraph:531
Oct 22, 2007 4:14:40 PM com.jme.scene.Node <init>
INFO: Node created.
Oct 22, 2007 4:14:40 PM com.jme.scene.Node attachChild
INFO: Child (MD2 mesh-1663715008) attached to this node (Fake node)
Oct 22, 2007 4:14:40 PM com.jme.scene.Node <init>
INFO: Node created.
Oct 22, 2007 4:14:40 PM com.jme.renderer.lwjgl.LWJGLTextureRenderer <init>
INFO: FBO support detected.
Oct 22, 2007 4:14:40 PM com.jme.renderer.lwjgl.LWJGLTextureRenderer initCamera
INFO: Init RTT camera
Oct 22, 2007 4:14:40 PM com.jme.renderer.AbstractCamera <init>
INFO: Camera created.
Oct 22, 2007 4:14:40 PM com.jme.scene.Node <init>
INFO: Node created.
#
An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6914d7f3, pid=2940, tid=3868
#
Java VM: Java HotSpot™ Client VM (1.6.0_03-b05 mixed mode)
Problematic frame:
C [atioglxx.dll+0x14d7f3]
#
An error report file with more information is saved as hs_err_pid2940.log
#
If you would like to submit a bug report, please visit:
I just installed the latest drivers and BIOS from DELL. However, this did not help! Now I'm looking at the drivers at the ATI site and they don't list DELL in their list of supported systems! I'll try the driver update anyway since it seems more recent, but I'll may screw my machine up since DELL may have some issues. (see http://game.amd.com/us-en/drivers_catalyst.aspx?p=xp/mobility-xp).
TestImposterNode uses render to texture technology, which either uses PBuffers or FSB. It tries to detect first what is the preferred configuration of your graphics card, and then tries to initialize the appropriate context. This all means that it is very possible that either your card does not support RTT (render to texture), or your graphics drivers are not up-to-date.
The latest drivers from ATI won't work on my DELL XPS because DELL has some wierd hardware configuration that is incompatible! Now what I'm I supposed to do?
Well the question is, is FBO support borked on your current driver, or is it something we are doing to setup FBO. I guess we can also add a static boolean to LWJGLTextureRenderer that is &&'d to supported so that you can force a fallback to the pbuffer version.
FBO support seems to be present as it seems to work in OpenGL Extensions Viewer when I select that option. However, it also crashes after 30 secs of testing :| I'll try and isolate what specific test is failing. I sure hate this!
Okay, I found what causes the OpenGL Extensions Viewer to crash. All the tests work except for the last one, which is "2.1 pixel buffer object". If that test is selected it crashes the program every time. However, the following tests work with every frame buffer setings:
1.1 texturing
1.2 locked arrays
1.3 multitexture
1.4 vertex program
1.5 vertext objects
2.0 shading language
Also ALL the different frame buffer settings work: Standard, Pixel Buffers, Frame Buffer Object, and Frame Buffer Object (float).
That is suspicious… I had the exact same problem before with FBO, the extension viewer worked but jME didn't. Maybe you need to re-compile the jME jars?
I found what is causing the crash for TestProjectedWater! Line 268 in LWJGLTextureRenderer.java, "EXTFramebufferObject.glGenerateMipmapEXT(GL11.GL_TEXTURE_2D);" when removed, allows the test to work without crashing! Of course I only get a FPS of 9! I'll try the other tests that were also crashing to see if this is the same problem.
I tried all the tests that crashed, and they work now after removing the line of code as explained above. However, the imposter test may have a problem, but if so, it is unrelated to the crashes I've been having. I'll start another thread if there is a problem with imposters. As to how to do mipmaps with FBOs on ATI chips on DELL laptops, we will have investigate this further.
If no attributes need to be set for the target texture, glGenerateMipmapEXT can be called after render.
The texture needs to be bound to a texture unit, for glGenerateMipmapEXT to work.
I think the problem is in the second. I have no jME source before me, but i guess a TextureState.apply() needs to be called (somehow) before glGenerateMipmapEXT.