Framebuffer object format is unsupported by the video hardware

That last error is probably a null pointer exception, we call glGenerateMipmapsEXT after calling glTexImage2D(…, NULL).

Driver should check if pointer is non NULL instead of crashing, the quality of drivers seems to be degrading …

In any case it should be a simple fix. Just check if the data on the image is null, and if it is, don’t call glGenerateMipmapsEXT (this is in LwjglRenderer.updateTexImageData)

Alright, i did it

nehon said:
Alright, i did it


Alright, thats fixed most of the issues on the linux box. Thank you! The only problem I have with my app now (which runs on my windoze box) is that when I load the same large (20mb) png file it doesnt work on the linux box.
[java]
Material mat = new Material(
assetManager, "Common/MatDefs/Misc/SimpleTextured.j3md");
Texture tex_ml = assetManager.loadTexture("tokyo.png");
mat.setTexture("m_ColorMap", tex_ml);
g.setMaterial(mat);
)
[/java]
it doesnt throw any exceptions either, and works with a smaller image (tried giving heaps of ram but no difference).
I do think there is something amiss with the loader though as I have one case where it loads entirely the wrong image.

fyi, on my windows box, the only 2 tests that run in the jme3test.post section are TestRenderToMemory and TestRenderToTexture. everything else still fails.

So…could you please explain exactly what works and what not, because i’m a bit confused now.

You don’t have any FBO not supported issue on Linux, right?

But you still have the issues on windows?

Those systems are on the same hardware or is that 2 different hardwares?

nehon said:
So....could you please explain exactly what works and what not, because i'm a bit confused now.
You don't have any FBO not supported issue on Linux, right?
But you still have the issues on windows?
Those systems are on the same hardware or is that 2 different hardwares?


Sorry :(
"You don't have any FBO not supported issue on Linux, right?". Right - all is good on Linux, no FBO exceptions. (on the linux box only I get an exception when I try to use antialiasing but thats different - anything with antialias (AppSettings->.setSamples(n>0)):
com.jme3.app.Application handleError
SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,6,main]
java.lang.NullPointerException
at com.jme3.renderer.lwjgl.LwjglRenderer.initialize(LwjglRenderer.java:171)
at com.jme3.system.lwjgl.LwjglContext.internalCreate(LwjglContext.java:72)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.ja
).

yes I still have the issues on windows. hardware is different.
the linux box is a dell M4300 laptop with a generic on board intel graphics card.
the windows box is a dell m6300 laptop with an nvidia quadro fx 3600M
both have the latest available drivers installed.

Cheers.

PS - nehon I didn't receive your last comment on this thread as an email update, but the button above still reads "mute this topic". I've missed a few now here and there. Has anyone else noticed any problems with email notifications from this forum?

I am getting this same error, however on the TestWalkingCharacter.



Error in detail

[java]

Apr 3, 2011 10:36:38 AM com.jme3.renderer.lwjgl.LwjglRenderer setFrameBuffer

SEVERE: Problem FBO:

FrameBuffer[format=800x600x1, drawBuf=0]

Depth => BufferTarget[format=Depth]

Color(0) => TextureTarget[format=RGBA8]



Apr 3, 2011 10:36:38 AM 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:1124)

at com.jme3.renderer.lwjgl.LwjglRenderer.setFrameBuffer(LwjglRenderer.java:1381)

at com.jme3.post.filters.BloomFilter.preRender(BloomFilter.java:246)

at com.jme3.post.FilterPostProcessor.postQueue(FilterPostProcessor.java:159)

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

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

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

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

at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:161)

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

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

[/java]



The method that causes it is. Commenting out the call to the method allows me to run the demo.



[java]private void setupFilter() {

FilterPostProcessor fpp = new FilterPostProcessor(assetManager);

BloomFilter bloom = new BloomFilter(BloomFilter.GlowMode.Objects);

fpp.addFilter(bloom);

viewPort.addProcessor(fpp);

}

[/java]



JME code version, updated on 4/3 from the nightlys



WIndows 7 professional 64 bit

NVIDIA GeForce 7900 GS 512 MB (Drivers updated on 4/3)

Core2 6600 (2.4GHZ)

6 Gig of RAM

erf cannot reproduce the issue…

Any other test fail?

I only ran through a few more tests but found the error again.



TestEverything.java



Commenting out the call to this guy gets rid of the error.

[java]

