TextureRenderer: FBO vs PBuffer incredible slowdown (testcase inside)

Video card: Intel® Q965/Q963 Express Chipset Family

Driver: Intel corporation (06/10/2006), version 6.14.10.4704

My computer being a DELL, it seems there is a newer version here: http://www.drivershq.com/Drivers/VistaDevices/DELL-Video-Intel-Q963-Q965-G965-Graphics-Driver/8823/Drivers.aspx

Since you say you are trying to run your application on an Intel GPU, that might explain your slowdown. Intel GPU are well know for providing lousy OpenGL support. Sometimes the driver even lies about its capabilities.



I would try the updated driver, maybe it improves your situation.

Yeah, I ran into the same situation.  Intel told us that their latest "unified" driver would supposedly fix that.  Not sure if it is available for your card though.

Argh, I found a newer driver but not for DELL…  :’(

Warning, you'll need an Internet connection because of the loaded texture…

to get a white FPS label, you can add an empty lightstate and set lightcombineMode to reaplce


            LightState lightState1 = DisplaySystem.getDisplaySystem().getRenderer().createLightState();
            textNode.setRenderState(lightState1);
            textNode.setLightCombineMode(LightCombineMode.Replace);

Could you explain me why this is required?

Regarding the driver version, it seems I'm up to date and if I want new drivers, I've to migrate to Vista…  :x

Niggle said:

Could you explain me why this is required?

hmm i hope this is the correct explanation :)
You have a blueisch LightState on the root node which get inherited by the textnode and illuminates the textNode.
By setting the combine mode to replace, the root nodes Lightstate is ignored.

10 points to Core-Dump !!!  :smiley:



I forgot I put this PointLight on the rootNode, I wished to put it on the Box only. Thanks  XD

New version:

  • corrected PointLight
  • added TEXTURE_SIZE/LINE_WIDTH parameters



    I made some tests thinking about this statement: "if textures are smaller, the framerate get better but the quality decreases" Ok, so the LINE_WIDTH parameter directly controls the width of the graph line and most importantly the size of the texture, with a line width of 3, the texture is 128x128…



    Statistics for my Intel video card for one call of "GL11.glCopyTexImage2D(GL11.GL_TEXTURE_2D, 0, source, 0, 0, width, height, 0);" in LWJGLPbufferTextureRenderer.copyToTexture:
  • 1: 32x32 => 0.5ms per call
  • 2: 64x64 => 1.4ms per call
  • 3: 128x128 => 3.7ms per call
  • 4: 256x256 => 14ms per call => framerate drops down to 12 fps
  • 5: 512x512 => 52ms per call => framerate drops down to 1-4 fps



    As my first test was using 512x512 textures, I now know why the fps was very low. Workaround => limit texture sizes when using LWJGLPbufferTextureRenderer  :smiley:



    N.



    ps: new code following