cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

nadro
Journeyman III

Texture Array (high TexCostOfFiltering and TexelFetchCount)

Problem with performance on Radeon cards.

In last time I've done some benchmarks for texture arrays in OpenGL. I compared texture array performance to standard textures. I used the latest version of GPU Perf Studio for profiling. After benchmarks I see that texture array sampling have 2x higher (worse) result in TexCostOfFiltering (200 to 100) and TexelFetchCount, but it have 2x lower (better) result in TexMissRate. I'm really interesting why sampling of texture array is 2x more expensive than standard textures. It looks like when we sample a texture array our sampling is doubled. When I was turn off a texture filtering I had the same value of TexCostOfFiltering, TexelFetchCount, TexMissRate for both array and standard textures. Is this normal behaviour for Radeon cards? I think that this is bug in video drivers when filtering is turn on, because I don't see this slowdown on nV GeForce cards when I check performance of texture arrays and in OpenGL Texture Array spec I don't see any info about extra filtering interpolation cost for texture arrays.

0 Likes
8 Replies
pboudier
Staff

 

did you measure this performance delta on an actual rendering apps ? (with a real timing counter). 

the opengl spec has no requirement of performance, so you can't really look at it to get any indication. usually performance is driven by GPU HW design choices and how much area we can afford to devote to a specific feature.

Pierre B.

 

 

0 Likes

I used this application for test (should work properly with drivers supported OGL >= 3.2; alt+F4 for closing app, Y at startup - texture array, other key on startup - standard textures): http://www.sendspace.com/file/91rhgc

I know that FPS isn't too good as units for compare performance results because it isn't linear value, better will be miliseconds, but difference in performance between array and standard textures in this example is pretty large, so FPS for compare results is enough in this case I think. When I saw this difference in FPS, I decided to profiling my app in GPUPerfStudio and results I reported in my first post.

Yes, I know that OpenGL spec doesn't say anything about performance, but I mean that in specs looks like filtering for texture arrays should work similar to filtering for standard textures, because we don't have any interpolation between layers.

0 Likes

I did a quick experiment on my laptop, and I got the same fps with both y/n ...

 

there should be a performance hit only if you change the array index in a very fine granularity (issues with conflicts in the cache)

Pierre B.

0 Likes

Thanks for info. Now I checked HD5450 and I also see that FPS is the same. I will check HD4850 and HD4770 tomorrow and I will report my results. Results from my first post is from test of HD2600XT, so maybe problem is only on some models or series (eg. HD2xxx)?

0 Likes

IMHO 2xxx cards maybe do not support texture arrays. so they are emulated as 3D textures and it sample from two layers.

0 Likes
nadro
Journeyman III

I've already checked HD4850 and I get the same results as on HD5450, so all its ok (TexCostOfFiltering, TexelFetchCount and TexMissRate values are the same for both array and standard textures). Maybe is as nou said, that HD2xxx emulate texture arrays? But it will be really strange, that r6xx doesn't native support one of the common DX10 feature... Maybe You know how situation looks on HD3xxx series (which use improved HD2xxx chip)? I still hope that it's a bug in video drivers, because texture arrays performance is very important in my current project (which is target to all DX10 cards).

0 Likes

there is no specific emulation for hd2xxx for texture arrays.

there were lots of changes in the texture unit since hd2600, so it is possible that performance was actually lower in that initial dx10 hardware for texture arrays.

(for instance hd2600 could do single cycle fp16 filtering, which was removed in all other products...)

Pierre B.

0 Likes

Thanks for this info. I will try get some of HD3xxx card, but if someone here have an access to thats cards I will be very thankfull for share a results.

Update:

I already checked Radeon HD3850 and it seems like texture arrays performance on this card is in norm, so only on HD2xxx series (I checked HD2600XT and HD2900PRO) cost of usage texture arrays is 2x higher compare to standard 2d textures (only when we use a some type of filtering, without a texture filtering a performance is ok).

Cheers,

0 Likes