public void setupHdr(){

if (renderer.getCaps().contains(Caps.GLSL100)){

hdrRender = new HDRRenderer(assetManager, renderer);

hdrRender.setMaxIterations(40);

hdrRender.setSamples(settings.getSamples());



hdrRender.setWhiteLevel(3);

hdrRender.setExposure(0.72f);

hdrRender.setThrottle(1);



// setPauseOnLostFocus(false);

// new HDRConfig(hdrRender).setVisible(true);



viewPort.addProcessor(hdrRender);

}

}

[/java]





Error

[java]Apr 3, 2011 1:20:22 PM com.jme3.renderer.lwjgl.LwjglRenderer setFrameBuffer

SEVERE: Problem FBO:

FrameBuffer[format=1280x720x4, drawBuf=0]

Depth => BufferTarget[format=Depth]

Color(0) => BufferTarget[format=RGB16F]



Apr 3, 2011 1:20:22 PM 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:1124)

at com.jme3.renderer.lwjgl.LwjglRenderer.setFrameBuffer(LwjglRenderer.java:1381)

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

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

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

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

at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:161)

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

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

[/java]

I think many of the recent renderer issues could be caused by some cards not supporting non-power-of-2 textures or framebuffers.

Check if the extension GL_ARB_texture_non_power_of_two is available, if not, then FBO/Textures with NPOT sizes could cause all sorts of failures.

Momoko_Fan said:
I think many of the recent renderer issues could be caused by some cards not supporting non-power-of-2 textures or framebuffers.
Check if the extension GL_ARB_texture_non_power_of_two is available, if not, then FBO/Textures with NPOT sizes could cause all sorts of failures.

Is this directed at me? If so how do I check for that?

The latest SVN jME3 will now display a warning if NPOT textures are not supported, hopefully that will help isolate the issue better.

I’m still getting this error



Geforce 7900 GS

driver version:8.17.12.7061 release date 4/18/2011



I don’t remember having this problem before. I was using Windows Server R2 and an older version of my video drivers.



Graphics Capabilities


FrameBuffer
FrameBufferMRT
FrameBufferMultisample
OpenGL20
OpenGL21
ARBprogram
GLSL100
GLSL110
GLSL120
VertexTextureFetch
FloatTexture
FloatColorBuffer
VertexBufferArray

If this is with the latest jME3, then the answer is … Not much we can do

I don’t see “NonPowerOfTwoTextures” in that list. That means filters cannot run on your video card

I’m positive I was able to run the demo with the filters in them before. A couple months ago I was running this same exact machine except the OS was Server R2 instead of Windows 7 Professional. The video card drivers weren’t up to date and I was keeping the nightly builds up to date.



When I open JMP I get the framebuffer error now when I never use to. If it really just is my hardware I can live with that, I understand how it is. However, I really do think there is a chance something changed.



Right when I open JMP I get the following and it just repeats



[java]

Loaded material definition: Wire Color

Problem FBO:

FrameBuffer[format=120x120x1, drawBuf=0]

Depth => BufferTarget[format=Depth]

Color(0) => BufferTarget[format=RGBA8]



Problem FBO:

FrameBuffer[format=120x120x1, drawBuf=0]

Depth => BufferTarget[format=Depth]

Color(0) => BufferTarget[format=RGBA8]

[/java]



Looking for help online I ran into. Maybe using that call will add support for my card?

http://forum.openscenegraph.org/viewtopic.php?t=6840

jME3 doesn’t resize anything. Its your video card that’s throwing that error (assuming its still the same error as in the first post)

im having this same issue

i did a fresh start restarted computer and closed out eveyrhtign else.

Not sure what settings i need to start but i cant get past the menu screen
Singlplayer mutli
optios ect

I download the zip file and exctrated it in dowloads/ Mythruna under (C:)

error code in notepad file

Uncaught exception from thread:Thread[LWJGL Renderer Thread,5,main]
java.lang.IllegalStateException: Framebuffer object format is unsupported by the video hardware.

eMachine
Windows 7
64 bit operating sysystem
Pentium R dual core CPU E5400 2.7GHz
4G Ram
Nivdia Graphics

im aware there has been some time since a post has been made*

Was there a designated soultion ?

WIll I need to download aditional litems to run mythruna ?

Are your graphics drivers up to date? I know someone else here had that error and fixed it with updating drivers.

I think if you run Mythruna from the command line it may provide more information… but not with the .exe directly but like with:
java -jar MythrunaXXX.exe
…where XXX is the version or whatever.