NVIDIA ShaderPerf is a command-line shader profiling utility and C API that reports detailed shader performance metrics for a wide range of GPUs.
ShaderPerf wokrs with GLSL vertex and fragment programs, HLSL vertex and pixel shaders and Cg shaders.
ShaderPerf 2.0 includes several new features:
* GeForce 8 series support
* Pixel Shader Differencing
* Vertex Shader Analysis
ShaderPerf outputs the following for any shader that you analyze:
* Cycle count
* Register usage
* Driver-optimized shader instruction list
* Vertex and pixel throughput estimates
More information and download HERE.
NVIDIA ShaderPerf 2.0 allows you to determine how expensive a given vertex or pixel shader might be across a range of GPUs and drivers. This can be useful in many ways.
- Modify‐and‐Profile Cycle. While tuning a shader, you can get immediate feedback on the resulting cycle count and throughput to determine if the performance improvement scheme has succeeded. This rapid feedback cycle can cut the performance tuning time significantly.
- Profile GPUs Virtually. Because the target GPU doesn’t need to be in the system, you can look at tuning and optimizing a version of your effects for a consumer level GPU with your development system intact. No more replacing graphics cards and drivers just to test out new optimizations.
- Daily Regressions. ShaderPerf can be used in conjunction with source code control to continually test shader source code against established budgets to make sure that no performance regressions are allowed to slip into the master source base.
- Pixel Shader Differencing. For GeForce 6 and 7 Series GPUs, ShaderPerf has the ability to detect differences between two pixel shaders. It accomplishes this by running the shaders through a simulator with multiple random input vectors to determine if the resulting output is the same. This is useful when trying new approaches to solving a problem since to see if there is a change in the results from the shader.