From 0346b70083311c65a55038d3e3829da551e229cb Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Thu, 1 Aug 2019 13:30:21 -0700 Subject: [PATCH] gallium/screen: Add pipe_screen::resource_get_param This function retrieves individual parameters selected by enum pipe_resource_param. It can be used as a more direct alternative to pipe_screen::resource_get_handle. Signed-off-by: Jordan Justen Reviewed-by: Kenneth Graunke Acked-by: Eric Anholt --- src/gallium/include/pipe/p_defines.h | 15 +++++++++++++++ src/gallium/include/pipe/p_screen.h | 10 ++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 86cc9d8..0c79cac 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -1027,6 +1027,21 @@ enum pipe_compute_cap }; /** + * Resource parameters. They can be queried using + * pipe_screen::get_resource_param. + */ +enum pipe_resource_param +{ + PIPE_RESOURCE_PARAM_NPLANES, + PIPE_RESOURCE_PARAM_STRIDE, + PIPE_RESOURCE_PARAM_OFFSET, + PIPE_RESOURCE_PARAM_MODIFIER, + PIPE_RESOURCE_PARAM_HANDLE_TYPE_SHARED, + PIPE_RESOURCE_PARAM_HANDLE_TYPE_KMS, + PIPE_RESOURCE_PARAM_HANDLE_TYPE_FD, +}; + +/** * Types of parameters for pipe_context::set_context_param. */ enum pipe_context_param diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h index 9bd2477..ac20879 100644 --- a/src/gallium/include/pipe/p_screen.h +++ b/src/gallium/include/pipe/p_screen.h @@ -263,6 +263,16 @@ struct pipe_screen { unsigned usage); /** + * Get info for the given pipe resource without the need to get a + * winsys_handle. + */ + bool (*resource_get_param)(struct pipe_screen *screen, + struct pipe_resource *resource, + unsigned int plane, + enum pipe_resource_param param, + uint64_t *value); + + /** * Get stride and offset for the given pipe resource without the need to get * a winsys_handle. */ -- 2.7.4