Textures per texture unit?

Oh well, looks like I really cannot get it so I am going to ask to you…

Basically, I am just wondering about the so called “textures per texture unit” some sites are speaking about when referring to video cards, for example:

8 pipes, 1 texture unit per pipe, 8 textures per texture unit

GF TI4x00
4 pipes, 2 texture units per pipe, 4 textures texture unit.

8 pipes, 1 texture unit per pipe, 16 textures per texture unit

Now I would like to ask how this “textures per texture unit” works in GL - I currently think it’s related to the vertex/fragment programmability only and not accessible by standard (non-programmable) GL… I read some specs (mainly NV_register_combiners and something other) but I really cannot figure out how those “textures” works. However, I can see something of that may be in NV_vertex_program (which actually, supports 8 textures).

I am going to check out NV_fragment_program, NV_vertex_program2 and all the ARB-related stuff to see how this works, but I also would like to know your opinion about those “textures per texture unit”

Consider that the above data is correct (took from tom’s hardware guide) but then, considering GL_MAX_ACTIVE_TEXTURES is 4 on GFTi4x00, something is really strange to me…

Thank you!

GL_MAX_ACTIVE_TEXTURES simply tells you, how many textures can be bound at the same time. If this is 4, you will be able to bind 4 textures.
One for each GL_ARB_TEXTUREn_ARB.


Well, I figure out I have not explained well enough what was the purpose of my post.

I have perfectly understood that in “simple” GL you can have only GL_MAX_ACTIVE_UNITS at once, my question was about another thing, I’ll try to make the point again.

On some hardware sites - So it may be just marketing hype or directX related stuff, I can read of something which is called “textures per texture unit”.

This actually does not map directly to any GL feature I know even if I read of something which may be similar on “advanced extensions” like NV_fragment_program.

I recall what I wrote about the Ti4x00 - Note that you can find the same info on any hardware-related website:
4 pipes, 2 texture units per pipe, 4 textures texture unit

Obviously, pipes does not count by GL’s point of view. We know that GL_MAX_ACTIVE_TEXTURES is 4 but we also know we have 2 texture units so, what this “textures per texture unit” means? Is this applicable only to DirectX? If it applies to GL, how this should be interpreted?

I actually think this is fragment-program related stuff but I would like to have a confirm. I’ll write a simple query program to see that. This is because NV_fragment_program (which I’ll read more carefully a day) speaks about “dummy texture units”, MAX_TEXTURE_COORDS and MAX_IMAGE_UNITS… This may be the meaning of the “marketing” term “textures per texture unit”.

Anyone got an idea about these?