Mesa (main): radeon_winsys.h: add a parameter to buffer_from_handle
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Oct 18 15:59:44 UTC 2021
Module: Mesa
Branch: main
Commit: a90507252172bb0e353dd0e368d8fb773a1069af
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a90507252172bb0e353dd0e368d8fb773a1069af
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date: Thu Oct 14 15:15:20 2021 +0200
radeon_winsys.h: add a parameter to buffer_from_handle
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13362>
---
src/gallium/drivers/r300/r300_texture.c | 2 +-
src/gallium/drivers/r600/r600_texture.c | 4 ++--
src/gallium/drivers/radeon/radeon_winsys.h | 2 +-
src/gallium/drivers/radeonsi/si_texture.c | 6 ++++--
src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 3 ++-
src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 3 ++-
6 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index 843443bfb01..cff8774eed0 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -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;
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index 0c34a8db4e0..2be8c90ebda 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -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;
diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h
index 7b2ef80f5a2..7555f35b7ac 100644
--- a/src/gallium/drivers/radeon/radeon_winsys.h
+++ b/src/gallium/drivers/radeon/radeon_winsys.h
@@ -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
diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c
index 35a74509a22..06b14129e3b 100644
--- a/src/gallium/drivers/radeonsi/si_texture.c
+++ b/src/gallium/drivers/radeonsi/si_texture.c
@@ -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;
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
index d2c1f3514c1..e1b14b71060 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
@@ -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;
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
index 6c424a71380..a2ff20e3c7d 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -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;
More information about the mesa-commit
mailing list