PDA

View Full Version : Current driver support status for rectengular textures



holdeWaldfee
08-15-2007, 05:26 AM
Hello!

Since I am very limited on hardware available for testing, I wanted to ask how well current drivers for ATI/NVIDIA support rectangular textures and NPOT textures.

Am I correct that the best supported extensions for this are ARB_texture_rectangle and ARB_texture_non_power_of_two?

Is it correct that ATI and NVIDIA supports ARB_texture_rectangle with hardware that supports SM2.0 or better, and ARB_texture_non_power_of_two is only supported by NVIDIA?
(according to http://delphi3d.net/hardware/allexts.php)


Thanks a lot for your help on this!

mfort
08-15-2007, 07:31 AM
nvidia:
RECT + NPOT fully supported on recent HW
NPOT could be problem on older NV HW or drivers.
RECT have broader support.

Intel:
even the latest integrated Intel gfx chip
cannot do RECT nor NPOT. So beware! Lot of
computers today have it (especially laptops).

ATI:
RECT for sure, NPOT probably as well.

Jan
08-15-2007, 07:59 AM
ATI supports NPOT, too, with their more recent cards (my X1600 does support it).

However, NPOT is really slow on ATI, compared with RECT. On nVidia, AFAIK they are both nearly equally fast. I would suggest you to use ARB_texture_rectangle, as long as you don't need mipmapping and more than linear filtering.

Jan.

holdeWaldfee
08-15-2007, 08:05 AM
So is it save to asume that everything equal or newer than R300 and NV30 generation supports RECT with newest drivers?
And how does it look with NPOT?

Damn, it is REALLY frustrating that both vendors don't supply a extension support matrix for their products based on the current driver revision!
It is their damn business not ours.


We fortunately do not (have to) support the Intel crap.

holdeWaldfee
08-15-2007, 08:09 AM
I would suggest you to use ARB_texture_rectangle, as long as you don't need mipmappingWell, I want to use this for textures, not just FBOs.

So can I forget to use RECT with mipmapping if my minimum hardware requirement is R300 and NV30?

ZbuffeR
08-15-2007, 08:20 AM
This database, even if not complete because filed by users, helps : http://www.delphi3d.net/hardware/index.php
Just download the soft, run it, and upload.

http://www.delphi3d.net/hardware/extsupport.php?extension=GL_ARB_texture_non_power_ of_two
http://www.delphi3d.net/hardware/extsupport.php?extension=GL_ARB_texture_rectangle

holdeWaldfee
08-15-2007, 08:25 AM
Yes, I posted a link to this already.
But as you said, it is created by users and might not be up to date.

And it also doesn't get into detail like if mipmapping is supported with RECT, etc.

mfort
08-15-2007, 09:58 AM
Do not expect that mipmapping is supported on RECT
textures. It is only on POT or NPOT.
Some ATI boards can do NPOT despite it is
not announced through extension string.
They implement it in half way. Some limitation exists, like not all wrap modes are supported.

Jan
08-15-2007, 10:05 AM
Originally posted by mfort:
Do not expect that mipmapping is supported on RECT textures. That phrases it a bit optimistic. Actually rectangle textures NEVER support mipmapping, according to the spec.

See http://opengl.org/registry/specs/ARB/texture_rectangle.txt issue 1:

"... it also has limitations such as the absence of both mipmapping and the GL_REPEAT and GL_MIRRORED_REPEAT wrap modes ... "


For textures, it is really not suited well. Can't you just resize your textures to be POT ?

Jan.

zed
08-15-2007, 01:40 PM
nv3x ....... NPOT not supported (only software)
nv4x > ..... NPOT supported

on a nv4x, speedwise theres practically no difference between the two, my testing showed only a few % between NPOT + texture_rectangle_arb

Humus
08-16-2007, 09:29 AM
R300 and up supports RECT.
R300 and up supports NPOT as long as you stay within the same restrictions as in RECT.
R600 supports NPOT unconditionally.

I'd recommend NPOT over RECT for everything, especially for R300/R400 series since they don't support RECT natively but has to normalize the texture coordinates through shader modification.

arekkusu
08-17-2007, 04:45 AM
On Mac OS X things are a little different; RECT is widely supported because the window server etc uses it, and there is an effort made to support things equally across vendors.

RECT is supported on:
R100 and up (all Mac ATI renderers newer than Rage128)
NV11 and up (all Mac NV renderers)
GMA 950 (all Mac Intel renderers)

NPOT is currently supported on:
R500 and up (but < R600 can fall back to software)
NV40 and up
GMA 950

And here's an extension support matrix (http://homepage.mac.com/arekkusu/bugs/GLInfo_1048PPC.html) for all Mac renderers.

Usage notes:
NPOT is nice if you want to use normalized coordinates, and works on R500 natively as long as you don't use mipmaps, repeat/mirror modes, or 3D/cube textures.

On the other hand, for some applications RECT denormalized coordinates are more natural. And on NV30, if you want to use float texture formats you are stuck with RECT anyway.