I have sent my application (jme3) for a friend to test and unfortunately, he is not able to run it. He is getting “java.lang.IllegalStateException: Framebuffer object format is unsupported by the video hardware.”. Now, there is only limited amout of debugging I can do remotely on his machine (even deploying new version of code is a pain), so I thought that maybe you will now the problem out of the box ? He is having very reasonable GForce card, so I don’t think this is a problem. Important parts of the log file
2011-01-18 00:49:37 com.jme3.app.Application handleError
SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.lang.IllegalStateException: Framebuffer object format is unsupported by the video hardware.
at com.jme3.renderer.lwjgl.LwjglRenderer.checkFrameBufferError(LwjglRenderer.java:1112)
at com.jme3.renderer.lwjgl.LwjglRenderer.setFrameBuffer(LwjglRenderer.java:1363)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:716)
at com.jme3.renderer.RenderManager.render(RenderManager.java:757)
at abies.vmat.Vmat.update(Vmat.java:252)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:144)
at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:141)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:203)
at java.lang.Thread.run(Unknown Source)
What is "format=1024x768x1" ? Is it one bit? one byte? Can it be caused by PSSM shadow filter or bloom filter ?
Vmat.update is same as SimpleApplication.update, I have copied this method 1-to-1 (to have my own 'SimpleApplication' class, without FPS camera and gui stats).
I think there is a problem with filters and depth format i need to look more into this, i think all those “Framebuffer object format is unsupported by the video hardware.” may be due to different depth format between textures and FBO.
Could be - but GeForce 9800 sounds like it should support most of the things ever invented… Plus, in case of bloom filter (which I suppose might be a problem here, will try to confirm tonight), it can be tricky to get power-of-two size of texture, as it is initialized to be screen size.
I could swear I have seen .Depth used in bloom filter when I checked it today morning.
I have PSSM shadow added, with 2048 size specified (but maybe it is creating another texture at the very end ?)
I have seen something on the net about nvidia not liking depth24 textures and that depth24stencil8 should be used instead - don’t know if it is related.
I will first try to pinpoint the issue (so we know what behaves wrongly with old drivers) and then try everything on with new drivers. Hopefully it will help.
Not sure if I will be able to do it today, as he might be quite busy - but I will keep you updated about the results.
We have done the test on his laptop, with intel graphic card… Good news - no crashes. Bad news - my shaders are not working (unmodified lighting.j3md seems to work at least basically, so my fault probably), pssm shadows quite broken, bloom not working, basic shadows are very good, rest of the program works ok.
I hope we will be able to test nvidia pc again soon.
Despite his claims, it turned out that my friend has outdated graphics drivers (over 1 year old). After updating to latest ones, problem dissappeared. This is suprising to me, why 1 year old drivers are crashing on the perfectly ok opengl code, not using any of the latest super-duper-geometry-shader things, but that’s another issue. I was not able to test excactly what was causing the problem, as updated drivers worked, but it was most probably PSSM shadows (as the version without shadows and bloom worked a week earlier).
On intel front, I have managed to get most things working by simplifying the shaders a bit (seems that anything using spherical coordinates is not working for some reason). Performance is not great, bloom doesn’t work, but all other things are visible.
There is still small problem that on both nvdia and intel, normal ‘lighting’ shader is behaving strange, making darker areas of models completely black instead of just dark, while it works perfectly ok on my ATI - but this is separate thing.
So you were right from very start it was a driver issue. Thanks for help.
There is still small problem that on both nvdia and intel, normal ‘lighting’ shader is behaving strange, making darker areas of models completely black instead of just dark, while it works perfectly ok on my ATI – but this is separate thing.
Thats s diffuse stuff I have this as well, only on intel and nvidia it looks strange on ati it does not
For me it solved by increasing shininess material parameter
super-duper-geometry-shader things
Nope not geometry shaders yet, but with everything else jme3 is nearly top edge of technology aviable so don’t underestimate the requirements for it.
Thanks - it was indeed shininess parameter. I have forgotten to set it at all, so it was probably zero… With it set to bigger value (1 or 26 depending on model), no more strange dark spots on models.