8 Replies Latest reply on Dec 2, 2010 2:11 PM by nadro

    Texture Array (high TexCostOfFiltering and TexelFetchCount)

    nadro
      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.

        • Texture Array (high TexCostOfFiltering and TexelFetchCount)
          pboudier

           

          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.

           

           

            • Texture Array (high TexCostOfFiltering and TexelFetchCount)
              nadro

              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.