diff options
author | Gurchetan Singh <[email protected]> | 2019-09-25 10:06:23 -0700 |
---|---|---|
committer | Gurchetan Singh <[email protected]> | 2019-10-02 17:57:47 -0700 |
commit | aad4127c41b70981f5c8a5aad6e3d7922a812ccb (patch) | |
tree | d813e3e7d76279b8e8194f771ab51da7c5211de5 /src | |
parent | 2899bbe37ac8399503a735db68a41071811ded85 (diff) |
virgl: modify resource_create_from_handle(..) callback
This commit makes no functional changes, just adds the revelant
plumbing.
Reviewed by: Robert Tarasov <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/virgl/virgl_resource.c | 9 | ||||
-rw-r--r-- | src/gallium/drivers/virgl/virgl_winsys.h | 6 | ||||
-rw-r--r-- | src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 6 |
3 files changed, 18 insertions, 3 deletions
diff --git a/src/gallium/drivers/virgl/virgl_resource.c b/src/gallium/drivers/virgl/virgl_resource.c index ca4db39dab1..530f8e57fe7 100644 --- a/src/gallium/drivers/virgl/virgl_resource.c +++ b/src/gallium/drivers/virgl/virgl_resource.c @@ -507,6 +507,8 @@ static struct pipe_resource *virgl_resource_from_handle(struct pipe_screen *scre struct winsys_handle *whandle, unsigned usage) { + uint32_t winsys_stride, plane_offset, plane; + uint64_t modifier; struct virgl_screen *vs = virgl_screen(screen); if (templ->target == PIPE_BUFFER) return NULL; @@ -517,7 +519,12 @@ static struct pipe_resource *virgl_resource_from_handle(struct pipe_screen *scre pipe_reference_init(&res->u.b.reference, 1); virgl_resource_layout(&res->u.b, &res->metadata); - res->hw_res = vs->vws->resource_create_from_handle(vs->vws, whandle); + plane = winsys_stride = plane_offset = modifier = 0; + res->hw_res = vs->vws->resource_create_from_handle(vs->vws, whandle, + &plane, + &winsys_stride, + &plane_offset, + &modifier); if (!res->hw_res) { FREE(res); return NULL; diff --git a/src/gallium/drivers/virgl/virgl_winsys.h b/src/gallium/drivers/virgl/virgl_winsys.h index 9abfec6898b..97885c99955 100644 --- a/src/gallium/drivers/virgl/virgl_winsys.h +++ b/src/gallium/drivers/virgl/virgl_winsys.h @@ -80,7 +80,11 @@ struct virgl_winsys { struct virgl_hw_res *res); struct virgl_hw_res *(*resource_create_from_handle)(struct virgl_winsys *vws, - struct winsys_handle *whandle); + struct winsys_handle *whandle, + uint32_t *plane, + uint32_t *stride, + uint32_t *plane_offset, + uint64_t *modifier); boolean (*resource_get_handle)(struct virgl_winsys *vws, struct virgl_hw_res *res, uint32_t stride, diff --git a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c index 741064a958c..01e1f51d757 100644 --- a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c +++ b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c @@ -301,7 +301,11 @@ alloc: static struct virgl_hw_res * virgl_drm_winsys_resource_create_handle(struct virgl_winsys *qws, - struct winsys_handle *whandle) + struct winsys_handle *whandle, + uint32_t *plane, + uint32_t *stride, + uint32_t *plane_offset, + uint64_t *modifier) { struct virgl_drm_winsys *qdws = virgl_drm_winsys(qws); struct drm_gem_open open_arg = {}; |