fbo: performance penalty under gf5900 ?

Hi everybody,

i have an application, that extensively uses

  • fbos
  • non-pot textures
  • fragmentshaders

i develop under gf 6800 go, and occasionally test under ati 9700. today i tested my app using a geforce 5900 (no ultra whatever) and the speed dropped down to 3 fps. the machines have dual xeon (!) and run at 50% each cpu. normaly the app does not use more than 2% cpu in idle mode.

i tried several drivers:

77.74
78.01
81.(35?)

but the app was still crawling. do the gf 5900
render non-pot textures in software? but they always supported texturerect ??

i cannot install my debuggers on these machines, so thank you for any hint,

hendrik

GeForce FX GPUs support non power of two textures in hardware via the ARB_texture_rectangle extension. Using the ARB_texture_non_power_of_two extension will fall back to software. GeForce 6 and GeForce 7 GPUs hardware accelerate ARB_texture_non_power_of_two.

NPOT textures are horribly (and i really mean it since i have a 5900 too) slow on NV3x grade hardware.

If you want to use non power of two textures it is easy to make power of two textures of them - just extend as mayn rows or lines to get power of two.
Calling them you just need to take the field of the power of two stuff inside the TexCoord2f values below 1.
e.g.
your picture has a 320x200 size.
this means you make a 512x256 picture of it, filling the right and pottom part with a free choosable value.
now you call texture coords form (0;0)to(.625;.78125)(means 320/512;200/256)
this way you can use any size of graphic.

CU2
Tilli

i’ve done it using Tilli’s suggestion. now its as fast as it should be,

thank you,
hendrik

Take extra care when using mipmapping… preferably you should fill the extra space with the color of the texture-pixel nearest to it.