Render to Texture vs. CopyTexSubImage

I made a very small test, and contrary to what I expected, Render to Texture with context switches seems to be faster !

Would you mind testing it and posting your fps/hardware setup here ?

The two programs are located here :

Thank your for your feedback,

[This message has been edited by ZbuffeR (edited 12-01-2003).]

Radeon 9700 Pro – CoD HotFix drivers (Cat 3.9+)
AMD AthlonXP 2100

FRAPS reports approximately 211 fps on average for the CopyTexSubImage version. The P-Buffer version says it can’t find the entry points for WGL_ARB_pbuffer. Oddly enough, the extension string is missing from the drivers I’m using. . .

With older driver render-to-texture was slower. With Forceware i get 10-20% better performance.

Thanks for your feedback.

to Ostsol:
Its impressive, 211fps for CopyTexSub. And for the render to texture, I 'll soon improve the extension detection mechanism.

I didn’t made it clear, but fps are written on a text console behind the GL window.
You just have to drag the gl window a bit, so you can see the fps. (I don’t know for sure what FRAPS calls a ‘frame’).

Furthermore, could you test what fps increase you get by turning off final render (hit B) ?


Ah. . . Well, it looks like FRAPS is pretty accurate, as it agrees with the value in the console window. Pressing ‘b’ increases the framerate to around 600 fps.

[This message has been edited by Ostsol (edited 12-01-2003).]

to Ostsol :
I’ve udated the detection of Render to Texture, you may try it now. I still hardly believe your 200+ fps :wink: . When I found only 5 fps on my gf3, I wanted to drop it… but if it works so well on radeon 9700, I may keep it.


Ah. . . Works perfectly, now. I get 108 fps normally, then 220 after pressing ‘b’. Quite a bit lower than the glCopySubImage version. . . It looks like the p-buffer version uses a much higher resolution render target, though, so perhaps the performance difference isn’t so strange.

Radeon 9700 Pro, Athlon XP 2500+

Render texture: 110FPS, pressing b: 220FPS
CopyTexSubImage: 211FPS, pressing b: 780FPS

Thank you all for your figures.
Yes, the CopyTex version is 128x128 instead of 512x512, because on my setup the full res CopyTex was soooo crawwwwwliing… I will post a high res version later this week.

Anybody with other video cards ?


P4 2.4GHz / GeForce FX 5900 Ultra

pbuffer : 116 fps / ‘b’ : 214 fps
copytexsubimage : 6 fps / ‘b’ : 6 fps

I was saying to myself that my own copytexsubimage were so slow … is there a trick ?



rtt: 55/113(b)
copy: 7/7(b)

copy to texture from pbuffer can be slow… why dont you copy to texture from backbufffer instead?

Originally posted by Mazy:
copy to texture from pbuffer can be slow… why dont you copy to texture from backbufffer instead?

Good idea, but I did not know that it would make any difference, from a back- or pbuffer. It will try that, thank you.

EDIT: spelling…

[This message has been edited by ZbuffeR (edited 12-01-2003).]

ZBuffer : the difference will show up on my 6 fps, it will rise maybe to 400 …


So, I made a new version following Mazy’s advice (copying texture from backbuffer). You can test it here:

It is the third program.
However, my Geforce3 still prefer the render to texture :

Render to texture: 37 FPS
CopyTex from pbuffer: 6 FPS (128x128)
CopyTex from backbuffer: 30 FPS

And you ?

Dual Athlon 2.4 Ghz, 2 Gb RAM, Radeon 9700 Pro:

Render to texture: 107 FPS / 170 FPS (B)
CopyTex from pbuffer: 212 FPS / 430 FPS (B)
CopyTex from backbuffer: 90 FPS / 153 FPS (B)


I would like to see the source of that one,
I have never succeded to not have faster copy from backbuffer to texture than anything else

anyone tested with fx5200? … i tested it with fx5200 (forceware 52.16 and amd athlon1.8mhz) and got really low fps …

  1. 6fps/6fps
  2. 31fps/41fps
  3. 5fps/5fps
    (no b key/b key)

not sure why this is so slow …

a)117 / 223
b)101 / 169
c)240 / 683

Radeon 9800Pro

But the resolition of test C was pretty bad.

Mazy, I guess you changed the order of tests, no ?

Well, I updated the “copy from pbuffer” version so that the texture resolution is 512x512, like the others. My figures:

  1. RTT : 37 fps
  2. Copy from pbuffer : 0.29 fps (!)
  3. Copy from backbuffer : 30 fps

Maybe RTT is the single way to go on Geforces, and Copy from back is to be used on Radeon… Any more tests with a GF FX 5200 ?