gallium: add pipe_screen::get_driver_query_group_info
Driver queries are organized as a single hierarchy where queries are categorized into groups. Each group 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. v2: add group type (CPU/GPU) Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Martin Peres <martin.peres@free.fr>
This commit is contained in:

committed by
Martin Peres

parent
ce01c0af70
commit
f137f5c691
@@ -588,3 +588,13 @@ query at the specified **index** is returned in **info**.
|
|||||||
The function returns non-zero on success.
|
The function returns non-zero on success.
|
||||||
The driver-specific query is described with the pipe_driver_query_info
|
The driver-specific query is described with the pipe_driver_query_info
|
||||||
structure.
|
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.
|
||||||
|
@@ -752,6 +752,12 @@ union pipe_color_union
|
|||||||
unsigned int ui[4];
|
unsigned int ui[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum pipe_driver_query_group_type
|
||||||
|
{
|
||||||
|
PIPE_DRIVER_QUERY_GROUP_TYPE_CPU = 0,
|
||||||
|
PIPE_DRIVER_QUERY_GROUP_TYPE_GPU = 1,
|
||||||
|
};
|
||||||
|
|
||||||
struct pipe_driver_query_info
|
struct pipe_driver_query_info
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
@@ -760,6 +766,14 @@ struct pipe_driver_query_info
|
|||||||
boolean uses_byte_units; /* whether the result is in bytes */
|
boolean uses_byte_units; /* whether the result is in bytes */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct pipe_driver_query_group_info
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
enum pipe_driver_query_group_type type;
|
||||||
|
unsigned max_active_queries;
|
||||||
|
unsigned num_queries;
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -236,6 +236,17 @@ struct pipe_screen {
|
|||||||
unsigned index,
|
unsigned index,
|
||||||
struct pipe_driver_query_info *info);
|
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);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user