radeon/winsys: add layer support for BO export
Add layer support to export individual array layers. 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
04bc082f6a
commit
5aea0d6919
|
@ -374,6 +374,7 @@ static boolean r600_texture_get_handle(struct pipe_screen* screen,
|
|||
return rscreen->ws->buffer_get_handle(res->buf,
|
||||
rtex->surface.level[0].pitch_bytes,
|
||||
rtex->surface.level[0].offset,
|
||||
rtex->surface.level[0].slice_size,
|
||||
whandle);
|
||||
}
|
||||
|
||||
|
|
|
@ -547,6 +547,7 @@ struct radeon_winsys {
|
|||
*/
|
||||
boolean (*buffer_get_handle)(struct pb_buffer *buf,
|
||||
unsigned stride, unsigned offset,
|
||||
unsigned slice_size,
|
||||
struct winsys_handle *whandle);
|
||||
|
||||
/**
|
||||
|
|
|
@ -613,6 +613,7 @@ error:
|
|||
|
||||
static boolean amdgpu_bo_get_handle(struct pb_buffer *buffer,
|
||||
unsigned stride, unsigned offset,
|
||||
unsigned slice_size,
|
||||
struct winsys_handle *whandle)
|
||||
{
|
||||
struct amdgpu_winsys_bo *bo = amdgpu_winsys_bo(buffer);
|
||||
|
@ -641,6 +642,7 @@ static boolean amdgpu_bo_get_handle(struct pb_buffer *buffer,
|
|||
|
||||
whandle->stride = stride;
|
||||
whandle->offset = offset;
|
||||
whandle->offset += slice_size * whandle->layer;
|
||||
bo->is_shared = true;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -995,6 +995,7 @@ fail:
|
|||
|
||||
static boolean radeon_winsys_bo_get_handle(struct pb_buffer *buffer,
|
||||
unsigned stride, unsigned offset,
|
||||
unsigned slice_size,
|
||||
struct winsys_handle *whandle)
|
||||
{
|
||||
struct drm_gem_flink flink;
|
||||
|
@ -1029,6 +1030,8 @@ static boolean radeon_winsys_bo_get_handle(struct pb_buffer *buffer,
|
|||
|
||||
whandle->stride = stride;
|
||||
whandle->offset = offset;
|
||||
whandle->offset += slice_size * whandle->layer;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue