Driver queries are organized as a single hierarchy where queries are categorized into groups. Each goup has a list of queries and a maximum number of queries that can be sampled. The list of available groups can be obtained using pipe_screen::get_driver_query_group_info.
This will be used by GL_AMD_performance monitor. Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> --- src/gallium/docs/source/screen.rst | 10 ++++++++++ src/gallium/include/pipe/p_defines.h | 7 +++++++ src/gallium/include/pipe/p_screen.h | 11 +++++++++++ 3 files changed, 28 insertions(+) diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst index e0fd1a2..b698492 100644 --- a/src/gallium/docs/source/screen.rst +++ b/src/gallium/docs/source/screen.rst @@ -580,3 +580,13 @@ query at the specified **index** is returned in **info**. The function returns non-zero on success. The driver-specific query is described with the pipe_driver_query_info structure. + +get_driver_query_group_info +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Return a driver-specific query group. If the **info** parameter is NULL, +the number of available groups is returned. Otherwise, the driver +query group at the specified **index** is returned in **info**. +The function returns non-zero on success. +The driver-specific query group is described with the +pipe_driver_query_group_info structure. diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index a8ffe9c..4409789 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -759,6 +759,13 @@ struct pipe_driver_query_info boolean uses_byte_units; /* whether the result is in bytes */ }; +struct pipe_driver_query_group_info +{ + const char *name; + unsigned max_active_queries; + unsigned num_queries; +}; + #ifdef __cplusplus } #endif diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h index ac88506..815c321 100644 --- a/src/gallium/include/pipe/p_screen.h +++ b/src/gallium/include/pipe/p_screen.h @@ -228,6 +228,17 @@ struct pipe_screen { unsigned index, struct pipe_driver_query_info *info); + /** + * Returns a driver-specific query group. + * + * If \p info is NULL, the number of available groups is returned. + * Otherwise, the driver query group at the specified \p index is returned + * in \p info. The function returns non-zero on success. + */ + int (*get_driver_query_group_info)(struct pipe_screen *screen, + unsigned index, + struct pipe_driver_query_group_info *info); + }; -- 2.3.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev