mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
gallium/winsys/drm: add offset to struct winsys_handle
We are going to need this for EGL_EXT_image_dma_buf_import. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
58fe7837b8
commit
29d26f1522
6 changed files with 13 additions and 0 deletions
|
|
@ -35,6 +35,11 @@ struct winsys_handle
|
|||
* Output for texture_get_handle.
|
||||
*/
|
||||
unsigned stride;
|
||||
/**
|
||||
* Input to texture_from_handle.
|
||||
* Output for texture_get_handle.
|
||||
*/
|
||||
unsigned offset;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -534,6 +534,7 @@ dri2_allocate_textures(struct dri_context *ctx,
|
|||
templ.bind = bind;
|
||||
whandle.handle = buf->name;
|
||||
whandle.stride = buf->pitch;
|
||||
whandle.offset = 0;
|
||||
if (screen->can_share_buffer)
|
||||
whandle.type = DRM_API_HANDLE_TYPE_SHARED;
|
||||
else
|
||||
|
|
@ -756,6 +757,7 @@ dri2_create_image_from_winsys(__DRIscreen *_screen,
|
|||
templ.array_size = 1;
|
||||
|
||||
whandle->stride = pitch * util_format_get_blocksize(pf);
|
||||
whandle->offset = 0;
|
||||
|
||||
img->texture = screen->base.screen->resource_from_handle(screen->base.screen,
|
||||
&templ, whandle, PIPE_HANDLE_USAGE_READ_WRITE);
|
||||
|
|
|
|||
|
|
@ -637,6 +637,7 @@ static boolean amdgpu_bo_get_handle(struct pb_buffer *buffer,
|
|||
return FALSE;
|
||||
|
||||
whandle->stride = stride;
|
||||
whandle->offset = 0;
|
||||
bo->is_shared = true;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1025,6 +1025,7 @@ static boolean radeon_winsys_bo_get_handle(struct pb_buffer *buffer,
|
|||
}
|
||||
|
||||
whandle->stride = stride;
|
||||
whandle->offset = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -357,6 +357,7 @@ vmw_drm_surface_get_handle(struct svga_winsys_screen *sws,
|
|||
vsrf = vmw_svga_winsys_surface(surface);
|
||||
whandle->handle = vsrf->sid;
|
||||
whandle->stride = stride;
|
||||
whandle->offset = 0;
|
||||
|
||||
switch (whandle->type) {
|
||||
case DRM_API_HANDLE_TYPE_SHARED:
|
||||
|
|
|
|||
|
|
@ -309,17 +309,20 @@ kms_sw_displaytarget_get_handle(struct sw_winsys *winsys,
|
|||
case DRM_API_HANDLE_TYPE_KMS:
|
||||
whandle->handle = kms_sw_dt->handle;
|
||||
whandle->stride = kms_sw_dt->stride;
|
||||
whandle->offset = 0;
|
||||
return TRUE;
|
||||
case DRM_API_HANDLE_TYPE_FD:
|
||||
if (!drmPrimeHandleToFD(kms_sw->fd, kms_sw_dt->handle,
|
||||
DRM_CLOEXEC, (int*)&whandle->handle)) {
|
||||
whandle->stride = kms_sw_dt->stride;
|
||||
whandle->offset = 0;
|
||||
return TRUE;
|
||||
}
|
||||
/* fallthrough */
|
||||
default:
|
||||
whandle->handle = 0;
|
||||
whandle->stride = 0;
|
||||
whandle->offset = 0;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue