onevpl: upgrade 2022.0.3 -> 2022.1.5

Drops patches already merged:
* 0001-Fix-basename-build-issue-with-musl_libc.patch
* 0001-sample_common-Fix-missing-UYUV-fourcc-enc-input.patch
* 0001-sample_common-Fix-regression-of-missing-mutex-init.patch
* 0001-samples-Addin-wayland-scanner-auto-generate-on-cmake.patch
* 0002-sample_misc-Addin-basic-wayland-dmabuf-support.patch
* 0003-sample_misc-use-wayland-dmabuf-to-render-nv12.patch

Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Lim Siew Hoon 2022-07-20 11:18:37 +08:00 committed by Anuj Mittal
parent 3bb460b667
commit b1e7cf6070
7 changed files with 3 additions and 407 deletions

View File

@ -1,37 +0,0 @@
From 72ceb46b43a7a74d20ced961aaff9366ccce53a9 Mon Sep 17 00:00:00 2001
From: "Yew, Chang Ching" <chang.ching.yew@intel.com>
Date: Mon, 24 Jan 2022 20:49:50 +0800
Subject: [PATCH 1/5] Fix basename() build issue with musl_libc
Upstream-Status: Submitted
innersource PR #264
Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
---
tools/legacy/sample_common/src/vaapi_utils.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/legacy/sample_common/src/vaapi_utils.cpp b/tools/legacy/sample_common/src/vaapi_utils.cpp
index 86193d17..db71d413 100644
--- a/tools/legacy/sample_common/src/vaapi_utils.cpp
+++ b/tools/legacy/sample_common/src/vaapi_utils.cpp
@@ -7,6 +7,7 @@
#ifdef LIBVA_SUPPORT
#include "vaapi_utils.h"
+ #include <libgen.h>
#include <dlfcn.h>
#include <stdexcept>
@@ -24,7 +25,7 @@ namespace MfxLoader {
SimpleLoader::SimpleLoader(const char* name) {
dlerror();
- so_handle = dlopen(name, RTLD_GLOBAL | RTLD_NOW);
+ so_handle = dlopen(basename((char *)name), RTLD_GLOBAL | RTLD_NOW);
if (NULL == so_handle) {
std::cerr << dlerror() << std::endl;
throw std::runtime_error("Can't load library");
--
2.34.1

View File

@ -1,41 +0,0 @@
From ff5325a437e625d2007568a71d7f403f16d4c367 Mon Sep 17 00:00:00 2001
From: "Yew, Chang Ching" <chang.ching.yew@intel.com>
Date: Thu, 10 Mar 2022 13:06:28 +0800
Subject: [PATCH] sample_common: Fix missing UYUV fourcc enc input
Fix regression with commit ae3e355
Upstream-Status: Submitted
innersource PR #383
Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
---
tools/legacy/sample_common/src/sample_utils.cpp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/legacy/sample_common/src/sample_utils.cpp b/tools/legacy/sample_common/src/sample_utils.cpp
index 0437dbdb..a8e25631 100644
--- a/tools/legacy/sample_common/src/sample_utils.cpp
+++ b/tools/legacy/sample_common/src/sample_utils.cpp
@@ -114,12 +114,12 @@ mfxStatus CSmplYUVReader::Init(std::list<msdk_string> inputs,
if (MFX_FOURCC_NV12 != ColorFormat && MFX_FOURCC_YV12 != ColorFormat &&
MFX_FOURCC_I420 != ColorFormat && MFX_FOURCC_YUY2 != ColorFormat &&
- MFX_FOURCC_RGB4 != ColorFormat && MFX_FOURCC_BGR4 != ColorFormat &&
- MFX_FOURCC_P010 != ColorFormat && MFX_FOURCC_P210 != ColorFormat &&
- MFX_FOURCC_AYUV != ColorFormat && MFX_FOURCC_A2RGB10 != ColorFormat &&
- MFX_FOURCC_Y210 != ColorFormat && MFX_FOURCC_Y410 != ColorFormat &&
- MFX_FOURCC_P016 != ColorFormat && MFX_FOURCC_Y216 != ColorFormat &&
- MFX_FOURCC_I010 != ColorFormat) {
+ MFX_FOURCC_UYVY != ColorFormat && MFX_FOURCC_RGB4 != ColorFormat &&
+ MFX_FOURCC_BGR4 != ColorFormat && MFX_FOURCC_P010 != ColorFormat &&
+ MFX_FOURCC_P210 != ColorFormat && MFX_FOURCC_AYUV != ColorFormat &&
+ MFX_FOURCC_A2RGB10 != ColorFormat && MFX_FOURCC_Y210 != ColorFormat &&
+ MFX_FOURCC_Y410 != ColorFormat && MFX_FOURCC_P016 != ColorFormat &&
+ MFX_FOURCC_Y216 != ColorFormat && MFX_FOURCC_I010 != ColorFormat) {
return MFX_ERR_UNSUPPORTED;
}
--
2.17.1

View File

@ -1,48 +0,0 @@
From f6f9d62817d58909fe9eafa555b1638f165dc746 Mon Sep 17 00:00:00 2001
From: "Yew, Chang Ching" <chang.ching.yew@intel.com>
Date: Wed, 2 Mar 2022 07:56:57 +0800
Subject: [PATCH] sample_common: Fix regression of missing mutex init
Upstream-Status: Submitted
innersource PR #377
Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
---
tools/legacy/sample_common/src/vm/thread_linux.cpp | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/tools/legacy/sample_common/src/vm/thread_linux.cpp b/tools/legacy/sample_common/src/vm/thread_linux.cpp
index 819d811f..c17ce5bf 100644
--- a/tools/legacy/sample_common/src/vm/thread_linux.cpp
+++ b/tools/legacy/sample_common/src/vm/thread_linux.cpp
@@ -22,6 +22,13 @@ MSDKSemaphore::MSDKSemaphore(mfxStatus& sts, mfxU32 count) : msdkSemaphoreHandle
// If pthread_cond_init reports an error m_semaphore was not allocated
throw std::bad_alloc();
}
+ res = pthread_mutex_init(&m_mutex, NULL);
+ if (res) {
+ if (!pthread_cond_destroy(&m_semaphore)) {
+ // do nothing
+ }
+ throw std::bad_alloc();
+ }
}
MSDKSemaphore::~MSDKSemaphore(void) {
@@ -97,6 +104,13 @@ MSDKEvent::MSDKEvent(mfxStatus& sts, bool manual, bool state) : msdkEventHandle(
//non-zero means something is wrong, throw bad_alloc
throw std::bad_alloc();
}
+ res = pthread_mutex_init(&m_mutex, NULL);
+ if (res) {
+ if (!pthread_cond_destroy(&m_event)) {
+ // do nothing
+ }
+ throw std::bad_alloc();
+ }
}
MSDKEvent::~MSDKEvent(void) {
--
2.17.1

View File

@ -1,88 +0,0 @@
From 7f428b8d0ca95b43b70663c27b525c5d6f7bf28d Mon Sep 17 00:00:00 2001
From: "Ung, Teng En" <teng.en.ung@intel.com>
Date: Tue, 25 Jan 2022 16:36:19 +0800
Subject: [PATCH 1/3] samples: Addin wayland-scanner auto generate on cmake.
Upstream-Status: Submitted
innersource PR #269
---
tools/legacy/sample_common/CMakeLists.txt | 22 +++++++++++++++++++
tools/legacy/sample_misc/wayland/CMakeLists.txt | 29 +++++++++++++++++++++++++
2 files changed, 51 insertions(+)
diff --git a/tools/legacy/sample_common/CMakeLists.txt b/tools/legacy/sample_common/CMakeLists.txt
index 24245cd..030ffee 100644
--- a/tools/legacy/sample_common/CMakeLists.txt
+++ b/tools/legacy/sample_common/CMakeLists.txt
@@ -103,6 +103,28 @@ if(CMAKE_SYSTEM_NAME MATCHES Linux)
target_include_directories(
sample_common
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../sample_misc/wayland/include)
+
+ find_program(WAYLAND_SCANNER_BIN "wayland-scanner")
+ pkg_check_modules(PKG_WAYLAND_PROTCOLS "wayland-protocols>=1.15")
+
+ if(WAYLAND_SCANNER_BIN AND PKG_WAYLAND_PROTCOLS_FOUND)
+ pkg_get_variable(WAYLAND_PROTOCOLS_PATH wayland-protocols pkgdatadir)
+ if(WAYLAND_PROTOCOLS_PATH)
+ find_file(
+ WAYLAND_LINUX_DMABUF_XML_PATH linux-dmabuf-unstable-v1.xml
+ PATHS ${WAYLAND_PROTOCOLS_PATH}/unstable/linux-dmabuf
+ NO_DEFAULT_PATH)
+ endif()
+ endif()
+
+ if(WAYLAND_LINUX_DMABUF_XML_PATH)
+ target_compile_definitions(
+ sample_common PUBLIC WAYLAND_LINUX_DMABUF_SUPPORT)
+ target_include_directories(
+ sample_common
+ PUBLIC ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland)
+ endif()
+
else()
message(
WARNING
diff --git a/tools/legacy/sample_misc/wayland/CMakeLists.txt b/tools/legacy/sample_misc/wayland/CMakeLists.txt
index cf91987..a2dffbb 100644
--- a/tools/legacy/sample_misc/wayland/CMakeLists.txt
+++ b/tools/legacy/sample_misc/wayland/CMakeLists.txt
@@ -20,6 +20,35 @@ target_sources(
${CMAKE_CURRENT_SOURCE_DIR}/src/listener_wayland.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/wayland-drm-protocol.c)
+if(WAYLAND_SCANNER_BIN AND PKG_WAYLAND_PROTCOLS_FOUND AND WAYLAND_LINUX_DMABUF_XML_PATH)
+ execute_process(
+ COMMAND "${WAYLAND_SCANNER_BIN_PATH}\/${WAYLAND_SCANNER_BIN}"
+ "client-header" "${WAYLAND_LINUX_DMABUF_XML_PATH}"
+ "tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.h"
+ WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+ RESULT_VARIABLE WAYLAND_SCANNER_RESULT)
+ if (WAYLAND_SCANNER_RESULT)
+ message(FATAL_ERROR "Failed to generate linux-dmabuf-unstable-v1.h")
+ endif()
+
+ execute_process(
+ COMMAND "${WAYLAND_SCANNER_BIN_PATH}\/${WAYLAND_SCANNER_BIN}"
+ "private-code" "${WAYLAND_LINUX_DMABUF_XML_PATH}"
+ "tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.c"
+ WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+ RESULT_VARIABLE WAYLAND_SCANNER_RESULT)
+ if (WAYLAND_SCANNER_RESULT)
+ message(FATAL_ERROR "Failed to generate linux-dmabuf-unstable-v1.c")
+ endif()
+
+ target_include_directories(
+ vpl_wayland PRIVATE ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland)
+ target_sources(
+ vpl_wayland
+ PRIVATE ${CMAKE_BINARY_DIR}/tools/legacy/sample_misc/wayland/linux-dmabuf-unstable-v1.c)
+endif()
+
+
target_link_libraries(vpl_wayland PRIVATE sample_common wayland-client va drm
drm_intel)
--
2.7.4

View File

@ -1,90 +0,0 @@
From 047b7865a69e26c9091b22dceceae1b609a3efbc Mon Sep 17 00:00:00 2001
From: "Ung, Teng En" <teng.en.ung@intel.com>
Date: Fri, 8 Oct 2021 14:19:40 +0000
Subject: [PATCH 2/3] sample_misc: Addin basic wayland dmabuf support.
Upstream-Status: Submitted
innersource PR #269
---
tools/legacy/sample_misc/wayland/include/class_wayland.h | 16 ++++++++++++++++
tools/legacy/sample_misc/wayland/src/class_wayland.cpp | 8 ++++++++
2 files changed, 24 insertions(+)
diff --git a/tools/legacy/sample_misc/wayland/include/class_wayland.h b/tools/legacy/sample_misc/wayland/include/class_wayland.h
index 29f724f..753b8b1 100644
--- a/tools/legacy/sample_misc/wayland/include/class_wayland.h
+++ b/tools/legacy/sample_misc/wayland/include/class_wayland.h
@@ -19,6 +19,9 @@ extern "C" {
#include "sample_defs.h"
#include "vpl/mfxstructures.h"
#include "wayland-drm-client-protocol.h"
+#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
+ #include "linux-dmabuf-unstable-v1.h"
+#endif
typedef struct buffer wld_buffer;
@@ -80,6 +83,11 @@ public:
struct wl_drm* GetDrm() {
return m_drm;
}
+#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
+ struct zwp_linux_dmabuf_v1* GetDMABuf() {
+ return m_dmabuf;
+ }
+#endif
struct wl_shm* GetShm() {
return m_shm;
};
@@ -107,6 +115,11 @@ public:
void SetDrm(struct wl_drm* drm) {
m_drm = drm;
}
+#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
+ void SetDMABuf(struct zwp_linux_dmabuf_v1* dmabuf) {
+ m_dmabuf = dmabuf;
+ }
+#endif
void DrmHandleDevice(const char* device);
void DrmHandleAuthenticated();
void RegistryGlobal(struct wl_registry* registry,
@@ -134,6 +147,9 @@ private:
struct wl_compositor* m_compositor;
struct wl_shell* m_shell;
struct wl_drm* m_drm;
+#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
+ struct zwp_linux_dmabuf_v1* m_dmabuf;
+#endif
struct wl_shm* m_shm;
struct wl_shm_pool* m_pool;
struct wl_surface* m_surface;
diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
index c5e3359..7eac204 100644
--- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
+++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
@@ -37,6 +37,9 @@ Wayland::Wayland()
m_compositor(NULL),
m_shell(NULL),
m_drm(NULL),
+#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
+ m_dmabuf(NULL),
+#endif
m_shm(NULL),
m_pool(NULL),
m_surface(NULL),
@@ -347,6 +350,11 @@ void Wayland::RegistryGlobal(struct wl_registry* registry,
m_drm = static_cast<wl_drm*>(wl_registry_bind(registry, name, &wl_drm_interface, 2));
wl_drm_add_listener(m_drm, &drm_listener, this);
}
+#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
+ else if(0 == strcmp(interface, "zwp_linux_dmabuf_v1"))
+ m_dmabuf = static_cast<zwp_linux_dmabuf_v1*>(
+ wl_registry_bind(registry, name, &zwp_linux_dmabuf_v1_interface, version));
+#endif
}
void Wayland::DrmHandleDevice(const char* name) {
--
2.7.4

View File

@ -1,94 +0,0 @@
From e2b5041b272e0cb8b3c4c9d332b0bbc3dda05e69 Mon Sep 17 00:00:00 2001
From: "Ung, Teng En" <teng.en.ung@intel.com>
Date: Fri, 8 Oct 2021 14:38:45 +0000
Subject: [PATCH 3/3] sample_misc: use wayland dmabuf to render nv12
Upstream-Status: Submitted
innersource PR #269
---
.../sample_misc/wayland/src/class_wayland.cpp | 60 +++++++++++++++++-----
1 file changed, 47 insertions(+), 13 deletions(-)
diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
index 7eac204..68fcea4 100644
--- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
+++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
@@ -13,6 +13,7 @@
#include <iostream>
extern "C" {
#include <drm.h>
+#include <drm_fourcc.h>
#include <intel_bufmgr.h>
#include <xf86drm.h>
}
@@ -292,20 +293,53 @@ struct wl_buffer* Wayland::CreatePrimeBuffer(uint32_t name,
int32_t offsets[3],
int32_t pitches[3]) {
struct wl_buffer* buffer = NULL;
- if (NULL == m_drm)
- return NULL;
- buffer = wl_drm_create_prime_buffer(m_drm,
- name,
- width,
- height,
- format,
- offsets[0],
- pitches[0],
- offsets[1],
- pitches[1],
- offsets[2],
- pitches[2]);
+#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
+ if (format == WL_DRM_FORMAT_NV12) {
+ if(NULL == m_dmabuf)
+ return NULL;
+
+ struct zwp_linux_buffer_params_v1 *dmabuf_params = NULL;
+ int i = 0;
+ uint64_t modifier = I915_FORMAT_MOD_Y_TILED;
+
+ dmabuf_params = zwp_linux_dmabuf_v1_create_params(m_dmabuf);
+ for(i = 0; i < 2; i++) {
+ zwp_linux_buffer_params_v1_add(dmabuf_params,
+ name,
+ i,
+ offsets[i],
+ pitches[i],
+ modifier >> 32,
+ modifier & 0xffffffff);
+ }
+
+ buffer = zwp_linux_buffer_params_v1_create_immed(dmabuf_params,
+ width,
+ height,
+ format,
+ 0);
+
+ zwp_linux_buffer_params_v1_destroy(dmabuf_params);
+ } else
+#endif
+ {
+ if(NULL == m_drm)
+ return NULL;
+
+ buffer = wl_drm_create_prime_buffer(m_drm,
+ name,
+ width,
+ height,
+ format,
+ offsets[0],
+ pitches[0],
+ offsets[1],
+ pitches[1],
+ offsets[2],
+ pitches[2]);
+ }
+
return buffer;
}
--
2.7.4

View File

@ -6,17 +6,11 @@ that works across a wide range of accelerators."
HOMEPAGE = "https://github.com/oneapi-src/oneVPL"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c18ea6bb4786a26bf4eee88a7424a408 \
file://third-party-programs.txt;md5=43ed11c52f754dafaa62e2cfdd2bac13"
file://third-party-programs.txt;md5=f43d223f2b736e89abed9660483d0386"
SRC_URI = "git://github.com/oneapi-src/oneVPL.git;protocol=https;branch=master \
file://0001-Fix-basename-build-issue-with-musl_libc.patch \
file://0001-samples-Addin-wayland-scanner-auto-generate-on-cmake.patch \
file://0002-sample_misc-Addin-basic-wayland-dmabuf-support.patch \
file://0003-sample_misc-use-wayland-dmabuf-to-render-nv12.patch \
file://0001-sample_common-Fix-regression-of-missing-mutex-init.patch \
file://0001-sample_common-Fix-missing-UYUV-fourcc-enc-input.patch \
"
SRCREV = "efc259f8b7ee5c334bca1a904a503186038bbbdd"
SRCREV = "b90dbc9e673ee119f841e67184194446069c45a6"
S = "${WORKDIR}/git"
inherit cmake
@ -41,5 +35,5 @@ FILES_SOLIBSDEV = ""
FILES:${PN}-dev += "${libdir}/libvpl.so"
FILES:${PN} += "${datadir} \
${libdir}/oneVPL/libvpl_wayland.so \
${libdir}/vpl/libvpl_wayland.so \
"