Libpciaccess Ported To Windows To Help Nouveau
The generic PCI access library (libpciaccess) used on Linux and other POSIX platforms by the X.Org Server and other components has now been ported to Windows via Cygwin. This porting to Windows was done to help in the Nouveau open-source NVIDIA reverse-engineering process.
Samuel Pitoiset is the former Google Summer of Code developer on the Nouveau project that was working on basic compute support as part of his broader project for Nouveau to support performance counters and provide an open-source NVPerfKit for Linux.
NVIDIA's NVPerfKit performance tools are Windows-only so Samuel Pitoiset ended up having to do some reverse-engineering work on Windows for understanding the NVIDIA hardware counters. The tool used by Nouveau for reverse-engineer, EnvyTools, depends upon libpciaccess for interfacing with the graphics card. So in turn he ported libpciaccess to Windows/Cygwin to run the Nouveau EnvyTools reverse-engineering programs on Windows.
This work was successful in helping him understand the performance counters on the NVIDIA Tesla. The Windows/Cygwin support uses the WinIO library and has now been merged to master in upstream libpciaccess. More details on this work can be found via Samuel's blog post.
Samuel Pitoiset is the former Google Summer of Code developer on the Nouveau project that was working on basic compute support as part of his broader project for Nouveau to support performance counters and provide an open-source NVPerfKit for Linux.
NVIDIA's NVPerfKit performance tools are Windows-only so Samuel Pitoiset ended up having to do some reverse-engineering work on Windows for understanding the NVIDIA hardware counters. The tool used by Nouveau for reverse-engineer, EnvyTools, depends upon libpciaccess for interfacing with the graphics card. So in turn he ported libpciaccess to Windows/Cygwin to run the Nouveau EnvyTools reverse-engineering programs on Windows.
This work was successful in helping him understand the performance counters on the NVIDIA Tesla. The Windows/Cygwin support uses the WinIO library and has now been merged to master in upstream libpciaccess. More details on this work can be found via Samuel's blog post.
3 Comments