radeon_winsys.h: add a parameter to buffer_from_handle

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13362>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2021-10-14 15:15:20 +02:00
parent e9c3dbd046
commit a905072521
6 changed files with 12 additions and 8 deletions

View file

@ -1167,7 +1167,7 @@ struct pipe_resource *r300_texture_from_handle(struct pipe_screen *screen,
return NULL;
}
buffer = rws->buffer_from_handle(rws, whandle, 0);
buffer = rws->buffer_from_handle(rws, whandle, 0, false);
if (!buffer)
return NULL;

View file

@ -1124,7 +1124,7 @@ static struct pipe_resource *r600_texture_from_handle(struct pipe_screen *screen
return NULL;
buf = rscreen->ws->buffer_from_handle(rscreen->ws, whandle,
rscreen->info.max_alignment);
rscreen->info.max_alignment, false);
if (!buf)
return NULL;
@ -1844,7 +1844,7 @@ r600_memobj_from_handle(struct pipe_screen *screen,
return NULL;
buf = rscreen->ws->buffer_from_handle(rscreen->ws, whandle,
rscreen->info.max_alignment);
rscreen->info.max_alignment, false);
if (!buf) {
free(memobj);
return NULL;

View file

@ -383,7 +383,7 @@ struct radeon_winsys {
* tracker.
*/
struct pb_buffer *(*buffer_from_handle)(struct radeon_winsys *ws, struct winsys_handle *whandle,
unsigned vm_alignment);
unsigned vm_alignment, bool is_prime_linear_buffer);
/**
* Get a winsys buffer from a user pointer. The resulting buffer can't

View file

@ -1579,7 +1579,9 @@ static struct pipe_resource *si_texture_from_handle(struct pipe_screen *screen,
templ->last_level != 0)
return NULL;
buf = sscreen->ws->buffer_from_handle(sscreen->ws, whandle, sscreen->info.max_alignment);
buf = sscreen->ws->buffer_from_handle(sscreen->ws, whandle,
sscreen->info.max_alignment,
templ->bind & PIPE_BIND_DRI_PRIME);
if (!buf)
return NULL;
@ -2127,7 +2129,7 @@ si_memobj_from_handle(struct pipe_screen *screen, struct winsys_handle *whandle,
if (!memobj)
return NULL;
buf = sscreen->ws->buffer_from_handle(sscreen->ws, whandle, sscreen->info.max_alignment);
buf = sscreen->ws->buffer_from_handle(sscreen->ws, whandle, sscreen->info.max_alignment, false);
if (!buf) {
free(memobj);
return NULL;

View file

@ -1494,7 +1494,8 @@ amdgpu_buffer_create(struct radeon_winsys *ws,
static struct pb_buffer *amdgpu_bo_from_handle(struct radeon_winsys *rws,
struct winsys_handle *whandle,
unsigned vm_alignment)
unsigned vm_alignment,
bool is_prime_linear_buffer)
{
struct amdgpu_winsys *ws = amdgpu_winsys(rws);
struct amdgpu_winsys_bo *bo = NULL;

View file

@ -1185,7 +1185,8 @@ static struct pb_buffer *radeon_winsys_bo_from_ptr(struct radeon_winsys *rws,
static struct pb_buffer *radeon_winsys_bo_from_handle(struct radeon_winsys *rws,
struct winsys_handle *whandle,
unsigned vm_alignment)
unsigned vm_alignment,
bool is_dri_prime_linear_buffer)
{
struct radeon_drm_winsys *ws = radeon_drm_winsys(rws);
struct radeon_bo *bo;