Reverse-Engineering Could Yield A Linux NV "PerfKit"
Written by Michael Larabel in Nouveau on 7 October 2013 at 05:39 PM EDT. Add A Comment
Samuel Pitoiset of the Nouveau driver project, and the student who was participating in this year's Google Summer of Code, has made great progress in understanding and documenting NVIDIA's "NV50" GPUs performance counters.

Pitoiset already did basic Nouveau NVC0 compute support for reading NVC0/Fermi performance counters that require a hard-coded compute kernel. He's also committed other performance counter code to the Nouveau Gallium3D drivers this summer.

While GSoC is now over, Samuel has been able to figure out most of the NV50 counters by using his own implementation of the libpciaccess PCI library on Windows 7 to read "pcounter" configurations for the NVPerfKit and GDebugger utilities. He's been able to document most of the generated signals and has published his findings to GitHub. Samuel shared this good news today via his blog.

After completing the documentation process, it would be theoretically possible to develop a NVPerfSDK/PerfKit for Linux. NVIDIA offers "PerfKit" to Windows developers as an advanced software suite for measuring the performance of -- and debugging -- OpenGL and Direct3D applications. The closed-source PerfKit reads these performance counters from the driver to understand bottlenecks and other issues in the game/application under test.

About The Author
Author picture

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter or contacted via

Related Nouveau News
Popular News
Trending Reviews & Featured Articles