diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2017-06-22 13:43:36 +0200 |
---|---|---|
committer | Lucas Stach <l.stach@pengutronix.de> | 2017-07-19 16:26:50 +0200 |
commit | eebf6ee6e9eacce014b855c0e067ce1f1b9ff4d6 (patch) | |
tree | ee2e2dd921ac41f3adf6708bd2d1cf41efcc2f28 | |
parent | 8a44aa50435b905b6cdf4524711702b7645cbd2b (diff) |
etnaviv: fold etna_screen_bo_get_handle into etna_resource_get_handle
There is no point in keeping this indirection. Makes the code easier to
follow.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com> (v1)
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_resource.c | 21 | ||||
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_screen.c | 19 | ||||
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_screen.h | 4 |
3 files changed, 16 insertions, 28 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c b/src/gallium/drivers/etnaviv/etnaviv_resource.c index b1a814d4a3..c7eef96a6e 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_resource.c +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c @@ -479,12 +479,23 @@ etna_resource_get_handle(struct pipe_screen *pscreen, if (rsc->external) rsc = etna_resource(rsc->external); - if (handle->type == DRM_API_HANDLE_TYPE_KMS && - renderonly_get_handle(scanout, handle)) + handle->stride = rsc->levels[0].stride; + + if (handle->type == DRM_API_HANDLE_TYPE_SHARED) { + return etna_bo_get_name(rsc->bo, &handle->handle) == 0; + } else if (handle->type == DRM_API_HANDLE_TYPE_KMS) { + if (renderonly_get_handle(scanout, handle)) { + return TRUE; + } else { + handle->handle = etna_bo_handle(rsc->bo); + return TRUE; + } + } else if (handle->type == DRM_API_HANDLE_TYPE_FD) { + handle->handle = etna_bo_dmabuf(rsc->bo); return TRUE; - - return etna_screen_bo_get_handle(pscreen, rsc->bo, rsc->levels[0].stride, - handle); + } else { + return FALSE; + } } void diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index 3a8066c0ff..aa24c856b7 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -708,25 +708,6 @@ fail: return false; } -boolean -etna_screen_bo_get_handle(struct pipe_screen *pscreen, struct etna_bo *bo, - unsigned stride, struct winsys_handle *whandle) -{ - whandle->stride = stride; - - if (whandle->type == DRM_API_HANDLE_TYPE_SHARED) { - return etna_bo_get_name(bo, &whandle->handle) == 0; - } else if (whandle->type == DRM_API_HANDLE_TYPE_KMS) { - whandle->handle = etna_bo_handle(bo); - return TRUE; - } else if (whandle->type == DRM_API_HANDLE_TYPE_FD) { - whandle->handle = etna_bo_dmabuf(bo); - return TRUE; - } else { - return FALSE; - } -} - struct etna_bo * etna_screen_bo_from_handle(struct pipe_screen *pscreen, struct winsys_handle *whandle, unsigned *out_stride) diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.h b/src/gallium/drivers/etnaviv/etnaviv_screen.h index bec740b0a0..dc57a38dbb 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.h +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.h @@ -84,10 +84,6 @@ etna_screen(struct pipe_screen *pscreen) return (struct etna_screen *)pscreen; } -boolean -etna_screen_bo_get_handle(struct pipe_screen *pscreen, struct etna_bo *bo, - unsigned stride, struct winsys_handle *whandle); - struct etna_bo * etna_screen_bo_from_handle(struct pipe_screen *pscreen, struct winsys_handle *whandle, unsigned *out_stride); |