Hello, A series I started a long time ago but now I need some feedbacks. :-)
This state tracker implements NVIDIA PerfKit 3.0.1 which is currently only available on Windows 7+ for desktop graphics cards. A Linux/Android implementation is provided by NVIDIA but only for NVIDIA Tegra K1. This Gallium state tracker is loosely based on the VDPAU tracker and since it uses the pipe_query interface, other drivers which expose performance counters should be also able to expose them easily through PerfKit. Unlike GL_AMD_performance_monitor, NVIDIA PerfKit allows to monitor multi-passes events and the API supports different types of performance counters (GPU, CPU, OpenGL). Currently, only MP counters for NVC0:NVE4 Nouveau drivers are exposed. To be able to use NVIDIA PerfKit from your OpenGL applications, you will need to install the wrapper library which includes the headers of the API. You can download this library from: http://cgit.freedesktop.org/~hakzsam/libperfkit/ The wrapper library contains a large number of unit tests (~120) that helped me to understand the API. More than 85% of test compliance for mesa. Feel free to make a review of the perfkit state tracker and libperfkit. Thanks! Samuel Pitoiset (3): util: move LIST_FIRST_ENTRY from nv30_query.c to list.h util: add LIST_MOVE_TAIL to list.h st/perfkit: add a state tracker for NVIDIA PerfKit configure.ac | 30 ++ src/gallium/Makefile.am | 4 + src/gallium/drivers/nouveau/nv30/nv30_query.c | 3 - src/gallium/state_trackers/perfkit/Makefile.am | 41 ++ .../state_trackers/perfkit/Makefile.sources | 8 + src/gallium/state_trackers/perfkit/context.c | 186 ++++++++ src/gallium/state_trackers/perfkit/counter.c | 522 +++++++++++++++++++++ src/gallium/state_trackers/perfkit/device.c | 91 ++++ src/gallium/state_trackers/perfkit/entrypoint.c | 78 +++ src/gallium/state_trackers/perfkit/monitoring.c | 360 ++++++++++++++ .../state_trackers/perfkit/perfkit_private.h | 145 ++++++ src/gallium/state_trackers/perfkit/util.c | 56 +++ src/gallium/targets/dri-perfkit.dyn | 3 + src/gallium/targets/perfkit/Makefile.am | 123 +++++ src/gallium/targets/perfkit/perfkit.sym | 7 + src/gallium/targets/perfkit/target.c | 1 + src/util/list.h | 12 + 17 files changed, 1667 insertions(+), 3 deletions(-) create mode 100644 src/gallium/state_trackers/perfkit/Makefile.am create mode 100644 src/gallium/state_trackers/perfkit/Makefile.sources create mode 100644 src/gallium/state_trackers/perfkit/context.c create mode 100644 src/gallium/state_trackers/perfkit/counter.c create mode 100644 src/gallium/state_trackers/perfkit/device.c create mode 100644 src/gallium/state_trackers/perfkit/entrypoint.c create mode 100644 src/gallium/state_trackers/perfkit/monitoring.c create mode 100644 src/gallium/state_trackers/perfkit/perfkit_private.h create mode 100644 src/gallium/state_trackers/perfkit/util.c create mode 100644 src/gallium/targets/dri-perfkit.dyn create mode 100644 src/gallium/targets/perfkit/Makefile.am create mode 100644 src/gallium/targets/perfkit/perfkit.sym create mode 100644 src/gallium/targets/perfkit/target.c -- 2.4.2 _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau