diff options
Diffstat (limited to 'src/gallium/include')
-rw-r--r-- | src/gallium/include/pipe/p_defines.h | 12 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_screen.h | 11 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index f59e78a1a9e..51694ea312a 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -397,6 +397,10 @@ enum pipe_flush_flags { #define PIPE_QUERY_PIPELINE_STATISTICS 10 #define PIPE_QUERY_TYPES 11 +/* start of driver queries, + * see pipe_screen::get_driver_query_info */ +#define PIPE_QUERY_DRIVER_SPECIFIC 256 + /** * Conditional rendering modes @@ -649,6 +653,14 @@ union pipe_color_union unsigned int ui[4]; }; +struct pipe_driver_query_info +{ + const char *name; + unsigned query_type; /* PIPE_QUERY_DRIVER_SPECIFIC + i */ + uint64_t max_value; /* max value that can be returned */ + boolean uses_byte_units; /* whether the result is in bytes */ +}; + #ifdef __cplusplus } #endif diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h index 754cfd7c2e6..c487e8ec8a4 100644 --- a/src/gallium/include/pipe/p_screen.h +++ b/src/gallium/include/pipe/p_screen.h @@ -206,6 +206,17 @@ struct pipe_screen { struct pipe_fence_handle *fence, uint64_t timeout ); + /** + * Returns a driver-specific query. + * + * If \p info is NULL, the number of available queries is returned. + * Otherwise, the driver query at the specified \p index is returned + * in \p info. The function returns non-zero on success. + */ + int (*get_driver_query_info)(struct pipe_screen *screen, + unsigned index, + struct pipe_driver_query_info *info); + }; |