Hello, A series I have waited too long to re-submit, but I recently refactored the code and fixed some minor issues.
This patchset enables GL_AMD_performance_monitor for svga, freedreno, r600, radeonsi and nvc0 drivers. This code has been tested with Nouveau (NVD9 and NVE7) but it should also work with other drivers. All piglit tests, including API and measurement tests are okay. Feel free to make a review. Changes since v1: * add PIPE_DRIVER_QUERY_TYPE_BYTES (PATCH 02/15) * rebased on master since galahad driver has been removed Christoph Bumiller (1): st/mesa: implement GL_AMD_performance_monitor Samuel Pitoiset (14): gallium: add pipe_screen::get_driver_query_group_info gallium: add new fields to pipe_driver_query_info gallium: add new numeric types to pipe_query_result gallium: replace pipe_driver_query_info::max_value by a union gallium: make pipe_context::begin_query return a boolean gallium: add util_get_driver_query_group_info svga: implement pipe_screen::get_driver_query_group_info freedreno: implement pipe_screen::get_driver_query_group_info radeon: implement pipe_screen::get_driver_query_group_info nvc0: implement pipe_screen::get_driver_query_group_info docs: mark GL_AMD_performance_monitor for the 10.6.0 release nvc0: expose more driver-specific query groups nvc0: make begin_query return false when all MP counters are used nvc0: all queries use an unsigned 64-bits integer by default docs/relnotes/10.6.0.html | 1 + src/gallium/auxiliary/Makefile.sources | 1 + src/gallium/auxiliary/hud/hud_driver_query.c | 5 +- src/gallium/auxiliary/util/u_query.c | 50 +++ src/gallium/auxiliary/util/u_query.h | 45 ++ src/gallium/docs/source/screen.rst | 10 + src/gallium/drivers/freedreno/freedreno_query.c | 25 +- src/gallium/drivers/freedreno/freedreno_query.h | 3 +- src/gallium/drivers/freedreno/freedreno_query_hw.c | 3 +- src/gallium/drivers/freedreno/freedreno_query_sw.c | 3 +- src/gallium/drivers/i915/i915_query.c | 3 +- src/gallium/drivers/ilo/ilo_query.c | 3 +- src/gallium/drivers/llvmpipe/lp_query.c | 3 +- src/gallium/drivers/noop/noop_pipe.c | 3 +- src/gallium/drivers/nouveau/nv30/nv30_query.c | 5 +- src/gallium/drivers/nouveau/nv50/nv50_query.c | 3 +- src/gallium/drivers/nouveau/nvc0/nvc0_query.c | 100 ++++- src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 + src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 14 + src/gallium/drivers/r300/r300_query.c | 9 +- src/gallium/drivers/radeon/r600_pipe_common.c | 25 +- src/gallium/drivers/radeon/r600_pipe_common.h | 1 + src/gallium/drivers/radeon/r600_query.c | 16 +- src/gallium/drivers/rbug/rbug_context.c | 8 +- src/gallium/drivers/softpipe/sp_query.c | 3 +- src/gallium/drivers/svga/svga_context.h | 1 + src/gallium/drivers/svga/svga_pipe_query.c | 3 +- src/gallium/drivers/svga/svga_screen.c | 17 +- src/gallium/drivers/trace/tr_context.c | 6 +- src/gallium/include/pipe/p_context.h | 2 +- src/gallium/include/pipe/p_defines.h | 36 +- src/gallium/include/pipe/p_screen.h | 11 + src/mesa/Makefile.sources | 2 + src/mesa/state_tracker/st_cb_perfmon.c | 455 +++++++++++++++++++++ src/mesa/state_tracker/st_cb_perfmon.h | 70 ++++ src/mesa/state_tracker/st_context.c | 4 + src/mesa/state_tracker/st_extensions.c | 3 + 37 files changed, 887 insertions(+), 66 deletions(-) create mode 100644 src/gallium/auxiliary/util/u_query.c create mode 100644 src/gallium/auxiliary/util/u_query.h create mode 100644 src/mesa/state_tracker/st_cb_perfmon.c create mode 100644 src/mesa/state_tracker/st_cb_perfmon.h -- 2.3.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev