I take it binding a lot of small textures is bad...

Originally posted by jwatte:
If you have your light map be a 512x512 and that contains ALL the light maps for a level, then that will just stay on the card, period. The rasterizer is still happy, because it’s likely to tile the texture in little sub-chunks (on the order of 8x8 in size). Thus, if you make sure to align each little light map snippet on an 8x8 boundary, you’re likely to get good throughput per primitive being rasterized, as each triangle will have locality of reference.

jwatte, where do you get this information from? All this stuff about cache performance on the GPU.

What guarantees that this is the case for all cards on the current market? I don’t think the less popular vendors give us this information.

Can you post some links?

Of course the 4k boundery is completely implementation dependent, but I bet that if checked any Radeon of GeForce you’ll find they do this.

V-man: I have no specific link. This is what I gather about how the hardware works, from reading discussions about render-to-texture, attending performance talks from different vendors at trade shows, etc. Last, I run experiments at home to see how much of my deduction actually relates to the real world :slight_smile:

If some vendor who has one percent of the market doesn’t tile his textures, then why would you worry about that case? It’ll still work, just not optimally. If you can optimize for 95% of the market, or optimize for 1% of the market, with about the same amount of work, which one would you do?

Besides, I can’t think of any card where I know this not to be done (that doesn’t mean there aren’t any, of course).