From 0015217c1eeb3743785ae5e33d004ef49dba3fa6 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 23 Aug 2017 14:39:55 -0400 Subject: gallium: plumb context priority through to driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rob Clark Reviewed-by: Roland Scheidegger Reviewed-by: Marek Olšák Reviewed-by: Andres Rodriguez Reviewed-by: Wladimir J. van der Laan --- src/gallium/include/pipe/p_defines.h | 21 +++++++++++++++++++++ src/gallium/include/state_tracker/st_api.h | 2 ++ 2 files changed, 23 insertions(+) (limited to 'src/gallium/include') diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index e4d0d63066..42aff60ac4 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -391,6 +391,15 @@ enum pipe_flush_flags */ #define PIPE_CONTEXT_PREFER_THREADED (1 << 3) +/** + * Create a high priority context. + */ +#define PIPE_CONTEXT_HIGH_PRIORITY (1 << 4) + +/** + * Create a low priority context. + */ +#define PIPE_CONTEXT_LOW_PRIORITY (1 << 5) /** * Flags for pipe_context::memory_barrier. @@ -785,8 +794,20 @@ enum pipe_cap PIPE_CAP_TILE_RASTER_ORDER, PIPE_CAP_MAX_COMBINED_SHADER_OUTPUT_RESOURCES, PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET, + PIPE_CAP_CONTEXT_PRIORITY_MASK, }; +/** + * Possible bits for PIPE_CAP_CONTEXT_PRIORITY_MASK param, which should + * return a bitmask of the supported priorities. If the driver does not + * support prioritized contexts, it can return 0. + * + * Note that these match __DRI2_RENDER_HAS_CONTEXT_PRIORITY_* + */ +#define PIPE_CONTEXT_PRIORITY_LOW (1 << 0) +#define PIPE_CONTEXT_PRIORITY_MEDIUM (1 << 1) +#define PIPE_CONTEXT_PRIORITY_HIGH (1 << 2) + #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0) #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600 (1 << 1) diff --git a/src/gallium/include/state_tracker/st_api.h b/src/gallium/include/state_tracker/st_api.h index 44d6b474f8..f95f65f156 100644 --- a/src/gallium/include/state_tracker/st_api.h +++ b/src/gallium/include/state_tracker/st_api.h @@ -92,6 +92,8 @@ enum st_api_feature #define ST_CONTEXT_FLAG_RESET_NOTIFICATION_ENABLED (1 << 3) #define ST_CONTEXT_FLAG_NO_ERROR (1 << 4) #define ST_CONTEXT_FLAG_RELEASE_NONE (1 << 5) +#define ST_CONTEXT_FLAG_HIGH_PRIORITY (1 << 6) +#define ST_CONTEXT_FLAG_LOW_PRIORITY (1 << 7) /** * Reasons that context creation might fail. -- cgit v1.2.3