onevpl: upgrade 2023.1.3 -> 2023.3.0

Drops patches already merged:
 - 0001-Fix-valgrind-leak-reported-on-wayland.patch
 - 0002-Fix-sample_multi_transcode-segfault-on-wayland.patch
 - 0003-Fix-X11-rendering-corruption-issue.patch
 - 0004-Adjust-MPEG-1920x1088-alignment.patch
 - 0005-Fix-sample_multi_transcode-intermittent-segfault.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 2023-08-09 17:07:41 +08:00 committed by Anuj Mittal
parent 0a8af9c93c
commit c29299d261
6 changed files with 1 additions and 343 deletions

View File

@ -1,111 +0,0 @@
From 19005bb487c31aacecab333d8a40ab6434885911 Mon Sep 17 00:00:00 2001
From: Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com>
Date: Fri, 24 Mar 2023 22:59:08 +0800
Subject: [PATCH 1/5] Fix valgrind leak reported on wayland
Upstream-Status: Backport
Expect it to be removed once move to v2023.2.0 and above.
https://github.com/oneapi-src/oneVPL/commit/d276bb08e060956cde678d2c15fc291eec46d1dc
---
.../legacy/sample_common/include/vaapi_utils.h | 2 ++
tools/legacy/sample_common/src/vaapi_device.cpp | 1 +
tools/legacy/sample_common/src/vaapi_utils.cpp | 3 ++-
.../sample_misc/wayland/src/class_wayland.cpp | 17 +++++++++++++++--
4 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/tools/legacy/sample_common/include/vaapi_utils.h b/tools/legacy/sample_common/include/vaapi_utils.h
index 9d80255..2598883 100644
--- a/tools/legacy/sample_common/include/vaapi_utils.h
+++ b/tools/legacy/sample_common/include/vaapi_utils.h
@@ -315,11 +315,13 @@ private:
public:
typedef Wayland* (*WaylandCreate_type)(void);
+ typedef void (*WaylandDestroy_type)(Wayland*);
VA_WaylandClientProxy();
~VA_WaylandClientProxy();
const WaylandCreate_type WaylandCreate;
+ const WaylandDestroy_type WaylandDestroy;
};
#endif // LIBVA_WAYLAND_SUPPORT
diff --git a/tools/legacy/sample_common/src/vaapi_device.cpp b/tools/legacy/sample_common/src/vaapi_device.cpp
index e621251..98c5883 100644
--- a/tools/legacy/sample_common/src/vaapi_device.cpp
+++ b/tools/legacy/sample_common/src/vaapi_device.cpp
@@ -349,6 +349,7 @@ mfxStatus CVAAPIDeviceX11::RenderFrame(mfxFrameSurface1* pSurface,
CVAAPIDeviceWayland::~CVAAPIDeviceWayland(void) {
Close();
+ m_WaylandClient.WaylandDestroy((MfxLoader::Wayland*)m_Wayland);
}
mfxStatus CVAAPIDeviceWayland::Init(mfxHDL hWindow, mfxU16 nViews, mfxU32 nAdapterNum) {
diff --git a/tools/legacy/sample_common/src/vaapi_utils.cpp b/tools/legacy/sample_common/src/vaapi_utils.cpp
index e107624..d7aba0a 100644
--- a/tools/legacy/sample_common/src/vaapi_utils.cpp
+++ b/tools/legacy/sample_common/src/vaapi_utils.cpp
@@ -182,7 +182,8 @@ Xcbpresent_Proxy::~Xcbpresent_Proxy() {}
VA_WaylandClientProxy::VA_WaylandClientProxy()
: lib(WAYLAND_LIB),
- SIMPLE_LOADER_FUNCTION(WaylandCreate) {}
+ SIMPLE_LOADER_FUNCTION(WaylandCreate),
+ SIMPLE_LOADER_FUNCTION(WaylandDestroy) {}
VA_WaylandClientProxy::~VA_WaylandClientProxy() {}
diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
index 1a0bffa..8f6edbb 100644
--- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
+++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
@@ -149,11 +149,15 @@ void Wayland::FreeSurface() {
if (NULL != m_surface)
wl_surface_destroy(m_surface);
#if defined(WAYLAND_LINUX_XDG_SHELL_SUPPORT)
- if (nullptr != m_xdg_toplevel)
+ if (NULL != m_xdg_toplevel)
xdg_toplevel_destroy(m_xdg_toplevel);
- if (nullptr != m_xdg_surface)
+ if (NULL != m_xdg_surface)
xdg_surface_destroy(m_xdg_surface);
#endif
+#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
+ if (NULL != m_dmabuf)
+ zwp_linux_dmabuf_v1_destroy(m_dmabuf);
+#endif
}
void Wayland::Sync() {
@@ -379,10 +383,16 @@ struct wl_buffer* Wayland::CreatePrimeBuffer(uint32_t name,
}
Wayland::~Wayland() {
+#if defined(WAYLAND_LINUX_XDG_SHELL_SUPPORT)
+ if (NULL != m_xdg_wm_base)
+ xdg_wm_base_destroy(m_xdg_wm_base);
+#endif
if (NULL != m_shell)
wl_shell_destroy(m_shell);
if (NULL != m_shm)
wl_shm_destroy(m_shm);
+ if (NULL != m_drm)
+ wl_drm_destroy(m_drm);
if (NULL != m_bufmgr) {
drm_intel_bufmgr_destroy(m_bufmgr);
}
@@ -492,6 +502,9 @@ void Wayland::DestroyBufferList() {
msdkFrameSurface* surface = FindUsedSurface(m_buffer->pInSurface);
msdk_atomic_dec16(&(surface->render_lock));
}
+ wl_buffer_destroy(m_buffer->buffer);
+ m_buffer->buffer = NULL;
+ m_buffer->pInSurface = NULL;
m_buffers_list.pop_front();
delete m_buffer;
}
--
2.40.1

View File

@ -1,87 +0,0 @@
From 72ef4e2878f8cc2df431411027c92dc41ff26a2b Mon Sep 17 00:00:00 2001
From: Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com>
Date: Wed, 15 Mar 2023 22:37:08 +0800
Subject: [PATCH 2/5] Fix sample_multi_transcode segfault on wayland
HSD ID: 15012772965
Tested command: ./sample_multi_transcode -par ../../config.par
Upstream-Status: Backport
Expect it to be removed once move to v2023.2.0 and above.
https://github.com/oneapi-src/oneVPL/commit/59c850db505d32e6b7e4d68ced8d714afe390a70
---
.../sample_misc/wayland/src/class_wayland.cpp | 27 +++++++++++++++----
.../src/pipeline_transcode.cpp | 6 ++++-
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
index 8f6edbb..af4d3f3 100644
--- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
+++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
@@ -144,19 +144,36 @@ bool Wayland::CreateSurface() {
}
void Wayland::FreeSurface() {
- if (NULL != m_shell_surface)
+ if (NULL != m_shell_surface) {
wl_shell_surface_destroy(m_shell_surface);
- if (NULL != m_surface)
+ m_shell_surface = NULL;
+ }
+ if (NULL != m_surface) {
+ while (!m_buffers_list.empty()) {
+ wl_surface_attach(m_surface, NULL, 0, 0);
+ wl_surface_commit(m_surface);
+ if (wl_display_dispatch_queue(m_display, m_event_queue) < 1)
+ break;
+ }
+
wl_surface_destroy(m_surface);
+ m_surface = NULL;
+ }
#if defined(WAYLAND_LINUX_XDG_SHELL_SUPPORT)
- if (NULL != m_xdg_toplevel)
+ if (NULL != m_xdg_toplevel) {
xdg_toplevel_destroy(m_xdg_toplevel);
- if (NULL != m_xdg_surface)
+ m_xdg_toplevel = NULL;
+ }
+ if (NULL != m_xdg_surface) {
xdg_surface_destroy(m_xdg_surface);
+ m_xdg_surface = NULL;
+ }
#endif
#if defined(WAYLAND_LINUX_DMABUF_SUPPORT)
- if (NULL != m_dmabuf)
+ if (NULL != m_dmabuf) {
zwp_linux_dmabuf_v1_destroy(m_dmabuf);
+ m_dmabuf = NULL;
+ }
#endif
}
diff --git a/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp b/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp
index 1c39daf..5e69a94 100644
--- a/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp
+++ b/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp
@@ -4675,12 +4675,16 @@ void CTranscodingPipeline::Close() {
m_bIsJoinSession = false;
}
- //Destroy renderer
#if defined(_WIN32) || defined(_WIN64)
+ //Destroy renderer
if (m_hwdev4Rendering) {
delete m_hwdev4Rendering;
m_hwdev4Rendering = NULL;
}
+#else
+ if (m_hwdev4Rendering) {
+ m_hwdev4Rendering->Close();
+ }
#endif
if (m_b3DLutEnable) {
--
2.40.1

View File

@ -1,30 +0,0 @@
From 9e13ea07fda1516f3c680929bea880aa4d303721 Mon Sep 17 00:00:00 2001
From: Lim Siew Hoon <siew.hoon.lim@intel.com>
Date: Thu, 23 Mar 2023 09:46:04 +0800
Subject: [PATCH 3/5] Fix X11 rendering corruption issue.
Upstream-Status: Backport
Expect it to be removed once move to v2023.3.0 and above.
https://github.com/oneapi-src/oneVPL/commit/f129e3ba2ca276f08003ae314d674fba4b5290cd
Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
---
tools/legacy/sample_common/src/vaapi_device.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/legacy/sample_common/src/vaapi_device.cpp b/tools/legacy/sample_common/src/vaapi_device.cpp
index 98c5883..b90443a 100644
--- a/tools/legacy/sample_common/src/vaapi_device.cpp
+++ b/tools/legacy/sample_common/src/vaapi_device.cpp
@@ -271,7 +271,7 @@ mfxStatus CVAAPIDeviceX11::RenderFrame(mfxFrameSurface1* pSurface,
width = pSurface->Info.CropX + pSurface->Info.CropW;
height = pSurface->Info.CropY + pSurface->Info.CropH;
- stride = width * bpp / 8;
+ stride = memId->m_image.pitches[0];
size = PAGE_ALIGN(stride * height);
bo = drmintellib.drm_intel_bo_gem_create_from_prime(m_bufmgr,
--
2.40.1

View File

@ -1,75 +0,0 @@
From e73b46657b286cd015e489e691166cbc79f5e79e Mon Sep 17 00:00:00 2001
From: Lim Siew Hoon <siew.hoon.lim@intel.com>
Date: Thu, 20 Apr 2023 10:16:30 +0800
Subject: [PATCH 4/5] Adjust MPEG 1920x1088 alignment
Driver alignment for Mjpeg decode is 8,
but vpp need 16 alignment.
[Internal]
OSPR: Auto
Commit_Type: BugFix
Platforms: Gen11+
OS: Windows and Linux
Feature impact: Dec_Legacy
Resolves: N/A
Related-to: PR#6323
Klocwork: N/A
TP_Passed: N/A
IP Scan: N/A
Open/Embargo Dependency: N/A
Signed-off-by: Teng, Jin Chung <jin.chung.teng@intel.com>
Upstream-Status: Backport
Expect it to be removed once move to v2023.3.0 and above.
https://github.com/oneapi-src/oneVPL/commit/7fe92332a7c32e85e6bb0a2724d66ce7124006ee
Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
---
tools/legacy/sample_decode/src/pipeline_decode.cpp | 9 +++++++++
.../sample_multi_transcode/src/pipeline_transcode.cpp | 8 ++++++++
2 files changed, 17 insertions(+)
diff --git a/tools/legacy/sample_decode/src/pipeline_decode.cpp b/tools/legacy/sample_decode/src/pipeline_decode.cpp
index c0d5c46..47c17f3 100644
--- a/tools/legacy/sample_decode/src/pipeline_decode.cpp
+++ b/tools/legacy/sample_decode/src/pipeline_decode.cpp
@@ -800,6 +800,15 @@ mfxStatus CDecodingPipeline::InitMfxParams(sInputParams* pParams) {
m_mfxVideoParams.mfx.FrameInfo.PicStruct = m_mfxBS.PicStruct;
}
+ // MJPEG decoder just need 8 alignment for height but VPP need 16 alignment still
+ if (m_bVppIsUsed && (m_mfxVideoParams.mfx.CodecId == MFX_CODEC_JPEG) &&
+ (pParams->bUseHWLib)) {
+ m_mfxVideoParams.mfx.FrameInfo.Height =
+ (MFX_PICSTRUCT_PROGRESSIVE == m_mfxVideoParams.mfx.FrameInfo.PicStruct)
+ ? MSDK_ALIGN16(m_mfxVideoParams.mfx.FrameInfo.Height)
+ : MSDK_ALIGN32(m_mfxVideoParams.mfx.FrameInfo.Height);
+ }
+
switch (pParams->nRotation) {
case 0:
m_mfxVideoParams.mfx.Rotation = MFX_ROTATION_0;
diff --git a/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp b/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp
index 5e69a94..26b0915 100644
--- a/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp
+++ b/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp
@@ -406,6 +406,14 @@ mfxStatus CTranscodingPipeline::VPPPreInit(sInputParams* pParams) {
}
if (m_bIsVpp) {
+ // MJPEG decoder just need 8 alignment for height but VPP need 16 alignment still
+ if ((pParams->DecodeId == MFX_CODEC_JPEG) && (pParams->libType != MFX_IMPL_SOFTWARE)) {
+ m_mfxDecParams.mfx.FrameInfo.Height =
+ (m_mfxDecParams.mfx.FrameInfo.PicStruct == MFX_PICSTRUCT_PROGRESSIVE)
+ ? MSDK_ALIGN16(m_mfxDecParams.mfx.FrameInfo.Height)
+ : MSDK_ALIGN32(m_mfxDecParams.mfx.FrameInfo.Height);
+ }
+
sts = InitVppMfxParams(m_mfxVppParams, pParams);
MSDK_CHECK_STATUS(sts, "InitVppMfxParams failed");
--
2.40.1

View File

@ -1,34 +0,0 @@
From 1f03f8e2569e69e558d077643ea628d3ba3cacb7 Mon Sep 17 00:00:00 2001
From: Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com>
Date: Thu, 25 May 2023 01:16:18 +0800
Subject: [PATCH 5/5] Fix sample_multi_transcode intermittent segfault
HSD ID: 15012772965
Tested command: ./sample_multi_transcode -par config.par
Upstream-Status: Backport
Expect it to be removed once move to v2023.3.0 and above.
https://github.com/oneapi-src/oneVPL/commit/c21756e6a235fbde08844cca5e429ca142eef479
---
tools/legacy/sample_misc/wayland/src/class_wayland.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
index af4d3f3..e86ceee 100644
--- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
+++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp
@@ -152,8 +152,10 @@ void Wayland::FreeSurface() {
while (!m_buffers_list.empty()) {
wl_surface_attach(m_surface, NULL, 0, 0);
wl_surface_commit(m_surface);
- if (wl_display_dispatch_queue(m_display, m_event_queue) < 1)
+ if (wl_display_dispatch_queue(m_display, m_event_queue) < 1) {
+ DestroyBufferList();
break;
+ }
}
wl_surface_destroy(m_surface);
--
2.40.1

View File

@ -9,14 +9,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c18ea6bb4786a26bf4eee88a7424a408 \
file://third-party-programs.txt;md5=f43d223f2b736e89abed9660483d0386" file://third-party-programs.txt;md5=f43d223f2b736e89abed9660483d0386"
SRC_URI = "git://github.com/oneapi-src/oneVPL.git;protocol=https;branch=master \ SRC_URI = "git://github.com/oneapi-src/oneVPL.git;protocol=https;branch=master \
file://0001-Fix-valgrind-leak-reported-on-wayland.patch \
file://0002-Fix-sample_multi_transcode-segfault-on-wayland.patch \
file://0003-Fix-X11-rendering-corruption-issue.patch \
file://0004-Adjust-MPEG-1920x1088-alignment.patch \
file://0005-Fix-sample_multi_transcode-intermittent-segfault.patch \
file://0006-vpl.pc.in-dont-pass-pcfiledir.patch \ file://0006-vpl.pc.in-dont-pass-pcfiledir.patch \
" "
SRCREV = "4cdf44ccaa605460499c52f39eff5517da2fc3c8" SRCREV = "e12ace9761bb52786409e830f619916b86e87fc5"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
inherit cmake inherit cmake