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 <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Jordan Justen 2019-08-01 13:30:21 -07:00
parent 2353f7f7ef
commit 0346b70083
No known key found for this signature in database
GPG Key ID: 37F99F68CAF992EB
2 changed files with 25 additions and 0 deletions

View File

@ -1026,6 +1026,21 @@ enum pipe_compute_cap
PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK,
};
/**
* 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.
*/

View File

@ -262,6 +262,16 @@ struct pipe_screen {
struct winsys_handle *handle,
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.