Fragment Shader Complexity


The vast majority of applications are fragment bound on current Tegra devices. Optimizing fragment shaders is best done in a directed way, based on total contribution to the scene. PerfHUD ES can help you to identify the key shaders (those contributing significantly to render-time), to focus this process. All fragment shaders with a significant contribution to the scene should be reviewed carefully and optimized where possible.

You should now have a folder containing a set of fragment shader source files, along with shader_readme.txt which shows how much of the render time is due to each shader.

Check each significant fragment shader (usually only the top 5 or so buckets contribute >90% of perf), and apply standard Tegra optimizations:

You can perform much of the analysis (and even experimentation using PerfHUD's dynamic shader re-compilation system) from within PHES. However, it is difficult to identify true unique shaders. Multiple instances of a single vertex shader could be used with a single fragment shader, which would result in that fragment shader spanning many buckets.

 


NVIDIA® GameWorks™ Documentation Rev. 1.0.200608 ©2014-2020. NVIDIA Corporation. All Rights Reserved.