[Mesa-dev] [PATCH v4 11/11] vc4: use common screen ref counting
Rob Herring
robh at kernel.org
Fri Jul 22 16:22:22 UTC 2016
Use the common pipe_screen ref counting and fd hashing functions for
vc4. This is necessary to only create a single pipe_screen for a
process and avoid multiple imports of same prime fd among other things
(probably).
Cc: Eric Anholt <eric at anholt.net>
Signed-off-by: Rob Herring <robh at kernel.org>
---
src/gallium/winsys/vc4/drm/vc4_drm_winsys.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c b/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c
index c5434ad..e0d9cc2 100644
--- a/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c
+++ b/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c
@@ -22,6 +22,7 @@
*/
#include <unistd.h>
+#include "util/u_screen.h"
#include "vc4_drm_public.h"
@@ -30,5 +31,13 @@
struct pipe_screen *
vc4_drm_screen_create(int fd)
{
- return vc4_screen_create(dup(fd));
+ int dupfd;
+ struct pipe_screen *pscreen = pipe_screen_reference(fd);
+ if (pscreen)
+ return pscreen;
+
+ dupfd = dup(fd);
+ pscreen = vc4_screen_create(dupfd);
+ pipe_screen_reference_init(pscreen, dupfd);
+ return pscreen;
}
--
2.9.2
More information about the mesa-dev
mailing list