summaryrefslogtreecommitdiffstats
path: root/package/libva/0001-Add-pointer-to-struct-wl_interface-for-driver-to-use.patch
blob: d6701d1a2541f4c57c6b4c0ab5d4e3f420fa3d20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
From 62bad1239d8ea1bb269ca69d3469aa267f57cdec Mon Sep 17 00:00:00 2001
From: Haihao Xiang <haihao.xiang@intel.com>
Date: Fri, 7 Dec 2018 13:25:41 +0800
Subject: [PATCH] Add pointer to struct wl_interface for driver to use

See https://github.com/intel/intel-vaapi-driver/issues/419 for the
information

Note: don't export the interface symbol in case others may reuse it.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
[james.hilliard1@gmail.com: backport from upstream commit
62bad1239d8ea1bb269ca69d3469aa267f57cdec]
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
 va/wayland/va_backend_wayland.h | 10 +++++++++-
 va/wayland/va_wayland_drm.c     |  4 ++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/va/wayland/va_backend_wayland.h b/va/wayland/va_backend_wayland.h
index 9e5740a..906d4bf 100644
--- a/va/wayland/va_backend_wayland.h
+++ b/va/wayland/va_backend_wayland.h
@@ -64,8 +64,16 @@ struct VADriverVTableWayland {
     /** \brief Indicate whether buffer sharing with prime fd is supported. */
     unsigned int has_prime_sharing;
 
+    /**
+     * Pointer to an implementation of struct wl_interface
+     *
+     * It is set by libva-wayland when a context is created, then the backend
+     * driver may reuse it.
+     */
+    const void *wl_interface;
+
     /** \brief Reserved bytes for future use, must be zero */
-    unsigned long reserved[8];
+    unsigned long reserved[7];
 };
 
 #endif /* VA_BACKEND_WAYLAND_H */
diff --git a/va/wayland/va_wayland_drm.c b/va/wayland/va_wayland_drm.c
index 8e22695..4cd3f6c 100644
--- a/va/wayland/va_wayland_drm.c
+++ b/va/wayland/va_wayland_drm.c
@@ -136,6 +136,7 @@ va_wayland_drm_destroy(VADisplayContextP pDisplayContext)
     struct VADriverVTableWayland *vtable = ctx->vtable_wayland;
 
     vtable->has_prime_sharing = 0;
+    vtable->wl_interface = NULL;
 
     wl_drm_ctx->is_authenticated = 0;
 
@@ -222,6 +223,8 @@ va_wayland_drm_create(VADisplayContextP pDisplayContext)
     struct VADriverVTableWayland *vtable = ctx->vtable_wayland;
     struct wl_display *wrapped_display = NULL;
 
+    vtable->wl_interface = NULL;
+
     wl_drm_ctx = malloc(sizeof(*wl_drm_ctx));
     if (!wl_drm_ctx) {
         va_wayland_error("could not allocate wl_drm_ctx");
@@ -300,6 +303,7 @@ va_wayland_drm_create(VADisplayContextP pDisplayContext)
         goto end;
     }
 
+    vtable->wl_interface = &wl_drm_interface;
     result = true;
 
 end:
-- 
2.7.4

OpenPOWER on IntegriCloud