[Mesa-dev] [PATCH v3 00/10] GL_AMD_performance_monitor
Samuel Pitoiset
samuel.pitoiset at gmail.com
Thu Apr 2 11:41:39 PDT 2015
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
More information about the mesa-dev
mailing list