"non power of two" render_target and ATI

I’m currently writing a HW-accelerated graphics engine for real-time image processing and I need “non power of two” render targets… I cannot find any way to make it work on ATI cards… Any helpful information?

Thanx in advance!

I think that ATI cards CANNOT support NONPOT textures. Currently NONPOT texures are supported in all NV40 (6800, 6600, 6200), Quadro FX 4000 and XGI Volari.


Thanx for your answer. in fact, the engine I’m currently writing is cross-platform & both OpenGL and Direct3D … and creating “non power of two” render-targets is possible with Direct3D… do you think it’s a cheat?

… I also remember there’s an NVIDIA OpenGL extension under windows for NPOT render-target (“WGL_NV_render_texture_rectangle”), also cheat?

Actually Direct3D can do NPOT render targets, but not in OpenGL (only NPOT texture). So it’s not an hardware limitation.

It’s is because due to an ‘omit’ (?) in the GL_ARB_texture_rectangle extension: There is no WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_ARB (only WGL_BIND_TO_TEXTURE_RGBA_ARB)
So NPOT requires GL_NV_texture_rectangle which is not available on ATI.

I guess the GL_ARB_texture_non_power_of_two will solve that problem, but it’s not yet supported by ATI (only GF6800)

Solution: Use power of two textures for your render targets.

That’s what I was thinking, thank you for your answer. I will wait for the ARB extension or an ATI one (I’ve got the D3D engine for windows 'til this time :wink: )



it seems that the Catalyst 4.12 beta got a new extension

Might be that missing extensions.

Alas, this extensions is undocumented.

EDIT: ATI sent me the extension specification. And I’ve tested, it works perfectly.

sorry for opening this thred, but could anyone post the spec for this extension ?

Just get the latest version of GLEW, it has the token for WGL_ATI_render_texture_rectangle …
It works exactly like the nvidia ones .

One limitation. You cannot create a PBuffer with GL_DEPTH_COMPONENT, else it works fine.

I think FBO might comes soon as well (the entry points are available in Catalyst 5.4 already).

EDIT: ATI sent me the extension specification. And I’ve tested, it works perfectly.
I wonder why there is no official specs on this. I was asking ATI for information a while ago, but got no answer back. So, Humus, this is another example for “lacking information” we were talking about last year :-

I am using the latest glew, but I cant see anything similar to WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV. I think you dont have to create Pbuffer on ati with WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV(and similar), but up to this time i am using FBO instead, and now I want to have a backward compatibility, so can anyone complain this?

For your wglChoosePixelFormatARB attributes parameters :

if (WGLEW_NV_render_texture_rectangle)

pAttrib[i++] = GL_TRUE;

For your wglCreatePbufferARB attributes parameters:

if (WGLEW_NV_render_texture_rectangle)
     pAttrib[i++] = WGL_TEXTURE_RECTANGLE_NV;
if (WGLEW_ATI_render_texture_rectangle)
     pAttrib[i++] = WGL_TEXTURE_RECTANGLE_ATI;  

So on ATI you use WGL_BIND_TO_TEXTURE_RGBA_ARB for rectangles too? Am I right?

Originally posted by Matt Zamborsky:
So on ATI you use WGL_BIND_TO_TEXTURE_RGBA_ARB for rectangles too? Am I right?
Yes, like a ‘power of two’ texture.

Please post those specs somewhere so we can get the enumerants, too.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.