[Mesa-dev] [PATCH 0/9] gallium: batch query objects and related cleanups

Nicolai Hähnle nhaehnle at gmail.com
Fri Nov 13 07:57:19 PST 2015


Hi,

the main point of this patch series is to introduce batch query objects.

For AMD_performance_monitor, hardware may not be able to start and stop
performance counters independently of each other. The current query interface
does not fit such hardware well.

With this series, drivers can mark driver-specific queries with the
PIPE_DRIVER_QUERY_FLAG_BATCH flag, which indicates that those queries require
the use of batch query objects. Batch query objects are created with an
immutable list of queries, which requires a new entry point in pipe_context,
but apart from that they use the same begin_query/end_query/etc. entry points.

The radeon-specific part that actually makes use of this feature is not quite
ready yet, but I already wanted to get this part out there for feedback.
Please review!

Thanks,
Nicolai
---
 gallium/auxiliary/hud/hud_context.c       |   24 ++
 gallium/auxiliary/hud/hud_driver_query.c  |  249 +++++++++++++++++++++++++-----
 gallium/auxiliary/hud/hud_private.h       |   13 +
 gallium/drivers/nouveau/nvc0/nvc0_query.c |    4 
 gallium/include/pipe/p_context.h          |    3 
 gallium/include/pipe/p_defines.h          |   36 ++--
 mesa/state_tracker/st_cb_perfmon.c        |  247 ++++++++++++++++-------------
 mesa/state_tracker/st_cb_perfmon.h        |   32 +++
 mesa/state_tracker/st_context.h           |    3 
 9 files changed, 437 insertions(+), 174 deletions(-)



More information about the mesa-dev mailing list