GL_TEXTURE_2D dimensions don't have to be POW ?

To my impression, for GL_TEXTURE_2D type of texture, the dimension must be power of twos.

But it seems now it’s not a must.

“glTexImage2D(GL_TEXTURE_2D … )” function call can accept non-power-of-two width/height without problems .

I just wondering if someone can confirm this change. Thanks. BTW, I am using a Nvidia card.

The ARB_texture_non_power_of_two extension relaxes the power-of-two restriction.

Thanks. Now I know I don’t have to use GL_TEXTURE_RECTANGLE for NPOW dimension textures :slight_smile:

FYI, because this extension is core, AMD cards don’t include the name in the extensions strings, but it still works.

http://www.opengl.org/wiki/index.php/NPOT_Textures

Thanks guys for your kind help :slight_smile:

They don’t include it, when the extension is not fully supported (fallback in software in some cases). But can be used under some restrictions (Conditional NPOT in DX terminology).
Latest DX10-level AMD cards include GL_ARB_texture_non_power_of_two in extension string.

To make sure that the software fallback will not occur and provided your GL implementation is not screwed up, you may check the device ID using WinAPI which tells you exactly what GPU you have (nvidia has a nice table somewhere). Maybe this is the only way of detecting this.