Commit d1444225 authored by Jerome Glisse's avatar Jerome Glisse Committed by Rob Clark

xa: add handle type parameter to get handle

Allow to retrieve non shared handle.
Signed-off-by: default avatarJerome Glisse <jglisse@redhat.com>
parent 984da462
......@@ -468,6 +468,7 @@ xa_tracker_version(int *major, int *minor, int *patch)
XA_EXPORT int
xa_surface_handle(struct xa_surface *srf,
enum xa_handle_type type,
uint32_t * handle, unsigned int *stride)
{
struct winsys_handle whandle;
......@@ -476,7 +477,15 @@ xa_surface_handle(struct xa_surface *srf,
boolean res;
memset(&whandle, 0, sizeof(whandle));
whandle.type = DRM_API_HANDLE_TYPE_SHARED;
switch (type) {
case xa_handle_type_kms:
whandle.type = DRM_API_HANDLE_TYPE_KMS;
break;
case xa_handle_type_shared:
default:
whandle.type = DRM_API_HANDLE_TYPE_SHARED;
break;
}
res = screen->resource_get_handle(screen, srf->tex, &whandle);
if (!res)
return -XA_ERR_INVAL;
......
......@@ -142,6 +142,11 @@ struct xa_box {
uint16_t x1, y1, x2, y2;
};
enum xa_handle_type {
xa_handle_type_shared,
xa_handle_type_kms,
};
extern void xa_tracker_version(int *major, int *minor, int *patch);
extern struct xa_tracker *xa_tracker_create(int drm_fd);
......@@ -183,6 +188,8 @@ extern int xa_surface_redefine(struct xa_surface *srf,
int copy_contents);
extern int xa_surface_handle(struct xa_surface *srf,
uint32_t * handle, unsigned int *byte_stride);
enum xa_handle_type type,
uint32_t * handle,
unsigned int *byte_stride);
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment