diff options
author | Yew, Chang Ching <chang.ching.yew@intel.com> | 2021-11-08 10:14:29 +0800 |
---|---|---|
committer | Anuj Mittal <anuj.mittal@intel.com> | 2021-11-08 18:50:07 +0800 |
commit | ff68bb495257c7867589ff434a091d14e267b47e (patch) | |
tree | 150cbd2d556bc7f632d136b86368785ea16538c4 /recipes-multimedia | |
parent | 99fd5cb683eb31b144f20126497d574c6031fa49 (diff) | |
download | meta-intel-ff68bb495257c7867589ff434a091d14e267b47e.tar.gz |
onevpl: Adding basic wayland dmabuf support to samples
Signed-off-by: Ung, Teng En <teng.en.ung@intel.com>
Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Diffstat (limited to 'recipes-multimedia')
5 files changed, 397 insertions, 0 deletions
diff --git a/recipes-multimedia/onevpl/onevpl/0001-sample_misc-Addin-basic-wayland-dmabuf-support.patch b/recipes-multimedia/onevpl/onevpl/0001-sample_misc-Addin-basic-wayland-dmabuf-support.patch new file mode 100644 index 00000000..96110ef8 --- /dev/null +++ b/recipes-multimedia/onevpl/onevpl/0001-sample_misc-Addin-basic-wayland-dmabuf-support.patch | |||
@@ -0,0 +1,90 @@ | |||
1 | From 2e2bcb1817f2dc91adf85f5255a4792a6213a74e Mon Sep 17 00:00:00 2001 | ||
2 | From: "Ung, Teng En" <teng.en.ung@intel.com> | ||
3 | Date: Fri, 8 Oct 2021 14:19:40 +0000 | ||
4 | Subject: [PATCH 2/3] sample_misc: Addin basic wayland dmabuf support. | ||
5 | |||
6 | Upstream-Status: Submitted | ||
7 | innersource PR #269 | ||
8 | |||
9 | --- | ||
10 | .../sample_misc/wayland/include/class_wayland.h | 16 ++++++++++++++++ | ||
11 | .../sample_misc/wayland/src/class_wayland.cpp | 8 ++++++++ | ||
12 | 2 files changed, 24 insertions(+) | ||
13 | |||
14 | diff --git a/tools/legacy/sample_misc/wayland/include/class_wayland.h b/tools/legacy/sample_misc/wayland/include/class_wayland.h | ||
15 | index 564b9b8b..e5267ec2 100644 | ||
16 | --- a/tools/legacy/sample_misc/wayland/include/class_wayland.h | ||
17 | +++ b/tools/legacy/sample_misc/wayland/include/class_wayland.h | ||
18 | @@ -32,6 +32,9 @@ extern "C" { | ||
19 | #include "sample_defs.h" | ||
20 | #include "vpl/mfxstructures.h" | ||
21 | #include "wayland-drm-client-protocol.h" | ||
22 | +#if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
23 | + #include "linux-dmabuf-unstable-v1.h" | ||
24 | +#endif | ||
25 | |||
26 | typedef struct buffer wld_buffer; | ||
27 | |||
28 | @@ -93,6 +96,11 @@ public: | ||
29 | struct wl_drm* GetDrm() { | ||
30 | return m_drm; | ||
31 | } | ||
32 | +#if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
33 | + struct zwp_linux_dmabuf_v1* GetDMABuf() { | ||
34 | + return m_dmabuf; | ||
35 | + } | ||
36 | +#endif | ||
37 | struct wl_shm* GetShm() { | ||
38 | return m_shm; | ||
39 | }; | ||
40 | @@ -120,6 +128,11 @@ public: | ||
41 | void SetDrm(struct wl_drm* drm) { | ||
42 | m_drm = drm; | ||
43 | } | ||
44 | +#if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
45 | + void SetDMABuf(struct zwp_linux_dmabuf_v1* dmabuf) { | ||
46 | + m_dmabuf = dmabuf; | ||
47 | + } | ||
48 | +#endif | ||
49 | void DrmHandleDevice(const char* device); | ||
50 | void DrmHandleAuthenticated(); | ||
51 | void RegistryGlobal(struct wl_registry* registry, | ||
52 | @@ -147,6 +160,9 @@ private: | ||
53 | struct wl_compositor* m_compositor; | ||
54 | struct wl_shell* m_shell; | ||
55 | struct wl_drm* m_drm; | ||
56 | +#if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
57 | + struct zwp_linux_dmabuf_v1* m_dmabuf; | ||
58 | +#endif | ||
59 | struct wl_shm* m_shm; | ||
60 | struct wl_shm_pool* m_pool; | ||
61 | struct wl_surface* m_surface; | ||
62 | diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
63 | index 65147973..dc2fc718 100644 | ||
64 | --- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
65 | +++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
66 | @@ -50,6 +50,9 @@ Wayland::Wayland() | ||
67 | m_compositor(NULL), | ||
68 | m_shell(NULL), | ||
69 | m_drm(NULL), | ||
70 | +#if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
71 | + m_dmabuf(NULL), | ||
72 | +#endif | ||
73 | m_shm(NULL), | ||
74 | m_pool(NULL), | ||
75 | m_surface(NULL), | ||
76 | @@ -360,6 +363,11 @@ void Wayland::RegistryGlobal(struct wl_registry* registry, | ||
77 | m_drm = static_cast<wl_drm*>(wl_registry_bind(registry, name, &wl_drm_interface, 2)); | ||
78 | wl_drm_add_listener(m_drm, &drm_listener, this); | ||
79 | } | ||
80 | +#if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
81 | + else if(0 == strcmp(interface, "zwp_linux_dmabuf_v1")) | ||
82 | + m_dmabuf = static_cast<zwp_linux_dmabuf_v1*>( | ||
83 | + wl_registry_bind(registry, name, &zwp_linux_dmabuf_v1_interface, version)); | ||
84 | +#endif | ||
85 | } | ||
86 | |||
87 | void Wayland::DrmHandleDevice(const char* name) { | ||
88 | -- | ||
89 | 2.31.1 | ||
90 | |||
diff --git a/recipes-multimedia/onevpl/onevpl/0001-sample_misc-use-wayland-dmabuf-to-render-nv12.patch b/recipes-multimedia/onevpl/onevpl/0001-sample_misc-use-wayland-dmabuf-to-render-nv12.patch new file mode 100644 index 00000000..d061e3ef --- /dev/null +++ b/recipes-multimedia/onevpl/onevpl/0001-sample_misc-use-wayland-dmabuf-to-render-nv12.patch | |||
@@ -0,0 +1,94 @@ | |||
1 | From 0091d3fea76e64ffbd537b2ae47b8912c89c09d7 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Ung, Teng En" <teng.en.ung@intel.com> | ||
3 | Date: Fri, 8 Oct 2021 14:38:45 +0000 | ||
4 | Subject: [PATCH 3/3] sample_misc: use wayland dmabuf to render nv12 | ||
5 | |||
6 | Upstream-Status: Submitted | ||
7 | innersource PR #269 | ||
8 | |||
9 | --- | ||
10 | .../sample_misc/wayland/src/class_wayland.cpp | 60 +++++++++++++++---- | ||
11 | 1 file changed, 47 insertions(+), 13 deletions(-) | ||
12 | |||
13 | diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
14 | index dc2fc718..d2e7e4e2 100644 | ||
15 | --- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
16 | +++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
17 | @@ -26,6 +26,7 @@ or https://software.intel.com/en-us/media-client-solutions-support. | ||
18 | #include <iostream> | ||
19 | extern "C" { | ||
20 | #include <drm.h> | ||
21 | +#include <drm_fourcc.h> | ||
22 | #include <intel_bufmgr.h> | ||
23 | #include <xf86drm.h> | ||
24 | } | ||
25 | @@ -305,20 +306,53 @@ struct wl_buffer* Wayland::CreatePrimeBuffer(uint32_t name, | ||
26 | int32_t offsets[3], | ||
27 | int32_t pitches[3]) { | ||
28 | struct wl_buffer* buffer = NULL; | ||
29 | - if (NULL == m_drm) | ||
30 | - return NULL; | ||
31 | |||
32 | - buffer = wl_drm_create_prime_buffer(m_drm, | ||
33 | - name, | ||
34 | - width, | ||
35 | - height, | ||
36 | - format, | ||
37 | - offsets[0], | ||
38 | - pitches[0], | ||
39 | - offsets[1], | ||
40 | - pitches[1], | ||
41 | - offsets[2], | ||
42 | - pitches[2]); | ||
43 | +#if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
44 | + if (format == WL_DRM_FORMAT_NV12) { | ||
45 | + if(NULL == m_dmabuf) | ||
46 | + return NULL; | ||
47 | + | ||
48 | + struct zwp_linux_buffer_params_v1 *dmabuf_params = NULL; | ||
49 | + int i = 0; | ||
50 | + uint64_t modifier = I915_FORMAT_MOD_Y_TILED; | ||
51 | + | ||
52 | + dmabuf_params = zwp_linux_dmabuf_v1_create_params(m_dmabuf); | ||
53 | + for(i = 0; i < 2; i++) { | ||
54 | + zwp_linux_buffer_params_v1_add(dmabuf_params, | ||
55 | + name, | ||
56 | + i, | ||
57 | + offsets[i], | ||
58 | + pitches[i], | ||
59 | + modifier >> 32, | ||
60 | + modifier & 0xffffffff); | ||
61 | + } | ||
62 | + | ||
63 | + buffer = zwp_linux_buffer_params_v1_create_immed(dmabuf_params, | ||
64 | + width, | ||
65 | + height, | ||
66 | + format, | ||
67 | + 0); | ||
68 | + | ||
69 | + zwp_linux_buffer_params_v1_destroy(dmabuf_params); | ||
70 | + } else | ||
71 | +#endif | ||
72 | + { | ||
73 | + if(NULL == m_drm) | ||
74 | + return NULL; | ||
75 | + | ||
76 | + buffer = wl_drm_create_prime_buffer(m_drm, | ||
77 | + name, | ||
78 | + width, | ||
79 | + height, | ||
80 | + format, | ||
81 | + offsets[0], | ||
82 | + pitches[0], | ||
83 | + offsets[1], | ||
84 | + pitches[1], | ||
85 | + offsets[2], | ||
86 | + pitches[2]); | ||
87 | + } | ||
88 | + | ||
89 | return buffer; | ||
90 | } | ||
91 | |||
92 | -- | ||
93 | 2.31.1 | ||
94 | |||
diff --git a/recipes-multimedia/onevpl/onevpl/0001-samples-Addin-wayland-scanner-auto-generate-on-cmake.patch b/recipes-multimedia/onevpl/onevpl/0001-samples-Addin-wayland-scanner-auto-generate-on-cmake.patch new file mode 100644 index 00000000..6fab79e5 --- /dev/null +++ b/recipes-multimedia/onevpl/onevpl/0001-samples-Addin-wayland-scanner-auto-generate-on-cmake.patch | |||
@@ -0,0 +1,98 @@ | |||
1 | From 6ef9dd02e297ae20da422f2f3f4f298061efd6e9 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Ung, Teng En" <teng.en.ung@intel.com> | ||
3 | Date: Fri, 15 Oct 2021 11:55:13 +0000 | ||
4 | Subject: [PATCH 1/3] samples: Addin wayland-scanner auto generate on cmake. | ||
5 | |||
6 | Upstream-Status: Submitted | ||
7 | innersource PR #269 | ||
8 | |||
9 | --- | ||
10 | tools/legacy/sample_common/CMakeLists.txt | 21 ++++++++++ | ||
11 | .../legacy/sample_misc/wayland/CMakeLists.txt | 39 +++++++++++++++++++ | ||
12 | 2 files changed, 60 insertions(+) | ||
13 | |||
14 | diff --git a/tools/legacy/sample_common/CMakeLists.txt b/tools/legacy/sample_common/CMakeLists.txt | ||
15 | index 0ff83aa4..0ed8b390 100644 | ||
16 | --- a/tools/legacy/sample_common/CMakeLists.txt | ||
17 | +++ b/tools/legacy/sample_common/CMakeLists.txt | ||
18 | @@ -92,6 +92,27 @@ if(UNIX) | ||
19 | target_include_directories( | ||
20 | ${TARGET} | ||
21 | PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../sample_misc/wayland/include) | ||
22 | + | ||
23 | + pkg_check_modules(PKG_WAYLAND_SCANNER "wayland-scanner>=1.15") | ||
24 | + pkg_check_modules(PKG_WAYLAND_PROTCOLS "wayland-protocols>=1.15") | ||
25 | + | ||
26 | + if(PKG_WAYLAND_SCANNER_FOUND AND PKG_WAYLAND_PROTCOLS_FOUND) | ||
27 | + pkg_get_variable(WAYLAND_PROTOCOLS_PATH wayland-protocols pkgdatadir) | ||
28 | + if(WAYLAND_PROTOCOLS_PATH) | ||
29 | + find_file( | ||
30 | + WAYLAND_LINUX_DMABUF_XML_PATH linux-dmabuf-unstable-v1.xml | ||
31 | + PATHS ${WAYLAND_PROTOCOLS_PATH}/unstable/linux-dmabuf | ||
32 | + NO_DEFAULT_PATH) | ||
33 | + endif() | ||
34 | + endif() | ||
35 | + | ||
36 | + if(WAYLAND_LINUX_DMABUF_XML_PATH) | ||
37 | + target_compile_definitions( | ||
38 | + ${TARGET} PUBLIC -DWAYLAND_LINUX_DMABUF_SUPPORT) | ||
39 | + target_include_directories( | ||
40 | + ${TARGET} | ||
41 | + PUBLIC ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland) | ||
42 | + endif() | ||
43 | else() | ||
44 | message( | ||
45 | WARNING | ||
46 | diff --git a/tools/legacy/sample_misc/wayland/CMakeLists.txt b/tools/legacy/sample_misc/wayland/CMakeLists.txt | ||
47 | index 1fe98da4..01e6029b 100644 | ||
48 | --- a/tools/legacy/sample_misc/wayland/CMakeLists.txt | ||
49 | +++ b/tools/legacy/sample_misc/wayland/CMakeLists.txt | ||
50 | @@ -29,6 +29,45 @@ target_sources( | ||
51 | ${CMAKE_CURRENT_SOURCE_DIR}/src/listener_wayland.cpp | ||
52 | ${CMAKE_CURRENT_SOURCE_DIR}/src/wayland-drm-protocol.c) | ||
53 | |||
54 | +if(PKG_WAYLAND_SCANNER_FOUND AND PKG_WAYLAND_PROTCOLS_FOUND AND WAYLAND_LINUX_DMABUF_XML_PATH) | ||
55 | + pkg_get_variable(WAYLAND_SCANNER_BIN_PATH wayland-scanner bindir) | ||
56 | + pkg_get_variable(WAYLAND_SCANNER_BIN wayland-scanner wayland_scanner) | ||
57 | + | ||
58 | + if(WAYLAND_SCANNER_BIN_PATH AND WAYLAND_SCANNER_BIN) | ||
59 | + execute_process( | ||
60 | + COMMAND "${WAYLAND_SCANNER_BIN_PATH}\/${WAYLAND_SCANNER_BIN}" | ||
61 | + "client-header" "${WAYLAND_LINUX_DMABUF_XML_PATH}" | ||
62 | + "tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.h" | ||
63 | + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" | ||
64 | + RESULT_VARIABLE WAYLAND_SCANNER_RESULT) | ||
65 | + if (WAYLAND_SCANNER_RESULT) | ||
66 | + message(ERROR "Failed to generate linux-dmabuf-unstable-v1.h") | ||
67 | + return() | ||
68 | + endif() | ||
69 | + | ||
70 | + execute_process( | ||
71 | + COMMAND "${WAYLAND_SCANNER_BIN_PATH}\/${WAYLAND_SCANNER_BIN}" | ||
72 | + "private-code" "${WAYLAND_LINUX_DMABUF_XML_PATH}" | ||
73 | + "tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.c" | ||
74 | + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" | ||
75 | + RESULT_VARIABLE WAYLAND_SCANNER_RESULT) | ||
76 | + if (WAYLAND_SCANNER_RESULT) | ||
77 | + message(ERROR "Failed to generate linux-dmabuf-unstable-v1.c") | ||
78 | + return() | ||
79 | + endif() | ||
80 | + | ||
81 | + include_directories( | ||
82 | + ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland) | ||
83 | + add_definitions(-DWAYLAND_LINUX_DMABUF_SUPPORT) | ||
84 | + target_sources( | ||
85 | + ${TARGET} | ||
86 | + PRIVATE ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.c) | ||
87 | + else() | ||
88 | + message(ERROR "Don't know how to execute wayland-scanner.") | ||
89 | + return() | ||
90 | + endif() | ||
91 | +endif() | ||
92 | + | ||
93 | target_link_libraries(${TARGET} sample_common wayland-client va drm drm_intel) | ||
94 | |||
95 | install(TARGETS ${TARGET} LIBRARY DESTINATION ${_TOOLS_LIB_PATH}) | ||
96 | -- | ||
97 | 2.31.1 | ||
98 | |||
diff --git a/recipes-multimedia/onevpl/onevpl/0001-samples-use-find_program-to-detect-wayland-scanner-i.patch b/recipes-multimedia/onevpl/onevpl/0001-samples-use-find_program-to-detect-wayland-scanner-i.patch new file mode 100644 index 00000000..6f1ad93e --- /dev/null +++ b/recipes-multimedia/onevpl/onevpl/0001-samples-use-find_program-to-detect-wayland-scanner-i.patch | |||
@@ -0,0 +1,108 @@ | |||
1 | From c69500c88058358bdc6c0a036d90b000d63f2a41 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Ung, Teng En" <teng.en.ung@intel.com> | ||
3 | Date: Wed, 3 Nov 2021 14:23:15 +0000 | ||
4 | Subject: [PATCH 4/4] samples: use find_program to detect wayland-scanner in | ||
5 | cmake | ||
6 | |||
7 | Upstream-Status: Submitted | ||
8 | innersource PR #269 | ||
9 | |||
10 | --- | ||
11 | tools/legacy/sample_common/CMakeLists.txt | 4 +- | ||
12 | tools/legacy/sample_misc/wayland/CMakeLists.txt | 59 +++++++++++-------------- | ||
13 | 2 files changed, 28 insertions(+), 35 deletions(-) | ||
14 | |||
15 | diff --git a/tools/legacy/sample_common/CMakeLists.txt b/tools/legacy/sample_common/CMakeLists.txt | ||
16 | index 0ed8b39..658d44d 100644 | ||
17 | --- a/tools/legacy/sample_common/CMakeLists.txt | ||
18 | +++ b/tools/legacy/sample_common/CMakeLists.txt | ||
19 | @@ -93,10 +93,10 @@ if(UNIX) | ||
20 | ${TARGET} | ||
21 | PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../sample_misc/wayland/include) | ||
22 | |||
23 | - pkg_check_modules(PKG_WAYLAND_SCANNER "wayland-scanner>=1.15") | ||
24 | + find_program(WAYLAND_SCANNER_BIN "wayland-scanner") | ||
25 | pkg_check_modules(PKG_WAYLAND_PROTCOLS "wayland-protocols>=1.15") | ||
26 | |||
27 | - if(PKG_WAYLAND_SCANNER_FOUND AND PKG_WAYLAND_PROTCOLS_FOUND) | ||
28 | + if(WAYLAND_SCANNER_BIN AND PKG_WAYLAND_PROTCOLS_FOUND) | ||
29 | pkg_get_variable(WAYLAND_PROTOCOLS_PATH wayland-protocols pkgdatadir) | ||
30 | if(WAYLAND_PROTOCOLS_PATH) | ||
31 | find_file( | ||
32 | diff --git a/tools/legacy/sample_misc/wayland/CMakeLists.txt b/tools/legacy/sample_misc/wayland/CMakeLists.txt | ||
33 | index 01e6029..7625bc5 100644 | ||
34 | --- a/tools/legacy/sample_misc/wayland/CMakeLists.txt | ||
35 | +++ b/tools/legacy/sample_misc/wayland/CMakeLists.txt | ||
36 | @@ -29,43 +29,36 @@ target_sources( | ||
37 | ${CMAKE_CURRENT_SOURCE_DIR}/src/listener_wayland.cpp | ||
38 | ${CMAKE_CURRENT_SOURCE_DIR}/src/wayland-drm-protocol.c) | ||
39 | |||
40 | -if(PKG_WAYLAND_SCANNER_FOUND AND PKG_WAYLAND_PROTCOLS_FOUND AND WAYLAND_LINUX_DMABUF_XML_PATH) | ||
41 | - pkg_get_variable(WAYLAND_SCANNER_BIN_PATH wayland-scanner bindir) | ||
42 | - pkg_get_variable(WAYLAND_SCANNER_BIN wayland-scanner wayland_scanner) | ||
43 | + if(WAYLAND_SCANNER_BIN AND PKG_WAYLAND_PROTCOLS_FOUND AND WAYLAND_LINUX_DMABUF_XML_PATH) | ||
44 | |||
45 | - if(WAYLAND_SCANNER_BIN_PATH AND WAYLAND_SCANNER_BIN) | ||
46 | - execute_process( | ||
47 | - COMMAND "${WAYLAND_SCANNER_BIN_PATH}\/${WAYLAND_SCANNER_BIN}" | ||
48 | - "client-header" "${WAYLAND_LINUX_DMABUF_XML_PATH}" | ||
49 | - "tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.h" | ||
50 | - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" | ||
51 | - RESULT_VARIABLE WAYLAND_SCANNER_RESULT) | ||
52 | - if (WAYLAND_SCANNER_RESULT) | ||
53 | - message(ERROR "Failed to generate linux-dmabuf-unstable-v1.h") | ||
54 | - return() | ||
55 | - endif() | ||
56 | - | ||
57 | - execute_process( | ||
58 | - COMMAND "${WAYLAND_SCANNER_BIN_PATH}\/${WAYLAND_SCANNER_BIN}" | ||
59 | - "private-code" "${WAYLAND_LINUX_DMABUF_XML_PATH}" | ||
60 | - "tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.c" | ||
61 | - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" | ||
62 | - RESULT_VARIABLE WAYLAND_SCANNER_RESULT) | ||
63 | - if (WAYLAND_SCANNER_RESULT) | ||
64 | - message(ERROR "Failed to generate linux-dmabuf-unstable-v1.c") | ||
65 | - return() | ||
66 | - endif() | ||
67 | + execute_process( | ||
68 | + COMMAND "${WAYLAND_SCANNER_BIN}" | ||
69 | + "client-header" "${WAYLAND_LINUX_DMABUF_XML_PATH}" | ||
70 | + "tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.h" | ||
71 | + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" | ||
72 | + RESULT_VARIABLE WAYLAND_SCANNER_RESULT) | ||
73 | + if (WAYLAND_SCANNER_RESULT) | ||
74 | + message(ERROR "Failed to generate linux-dmabuf-unstable-v1.h") | ||
75 | + return() | ||
76 | + endif() | ||
77 | |||
78 | - include_directories( | ||
79 | - ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland) | ||
80 | - add_definitions(-DWAYLAND_LINUX_DMABUF_SUPPORT) | ||
81 | - target_sources( | ||
82 | - ${TARGET} | ||
83 | - PRIVATE ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.c) | ||
84 | - else() | ||
85 | - message(ERROR "Don't know how to execute wayland-scanner.") | ||
86 | + execute_process( | ||
87 | + COMMAND "${WAYLAND_SCANNER_BIN}" | ||
88 | + "private-code" "${WAYLAND_LINUX_DMABUF_XML_PATH}" | ||
89 | + "tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.c" | ||
90 | + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" | ||
91 | + RESULT_VARIABLE WAYLAND_SCANNER_RESULT) | ||
92 | + if (WAYLAND_SCANNER_RESULT) | ||
93 | + message(ERROR "Failed to generate linux-dmabuf-unstable-v1.c") | ||
94 | return() | ||
95 | endif() | ||
96 | + | ||
97 | + include_directories( | ||
98 | + ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland) | ||
99 | + add_definitions(-DWAYLAND_LINUX_DMABUF_SUPPORT) | ||
100 | + target_sources( | ||
101 | + ${TARGET} | ||
102 | + PRIVATE ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.c) | ||
103 | endif() | ||
104 | |||
105 | target_link_libraries(${TARGET} sample_common wayland-client va drm drm_intel) | ||
106 | -- | ||
107 | 2.7.4 | ||
108 | |||
diff --git a/recipes-multimedia/onevpl/onevpl_2021.6.0.bb b/recipes-multimedia/onevpl/onevpl_2021.6.0.bb index 86a2b60b..ae198e9a 100644 --- a/recipes-multimedia/onevpl/onevpl_2021.6.0.bb +++ b/recipes-multimedia/onevpl/onevpl_2021.6.0.bb | |||
@@ -11,6 +11,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c18ea6bb4786a26bf4eee88a7424a408 \ | |||
11 | SRC_URI = "git://github.com/oneapi-src/oneVPL.git;protocol=https;branch=master \ | 11 | SRC_URI = "git://github.com/oneapi-src/oneVPL.git;protocol=https;branch=master \ |
12 | file://0001-Fix-basename-build-issue-with-musl_libc.patch \ | 12 | file://0001-Fix-basename-build-issue-with-musl_libc.patch \ |
13 | file://0001-Extends-errorTypes-to-support-JPEG-errors.patch \ | 13 | file://0001-Extends-errorTypes-to-support-JPEG-errors.patch \ |
14 | file://0001-samples-Addin-wayland-scanner-auto-generate-on-cmake.patch \ | ||
15 | file://0001-sample_misc-Addin-basic-wayland-dmabuf-support.patch \ | ||
16 | file://0001-sample_misc-use-wayland-dmabuf-to-render-nv12.patch \ | ||
17 | file://0001-samples-use-find_program-to-detect-wayland-scanner-i.patch \ | ||
14 | " | 18 | " |
15 | SRCREV = "cdf7444dc971544d148c51e0d93a2df1bb55dda7" | 19 | SRCREV = "cdf7444dc971544d148c51e0d93a2df1bb55dda7" |
16 | S = "${WORKDIR}/git" | 20 | S = "${WORKDIR}/git" |
@@ -18,6 +22,9 @@ S = "${WORKDIR}/git" | |||
18 | inherit cmake | 22 | inherit cmake |
19 | DEPENDS += "libva pkgconfig-native" | 23 | DEPENDS += "libva pkgconfig-native" |
20 | 24 | ||
25 | PACKAGECONFIG ??= "tools" | ||
26 | PACKAGECONFIG[tools] = "-DBUILD_TOOLS=ON, -DBUILD_TOOLS=OFF, wayland wayland-native wayland-protocols" | ||
27 | |||
21 | do_install:append() { | 28 | do_install:append() { |
22 | mkdir -p ${D}${datadir}/oneVPL/samples | 29 | mkdir -p ${D}${datadir}/oneVPL/samples |
23 | mv ${D}${bindir}/sample_* ${D}${datadir}/oneVPL/samples | 30 | mv ${D}${bindir}/sample_* ${D}${datadir}/oneVPL/samples |