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 nvc0 *only* because this extension must only exposes GPU counters. This code has been tested with Nouveau (NVD9 and NVE7). All piglit tests are OK, except "test_counter_info" which fails because min_value is equal to max_value for some queries. This is really a minor issue and this not clearly mentionned in the spec. It can be fixed later. Feel free to make a review. Thanks to Marek and Martin for the previous reviews. Changes since v2: * add group type (CPU/GPU) * fix incorrect query type for radeon and svga drivers * only enable this extension when the underlying driver expose GPU counters * remove support for svga, freedreno and radeon drivers because they don't expose ay GPU counters * get rid of the ring buffer of queries * fix nvc0 groups definition (DEBUG thing) 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 (9): 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 nvc0: define driver-specific query groups docs: mark GL_AMD_performance_monitor on nvc0 for the 10.6.0 release 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/hud/hud_driver_query.c | 5 +- src/gallium/docs/source/screen.rst | 10 + src/gallium/drivers/freedreno/freedreno_query.c | 16 +- src/gallium/drivers/freedreno/freedreno_query.h | 2 +- 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 | 102 ++++- src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 + src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 8 + src/gallium/drivers/r300/r300_query.c | 9 +- src/gallium/drivers/radeon/r600_pipe_common.c | 16 +- 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_pipe_query.c | 3 +- src/gallium/drivers/svga/svga_screen.c | 6 +- src/gallium/drivers/trace/tr_context.c | 6 +- src/gallium/include/pipe/p_context.h | 2 +- src/gallium/include/pipe/p_defines.h | 43 ++- src/gallium/include/pipe/p_screen.h | 11 + src/mesa/Makefile.sources | 2 + src/mesa/state_tracker/st_cb_perfmon.c | 420 +++++++++++++++++++++ src/mesa/state_tracker/st_cb_perfmon.h | 64 ++++ src/mesa/state_tracker/st_context.c | 9 + 31 files changed, 723 insertions(+), 66 deletions(-) create mode 100644 src/mesa/state_tracker/st_cb_perfmon.c create mode 100644 src/mesa/state_tracker/st_cb_perfmon.h -- 2.3.4 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
