typical number of texture units?

BlitzMax Forums/BlitzMax Programming/typical number of texture units?

Chris C(Posted 2005) [#1]
GLGraphics(640,480)
Local tu:Int=0
glGetIntegerv (GL_MAX_TEXTURE_UNITS_ARB,Varptr tu)
Print "texture units "+tu

my nvidia fx5200 has 4 texture units please add info on this thread if your card isnt mentioned.

Thanks


tonyg(Posted 2005) [#2]
S3 Supersavage = 2


FlameDuck(Posted 2005) [#3]
GeForce6800 Go = 4


LAB[au](Posted 2005) [#4]
GeForce Go 7800 Gtx = 4


Kernle 32DLL_2(Posted 2005) [#5]
Geforce 5600 has texture units 4


fredborg(Posted 2005) [#6]
Radeon X800 Pro = 8


Perturbatio(Posted 2005) [#7]
4 units for me


Shagwana(Posted 2005) [#8]
Radeon 9800pro = 8


EOF(Posted 2005) [#9]
Radeon X600 Pro = 8


WendellM(Posted 2005) [#10]
Radeon 9600 Pro = 8


Gabriel(Posted 2005) [#11]
Geforce 6600GT - Your test says 4. My manual says 8.


Jay Kyburz(Posted 2005) [#12]
g4 ibook. (ATI Mobility Radeon 9550) = 8

What is a texture unit?


Tom(Posted 2005) [#13]
x800 Pro = 8

Chris, if this is for your engine stuff, have a MAXTEXUNITS Global in your code and grab the hardware texture unit count early on. Then access each unit accordingly:

For u = 0 until MAXTEXUNITS
...

Or when doing a texture unit specific setting like:

(from an entity type)

Method SetSurfTexture(tex:TTexture, srfIndex:Int, texUnit:Int = 0)
If texUnit > MAXTEXUNITS-1 Then Return 'out of range
...

Safer than Bin Laden :P

Jay: Texture units are hardware components on a GFX card that hold texture data for rendering. Before rendering any textured geometry you have to specify what texture each texture unit will use.

The amount of texture units determines how many layers of multitexturing you can do in 1 render pass.

For example to do lightmapping in 1 render pass you need 2 texture units. Otherwise you'd have to render the same geometry twice (slower) by first loading the texture unit with the color/diffuse texture..render, then load the lightmap and render again.

Byeeeee!
Tom


smilertoo(Posted 2005) [#14]
your program says i have 4 on my FX5900


FlameDuck(Posted 2005) [#15]
Radeon X600XT = 8


Leiden(Posted 2005) [#16]
8 Texture Units - Geforce 6600GT

@Gab: You are correct, the NV43 (6600) indeed has 8 Pixel/Texture units but its more of a hybrid design. That is, its not a 8x1 or 4x2 design which is usually more common. The GL_MAX_TEXTURE_UNITS_ARB is most probably picking it up wrong.


Gabriel(Posted 2005) [#17]
I can't be sure what it *means* but it *says* 8 texture units.


Leiden(Posted 2005) [#18]
Oops- Edited my post as you replied :)


Chris C(Posted 2005) [#19]
I'm doing multi-texture on landscapes and I wondered what was a typical number of multi-textures usable in the wild, I'll probably get away with only using 2 though...

basically for those of you that dont know, for each texture unit you have, you can put that number of textures on a tri/quad in one pass.


Gabriel(Posted 2005) [#20]
@Gab: You are correct, the NV43 (6600) indeed has 8 Pixel/Texture units but its more of a hybrid design. That is, its not a 8x1 or 4x2 design which is usually more common. The GL_MAX_TEXTURE_UNITS_ARB is most probably picking it up wrong.


Aha, that would probably explain it then. God it must be hell writing 3d engines with all the possible misreporting that drivers can do to cope with.


Leiden(Posted 2005) [#21]
You could have multiple passes of the same tri/quad to have more textures, in fact most games use two pass shading on objects. Its slower, but it looks nice. Also graphics cards usually have the capability to do multiple passes per cycle therefore the speed hit wouldnt be that much.