During Ian Romanick's discussion at FOSDEM about, "GPU hardware detection for automatic configuration of game quality/performance settings", Martin Peres of the Nouveau project brought up performance counters for being able to read exposed information by the hardware that helps driver developers and game developers with useful real-time hardware performance information such as about cache usage, PCI-E bandwidth utilization, and other hardware attributes.
The details about Romanick's interesting talk will be shared in a separate article, but when it comes to performance counters for open-source Linux GPU drivers it is another area where open-source drivers lag behind the proprietary graphics drivers. The open-source state comes down to:
Intel: They don't support any performance counters for their graphics hardware by the open-source driver. Intel has lots of developers to work on the support, but for now at least they're being blocked by the Intel legal department. It looks like Intel's trying to keep their graphics performance counters a closely-guarded secret since it exposes so many low-level hardware details.
The Intel GPU performance counters have been described as being extremely programmable and do allow for on-the-fly adjustments. The available counters on the graphics side are said to be similar to Intel's CPU performance counters but with even more options for developers. The problem is that it's too much and so Intel doesn't want to make it all public. Intel Open-Source Technology Center developers are pushing for portions of the performance counters infrastructure to be opened at least for the most important and commonly sought after counters.
Nouveau: Martin Peres says the reverse-engineered NVIDIA graphics driver has figured out how to read the GeForce performance counters, but they really aren't sure what the data means.
Radeon: That's unknown since no Radeon developers showed up to FOSDEM.
When the open-source graphics drivers on Linux begin to expose their hardware performance counters, the data will likely be exposed to application/game developers through an OpenGL extension like the already existing GL_AMD_performance_monitor.