summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2015-09-04 11:35:33 -0400
committerRob Clark <[email protected]>2015-09-16 09:14:39 -0400
commit5bb41d9094b3c9bdf0669fd55418981ed83347e3 (patch)
tree4f043d84384b6adeab21b95af452c19f9723de4e /src/gallium/drivers/freedreno
parentb3958f9f8387b5967530ff77a08120074042c8e5 (diff)
freedreno: one screen to rule them all
Similar to fee0686c21c631d96d6042741267a3c218c23ffc, but in this case to ensure that drm_gralloc and libGLES_mesa are sharing a single screen. Bumps libdrm_freedreno version dependency, as it requires the new fd_device_fd() API. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_screen.c1
-rw-r--r--src/gallium/drivers/freedreno/freedreno_screen.h10
2 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c
index 8000279ae80..a3dede2500e 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -483,6 +483,7 @@ fd_screen_create(struct fd_device *dev)
pscreen = &screen->base;
screen->dev = dev;
+ screen->refcnt = 1;
// maybe this should be in context?
screen->pipe = fd_pipe_new(screen->dev, FD_PIPE_3D);
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.h b/src/gallium/drivers/freedreno/freedreno_screen.h
index 4e5c3a61958..8fb096a10dd 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.h
+++ b/src/gallium/drivers/freedreno/freedreno_screen.h
@@ -42,6 +42,16 @@ struct fd_bo;
struct fd_screen {
struct pipe_screen base;
+ /* it would be tempting to use pipe_reference here, but that
+ * really doesn't work well if it isn't the first member of
+ * the struct, so not quite so awesome to be adding refcnting
+ * further down the inheritance hierarchy:
+ */
+ int refcnt;
+
+ /* place for winsys to stash it's own stuff: */
+ void *winsys_priv;
+
uint32_t gmemsize_bytes;
uint32_t device_id;
uint32_t gpu_id; /* 220, 305, etc */