Max simultaneous textures? How many typical?
I need to know what most typical hardware use as max simultaneous textures?
My program runs on 16 at a time. Is that ok for most cards? Also ps 2.0 and vs 2.0.
Thanks,
Devin
Quote:Original post by devroniousWhat on earth are you doing with 16 textures at once? Even if it works, you're going to make a mess of your texture cache with that much stuff going on at once.
My program runs on 16 at a time.
Seems to work fine on my system. Shader has 16 samplers, is that the same is simultaneous textures concept?
texture tex0;
texture tex1;
texture tex2;
texture tex3;
texture tex4;
texture tex5;
texture tex6;
texture tex7;
texture tex8;
texture tex9;
texture tex10;
texture tex11;
texture tex12;
texture tex13;
texture tex14;
texture tex15;
sampler samp0 = sampler_state { texture = (tex0); };
sampler samp1 = sampler_state { texture = (tex1); };
sampler samp2 = sampler_state { texture = (tex2); };
sampler samp3 = sampler_state { texture = (tex3); };
sampler samp4 = sampler_state { texture = (tex4); };
sampler samp5 = sampler_state { texture = (tex5); };
sampler samp6 = sampler_state { texture = (tex6); };
sampler samp7 = sampler_state { texture = (tex7); };
sampler samp8 = sampler_state { texture = (tex8); };
sampler samp9 = sampler_state { texture = (tex9); };
sampler samp10 = sampler_state { texture = (tex10); };
sampler samp11 = sampler_state { texture = (tex11); };
sampler samp12 = sampler_state { texture = (tex12); };
sampler samp13 = sampler_state { texture = (tex13); };
sampler samp14 = sampler_state { texture = (tex14); };
sampler samp15 = sampler_state { texture = (tex15); };
texture tex0;
texture tex1;
texture tex2;
texture tex3;
texture tex4;
texture tex5;
texture tex6;
texture tex7;
texture tex8;
texture tex9;
texture tex10;
texture tex11;
texture tex12;
texture tex13;
texture tex14;
texture tex15;
sampler samp0 = sampler_state { texture = (tex0); };
sampler samp1 = sampler_state { texture = (tex1); };
sampler samp2 = sampler_state { texture = (tex2); };
sampler samp3 = sampler_state { texture = (tex3); };
sampler samp4 = sampler_state { texture = (tex4); };
sampler samp5 = sampler_state { texture = (tex5); };
sampler samp6 = sampler_state { texture = (tex6); };
sampler samp7 = sampler_state { texture = (tex7); };
sampler samp8 = sampler_state { texture = (tex8); };
sampler samp9 = sampler_state { texture = (tex9); };
sampler samp10 = sampler_state { texture = (tex10); };
sampler samp11 = sampler_state { texture = (tex11); };
sampler samp12 = sampler_state { texture = (tex12); };
sampler samp13 = sampler_state { texture = (tex13); };
sampler samp14 = sampler_state { texture = (tex14); };
sampler samp15 = sampler_state { texture = (tex15); };
It's in the caps. Caps viewer on my card (Radeon X1950XTX) tells me that MaxSimultaneousTextures is equal to 8.
I concur with Promit - multi-pass might well be a more performant option...
Not sure about SM1, but SM2 requires 16 samplers with a maximum of 32 fetches, again not sure about SM3 but I think its the same 16 samplers but unlimited fetches...
hth
Jack
Quote:Original post by Sc4FreakThis is correct for the older fixed function texture cascade.
It's in the caps. Caps viewer on my card (Radeon X1950XTX) tells me that MaxSimultaneousTextures is equal to 8.
Not sure about SM1, but SM2 requires 16 samplers with a maximum of 32 fetches, again not sure about SM3 but I think its the same 16 samplers but unlimited fetches...
hth
Jack
Quote:Original post by jollyjeffers
I concur with Promit - multi-pass might well be a more performant option...
NO. Don't even think about it.
Multi pass solutions will always require some kind of alpha blending. The relative alpha blending performance gets worse with every new generation. Additional you would need more bandwidth which is a critical resource, too. The texture cache wouldn’t be that much a problem as with many pixels in flight the GPU can order texture fetch’s in a way that doesn’t crash the cache.
Quote:Not sure about SM1, but SM2 requires 16 samplers with a maximum of 32 fetches, again not sure about SM3 but I think its the same 16 samplers but unlimited fetches...
hth
Jack
SM 1.1 - 1.3: 4 samplers one read per sampler.
SM 1.4 : 6 samplers two reads per sampler.
SM 2.0 : 16 samplers ; 32 reads
SM 2.A : 16 samplers ; 512 reads
SM 2.B : 16 samplers ; 512 reads
SM 3.0 : 16 samplers ; >= 512 reads
SM 4.0 : 16 samplers (can read from 128 diffrent resources) ; nearly unlimited reads.
Oh thanks guys, I thank you for your help!
So if I require shader model 2 or greater for my program than I'm OK using up to 16 samplers in one of my shader programs?
I don't want to stage them as it isn't about staging but rather that each vertex may access a different texture and use that texture instead of another. So that a huge vertex buffer may use the texture data from up to 16 different textures.
So if I require shader model 2 or greater for my program than I'm OK using up to 16 samplers in one of my shader programs?
I don't want to stage them as it isn't about staging but rather that each vertex may access a different texture and use that texture instead of another. So that a huge vertex buffer may use the texture data from up to 16 different textures.
Quote:Original post by devroniousYes [smile]
So if I require shader model 2 or greater for my program than I'm OK using up to 16 samplers in one of my shader programs?
Jack
Aaaah, thanks I feel safe now. My whole system is built around this ability for speed sake.
-Devin
-Devin
Just a question; if i want to use lots of different photos as textures, say 100 different photos (all in same scene) on different cubes, can i do this?
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement