texture formats for fx and radeon


I’m trying to find out exactly what texture formats are supported for the current nvidia and ati cards, but the information i’ve found is incomplete.

It seems that with r300 you have 128-bit and 64-bit fp (wo filtering) with the ATI_texture_float extension, as well as 64-bit fixed-point (w filtering).
These formats are available for any type of texture (1D,2D,3D).

The nv3x is supposed to support 128-bit and 64-bit fp textures, but the current 50 driver does not provide support yet (except for rectangle textures w/o filtering).

Now here’s where i get confused. According to what i’ve read nv3x also supports a 48-bit fixed-point type (12/channel) with filtering. However, when a ask for this type
i get 8/channel every time. I set up the texture with glTexImage and and then I query
the actual bits given with glGetTexLevelParameter with GL_TEXTURE_GREEN_SIZE, etc. I thought that this query might be mistaken so I wrote a simple fragment program to test the resolution and sure enough I am only getting 8.

First of all, is my information as to formats supported correct, and second, does anyone know more about the nv3x formats currently supported?

I am testing on an fx5900 i bought last week (so i assume the driver is relatively current).

NVidia only supports unfiltered rectangle textures with no wrapping or mip-mapping for floating point formats because that’s all the hardware supports. The running theory is that NVidia decided that people would only be using float textures as render targets for multipass rendering applications. In such circumstances, those restrictions don’t hamper anyone. For this reason, though, floating point textures are only supported by NVidia under OpenGL and not Direct3D (which has somewhat steaper requirements for float textures).