diff options
author | Jerome Glisse <jglisse@redhat.com> | 2013-02-27 10:49:35 -0500 |
---|---|---|
committer | Rob Clark <robclark@freedesktop.org> | 2013-07-25 13:59:55 -0400 |
commit | d1444225d3a600be77602af35d1e9879e469c70e (patch) | |
tree | 36f31f62bfb3544feaf26c3456b3ce211ac5c7ae /src/gallium/state_trackers/xa/xa_tracker.c | |
parent | 984da462190af5946e49462805d1e741a00d0688 (diff) | |
download | external_mesa3d-d1444225d3a600be77602af35d1e9879e469c70e.zip external_mesa3d-d1444225d3a600be77602af35d1e9879e469c70e.tar.gz external_mesa3d-d1444225d3a600be77602af35d1e9879e469c70e.tar.bz2 |
xa: add handle type parameter to get handle
Allow to retrieve non shared handle.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Diffstat (limited to 'src/gallium/state_trackers/xa/xa_tracker.c')
-rw-r--r-- | src/gallium/state_trackers/xa/xa_tracker.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/xa/xa_tracker.c b/src/gallium/state_trackers/xa/xa_tracker.c index b49f0d9..945ed36 100644 --- a/src/gallium/state_trackers/xa/xa_tracker.c +++ b/src/gallium/state_trackers/xa/xa_tracker.c @@ -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; |