[PATCH v2 07/10] etnaviv: fold etna_screen_bo_get_handle into etna_resource_get_handle
Christian Gmeiner
christian.gmeiner at gmail.com
Sun Jul 9 14:05:21 UTC 2017
2017-07-04 17:45 GMT+02:00 Lucas Stach <l.stach at pengutronix.de>:
> There is no point in keeping this indirection. Makes the code easier to
> follow.
>
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> Reviewed-by: Wladimir J. van der Laan <laanwj at gmail.com> (v1)
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
> ---
> src/gallium/drivers/etnaviv/etnaviv_resource.c | 21 ++++++++++++++++-----
> src/gallium/drivers/etnaviv/etnaviv_screen.c | 19 -------------------
> 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 fb68a876215f..b27a1e04e6ca 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_resource.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c
> @@ -475,12 +475,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 eefb51c5dade..d5210347a521 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c
> @@ -711,25 +711,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 bec740b0a000..dc57a38dbb80 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);
> --
> 2.11.0
>
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info
More information about the etnaviv
mailing list