summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2016-02-24 18:51:15 +0100
committerMarek Olšák <marek.olsak@amd.com>2016-03-09 15:02:25 +0100
commit82db518f1519cec9e3842f23455a105e2006afbd (patch)
tree5baa1ddfa03e94f1edc53b10473c67b9dce26fee /src/gallium/drivers/r300
parentd943ac432de1f46cea47bdbf5ffe5365e2aef386 (diff)
downloadexternal_mesa3d-82db518f1519cec9e3842f23455a105e2006afbd.zip
external_mesa3d-82db518f1519cec9e3842f23455a105e2006afbd.tar.gz
external_mesa3d-82db518f1519cec9e3842f23455a105e2006afbd.tar.bz2
gallium: add external usage flags to resource_from(get)_handle (v2)
This will allow drivers to make better decisions about texture sharing for DRI2, DRI3, Wayland, and OpenCL. v2: add read/write flags, take advantage of __DRI_IMAGE_USE_BACKBUFFER Reviewed-by: Axel Davy <axel.davy@ens.fr>
Diffstat (limited to 'src/gallium/drivers/r300')
-rw-r--r--src/gallium/drivers/r300/r300_texture.c6
-rw-r--r--src/gallium/drivers/r300/r300_texture.h7
2 files changed, 9 insertions, 4 deletions
diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index e90e741..2b9018a 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -971,7 +971,8 @@ static void r300_texture_destroy(struct pipe_screen *screen,
boolean r300_resource_get_handle(struct pipe_screen* screen,
struct pipe_resource *texture,
- struct winsys_handle *whandle)
+ struct winsys_handle *whandle,
+ unsigned usage)
{
struct radeon_winsys *rws = r300_screen(screen)->rws;
struct r300_resource* tex = (struct r300_resource*)texture;
@@ -1097,7 +1098,8 @@ struct pipe_resource *r300_texture_create(struct pipe_screen *screen,
struct pipe_resource *r300_texture_from_handle(struct pipe_screen *screen,
const struct pipe_resource *base,
- struct winsys_handle *whandle)
+ struct winsys_handle *whandle,
+ unsigned usage)
{
struct r300_screen *rscreen = r300_screen(screen);
struct radeon_winsys *rws = rscreen->rws;
diff --git a/src/gallium/drivers/r300/r300_texture.h b/src/gallium/drivers/r300/r300_texture.h
index 213bdff..4c33942 100644
--- a/src/gallium/drivers/r300/r300_texture.h
+++ b/src/gallium/drivers/r300/r300_texture.h
@@ -25,6 +25,7 @@
#include "pipe/p_compiler.h"
#include "pipe/p_format.h"
+#include "pipe/p_screen.h"
struct pipe_screen;
struct pipe_context;
@@ -62,12 +63,14 @@ void r300_texture_setup_format_state(struct r300_screen *screen,
boolean r300_resource_get_handle(struct pipe_screen* screen,
struct pipe_resource *texture,
- struct winsys_handle *whandle);
+ struct winsys_handle *whandle,
+ unsigned usage);
struct pipe_resource*
r300_texture_from_handle(struct pipe_screen* screen,
const struct pipe_resource* base,
- struct winsys_handle *whandle);
+ struct winsys_handle *whandle,
+ unsigned usage);
struct pipe_resource*
r300_texture_create(struct pipe_screen* screen,