From 82a05e9558a7cd2981d2dec2094a86f83bff1377 Mon Sep 17 00:00:00 2001 From: Lim Siew Hoon Date: Mon, 25 Oct 2021 10:23:00 +0800 Subject: intel-mediasdk: upgrade 21.2.3 -> 21.3.5 Drops patches already merged: * 0001-Add-support-of-DRM_FORMAT_NV12-for-console-mode-rend.patch * 0001-Fixed-tile-modifier-issue-for-NV12-format.patch Signed-off-by: Lim Siew Hoon Signed-off-by: Anuj Mittal --- ...-of-DRM_FORMAT_NV12-for-console-mode-rend.patch | 146 --------------------- ...Fixed-tile-modifier-issue-for-NV12-format.patch | 49 ------- .../mediasdk/intel-mediasdk_21.2.3.bb | 62 --------- .../mediasdk/intel-mediasdk_21.3.5.bb | 60 +++++++++ 4 files changed, 60 insertions(+), 257 deletions(-) delete mode 100644 recipes-multimedia/mediasdk/files/0001-Add-support-of-DRM_FORMAT_NV12-for-console-mode-rend.patch delete mode 100644 recipes-multimedia/mediasdk/files/0001-Fixed-tile-modifier-issue-for-NV12-format.patch delete mode 100644 recipes-multimedia/mediasdk/intel-mediasdk_21.2.3.bb create mode 100644 recipes-multimedia/mediasdk/intel-mediasdk_21.3.5.bb (limited to 'recipes-multimedia') diff --git a/recipes-multimedia/mediasdk/files/0001-Add-support-of-DRM_FORMAT_NV12-for-console-mode-rend.patch b/recipes-multimedia/mediasdk/files/0001-Add-support-of-DRM_FORMAT_NV12-for-console-mode-rend.patch deleted file mode 100644 index 4b3c650e..00000000 --- a/recipes-multimedia/mediasdk/files/0001-Add-support-of-DRM_FORMAT_NV12-for-console-mode-rend.patch +++ /dev/null @@ -1,146 +0,0 @@ -From a1216ce48771a2c7cf690d148d64c2797a960720 Mon Sep 17 00:00:00 2001 -From: "Sodhi, Vunny" -Date: Fri, 28 May 2021 11:40:21 +0800 -Subject: [meta-intel][PATCH] Add support of DRM_FORMAT_NV12 for console mode rendering - -Currently in drm/console mode only RGB4 direct rendering -is possible. This patch add NV12 format provided your -platform and kernel can support it. - -Tested both formats using: -sample_encode h265 -i 4k.h265 -rdrm -nv12 -sample_encode h265 -i 4k.h265 -rdrm -rgb4 - -Issue: #2675 - -Upstream-Status: Backport -https://github.com/Intel-Media-SDK/MediaSDK/pull/2704 - -Signed-off: Fu, Wei A -Signed-off-by: Sodhi, Vunny ---- - samples/sample_common/include/vaapi_utils.h | 4 +++ - samples/sample_common/src/vaapi_allocator.cpp | 1 + - samples/sample_common/src/vaapi_utils.cpp | 1 + - samples/sample_common/src/vaapi_utils_drm.cpp | 45 ++++++++++++++++++++++++--- - 4 files changed, 46 insertions(+), 5 deletions(-) - -diff --git a/samples/sample_common/include/vaapi_utils.h b/samples/sample_common/include/vaapi_utils.h -index 49589c6..39f77b9 100644 ---- a/samples/sample_common/include/vaapi_utils.h -+++ b/samples/sample_common/include/vaapi_utils.h -@@ -154,6 +154,9 @@ namespace MfxLoader - int fd, uint32_t width, uint32_t height, uint8_t depth, - uint8_t bpp, uint32_t pitch, uint32_t bo_handle, - uint32_t *buf_id); -+ typedef int (*drmModeAddFB2WithModifiers_type)(int fd, uint32_t width, uint32_t height, uint32_t pixel_format, -+ uint32_t bo_handles[4], uint32_t pitches[4], uint32_t offsets[4], uint64_t modifier[4], -+ uint32_t *buf_id, uint32_t flags); - typedef void (*drmModeFreeConnector_type)( drmModeConnectorPtr ptr ); - typedef void (*drmModeFreeCrtc_type)( drmModeCrtcPtr ptr ); - typedef void (*drmModeFreeEncoder_type)( drmModeEncoderPtr ptr ); -@@ -188,6 +191,7 @@ namespace MfxLoader - #define __DECLARE(name) const name ## _type name - __DECLARE(drmIoctl); - __DECLARE(drmModeAddFB); -+ __DECLARE(drmModeAddFB2WithModifiers); - __DECLARE(drmModeFreeConnector); - __DECLARE(drmModeFreeCrtc); - __DECLARE(drmModeFreeEncoder); -diff --git a/samples/sample_common/src/vaapi_allocator.cpp b/samples/sample_common/src/vaapi_allocator.cpp -index bf20b0d..442eca0 100644 ---- a/samples/sample_common/src/vaapi_allocator.cpp -+++ b/samples/sample_common/src/vaapi_allocator.cpp -@@ -408,6 +408,7 @@ mfxStatus vaapiFrameAllocator::AllocImpl(mfxFrameAllocRequest *request, mfxFrame - } - } - if (m_exporter) { -+ vaapi_mids[i].m_fourcc = va_fourcc; - vaapi_mids[i].m_custom = m_exporter->acquire(&vaapi_mids[i]); - if (!vaapi_mids[i].m_custom) { - mfx_res = MFX_ERR_UNKNOWN; -diff --git a/samples/sample_common/src/vaapi_utils.cpp b/samples/sample_common/src/vaapi_utils.cpp -index 680c5c3..83ba46c 100644 ---- a/samples/sample_common/src/vaapi_utils.cpp -+++ b/samples/sample_common/src/vaapi_utils.cpp -@@ -111,6 +111,7 @@ DRM_Proxy::DRM_Proxy() - : lib("libdrm.so.2") - , SIMPLE_LOADER_FUNCTION(drmIoctl) - , SIMPLE_LOADER_FUNCTION(drmModeAddFB) -+ , SIMPLE_LOADER_FUNCTION(drmModeAddFB2WithModifiers) - , SIMPLE_LOADER_FUNCTION(drmModeFreeConnector) - , SIMPLE_LOADER_FUNCTION(drmModeFreeCrtc) - , SIMPLE_LOADER_FUNCTION(drmModeFreeEncoder) -diff --git a/samples/sample_common/src/vaapi_utils_drm.cpp b/samples/sample_common/src/vaapi_utils_drm.cpp -index 9663245..5ad73dd 100644 ---- a/samples/sample_common/src/vaapi_utils_drm.cpp -+++ b/samples/sample_common/src/vaapi_utils_drm.cpp -@@ -28,6 +28,7 @@ or https://software.intel.com/en-us/media-client-solutions-support. - - #include "vaapi_utils_drm.h" - #include -+#include "i915_drm.h" - - constexpr mfxU32 MFX_DRI_MAX_NODES_NUM = 16; - constexpr mfxU32 MFX_DRI_RENDER_START_INDEX = 128; -@@ -343,7 +344,8 @@ bool drmRenderer::getPlane() - if (plane) { - if (plane->possible_crtcs & (1 << m_crtcIndex)) { - for (uint32_t j = 0; j < plane->count_formats; ++j) { -- if (plane->formats[j] == DRM_FORMAT_XRGB8888) { -+ if ((plane->formats[j] == DRM_FORMAT_XRGB8888) -+ || (plane->formats[j] == DRM_FORMAT_NV12)) { - m_planeID = plane->plane_id; - m_drmlib.drmModeFreePlane(plane); - m_drmlib.drmModeFreePlaneResources(planes); -@@ -420,10 +422,43 @@ void* drmRenderer::acquire(mfxMemId mid) - int ret = m_drmlib.drmIoctl(m_fd, DRM_IOCTL_GEM_OPEN, &flink_open); - if (ret) return NULL; - -- ret = m_drmlib.drmModeAddFB(m_fd, -- vmid->m_image.width, vmid->m_image.height, -- 24, 32, vmid->m_image.pitches[0], -- flink_open.handle, &fbhandle); -+ uint32_t handles[4], pitches[4], offsets[4], pixel_format; -+ uint64_t modifiers[4]; -+ -+ memset(&handles, 0, sizeof(handles)); -+ memset(&pitches, 0, sizeof(pitches)); -+ memset(&offsets, 0, sizeof(offsets)); -+ memset(&modifiers, 0, sizeof(modifiers)); -+ -+ handles[0] = flink_open.handle; -+ pitches[0] = vmid->m_image.pitches[0]; -+ offsets[0] = vmid->m_image.offsets[0]; -+ -+ if (VA_FOURCC_NV12 == vmid->m_fourcc) { -+ struct drm_i915_gem_set_tiling set_tiling; -+ -+ pixel_format = DRM_FORMAT_NV12; -+ memset(&set_tiling, 0, sizeof(set_tiling)); -+ set_tiling.handle = flink_open.handle; -+ set_tiling.tiling_mode = I915_TILING_Y; -+ set_tiling.stride = vmid->m_image.pitches[0]; -+ ret = m_drmlib.drmIoctl(m_fd, DRM_IOCTL_I915_GEM_SET_TILING, &set_tiling); -+ if (ret) { -+ msdk_printf(MSDK_STRING("DRM_IOCTL_I915_GEM_SET_TILING Failed ret = %d\n"),ret); -+ return NULL; -+ } -+ -+ handles[1] = flink_open.handle; -+ pitches[1] = vmid->m_image.pitches[1]; -+ offsets[1] = vmid->m_image.offsets[1]; -+ modifiers[0] = modifiers[1] = I915_FORMAT_MOD_Y_TILED; -+ } -+ else { -+ pixel_format = DRM_FORMAT_XRGB8888; -+ } -+ -+ ret = m_drmlib.drmModeAddFB2WithModifiers(m_fd, vmid->m_image.width, vmid->m_image.height, -+ pixel_format, handles, pitches, offsets, modifiers, &fbhandle, 0); - if (ret) return NULL; - - MSDK_ZERO_MEMORY(flink_close); --- -2.7.4 - diff --git a/recipes-multimedia/mediasdk/files/0001-Fixed-tile-modifier-issue-for-NV12-format.patch b/recipes-multimedia/mediasdk/files/0001-Fixed-tile-modifier-issue-for-NV12-format.patch deleted file mode 100644 index c249c176..00000000 --- a/recipes-multimedia/mediasdk/files/0001-Fixed-tile-modifier-issue-for-NV12-format.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 3fc9fe078c850643f8070cce1d2b0307a9014523 Mon Sep 17 00:00:00 2001 -From: "Sodhi, Vunny" -Date: Fri, 13 Aug 2021 12:09:26 +0800 -Subject: [meta-intel][PATCH] Fixed tile modifier issue for NV12 format - -If we are using I915_FORMAT_MOD_Y_TILED which is needed for -NV12 format then modifiers need to be enabled which can be passed -as flags argument to ioctl. - -Upstream-Status: Submitted -https://github.com/Intel-Media-SDK/MediaSDK/pull/2755 - -Signed-off-by: Sodhi, Vunny ---- - samples/sample_common/src/vaapi_utils_drm.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/samples/sample_common/src/vaapi_utils_drm.cpp b/samples/sample_common/src/vaapi_utils_drm.cpp -index 5ad73dd..73c8bd2 100644 ---- a/samples/sample_common/src/vaapi_utils_drm.cpp -+++ b/samples/sample_common/src/vaapi_utils_drm.cpp -@@ -422,7 +422,7 @@ void* drmRenderer::acquire(mfxMemId mid) - int ret = m_drmlib.drmIoctl(m_fd, DRM_IOCTL_GEM_OPEN, &flink_open); - if (ret) return NULL; - -- uint32_t handles[4], pitches[4], offsets[4], pixel_format; -+ uint32_t handles[4], pitches[4], offsets[4], pixel_format, flags = 0; - uint64_t modifiers[4]; - - memset(&handles, 0, sizeof(handles)); -@@ -452,13 +452,14 @@ void* drmRenderer::acquire(mfxMemId mid) - pitches[1] = vmid->m_image.pitches[1]; - offsets[1] = vmid->m_image.offsets[1]; - modifiers[0] = modifiers[1] = I915_FORMAT_MOD_Y_TILED; -+ flags = 2; // DRM_MODE_FB_MODIFIERS (1<<1) /* enables ->modifer[] - } - else { - pixel_format = DRM_FORMAT_XRGB8888; - } - - ret = m_drmlib.drmModeAddFB2WithModifiers(m_fd, vmid->m_image.width, vmid->m_image.height, -- pixel_format, handles, pitches, offsets, modifiers, &fbhandle, 0); -+ pixel_format, handles, pitches, offsets, modifiers, &fbhandle, flags); - if (ret) return NULL; - - MSDK_ZERO_MEMORY(flink_close); --- -2.7.4 - diff --git a/recipes-multimedia/mediasdk/intel-mediasdk_21.2.3.bb b/recipes-multimedia/mediasdk/intel-mediasdk_21.2.3.bb deleted file mode 100644 index 4f2690db..00000000 --- a/recipes-multimedia/mediasdk/intel-mediasdk_21.2.3.bb +++ /dev/null @@ -1,62 +0,0 @@ -SUMMARY = "Intel(R) Media SDK for hardware accelerated media processing" -DESCRIPTION = "Intel(R) Media SDK provides an API to access hardware-accelerated \ -video decode, encode and filtering on IntelĀ® platforms with integrated graphics." - -HOMEPAGE = "https://github.com/Intel-Media-SDK/MediaSDK" -BUGTRACKER = "https://github.com/Intel-Media-SDK/MediaSDK/issues" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3cb331af679cd8f968bf799a9c55b46e" - -CVE_DETAILS = "intel:media_sdk" - -# Only for 64 bit until media-driver issues aren't fixed -COMPATIBLE_HOST = '(x86_64).*-linux' -COMPATIBLE_HOST:x86-x32 = "null" - -inherit features_check -REQUIRED_DISTRO_FEATURES = "opengl" - -DEPENDS += "libdrm libva intel-media-driver" - -PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "dri3", "", d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)} \ - samples \ - itt \ - " - -PACKAGECONFIG[dri3] = "-DENABLE_X11_DRI3=ON, -DENABLE_X11_DRI3=OFF" -PACKAGECONFIG[itt] = "-DENABLE_ITT=ON, -DENABLE_ITT=OFF, itt" -PACKAGECONFIG[opencl] = "-DENABLE_OPENCL=ON, -DENABLE_OPENCL=OFF, ocl-icd opencl-clhpp opencl-headers" -PACKAGECONFIG[samples] = "-DBUILD_SAMPLES=ON, -DBUILD_SAMPLES=OFF" -PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND=ON, -DENABLE_WAYLAND=OFF, wayland wayland-native" - -SRC_URI = "git://github.com/Intel-Media-SDK/MediaSDK.git;protocol=https;nobranch=1;lfs=0 \ - file://0001-FindITT.cmake-fix-detection-of-header-library.patch \ - file://0001-Add-support-of-DRM_FORMAT_NV12-for-console-mode-rend.patch \ - file://0001-Fixed-tile-modifier-issue-for-NV12-format.patch \ - " - -SRCREV = "24b964e32692f68ed01aad73850bdaa440c2fcd7" -S = "${WORKDIR}/git" - -UPSTREAM_CHECK_GITTAGREGEX = "^intel-mediasdk-(?P(\d+(\.\d+)+))$" - -inherit cmake pkgconfig - -EXTRA_OECMAKE += "-DMFX_INCLUDE=${S}/api/include" - -do_install:append() { - mv ${D}${datadir}/mfx/samples ${D}${libdir}/mfx/samples -} - -PACKAGE_BEFORE_PN = " ${PN}-samples" - -FILES:${PN} += " \ - ${libdir}/mfx \ - ${datadir}/mfx/plugins.cfg \ - " - -FILES:${PN}-samples = "${libdir}/mfx/samples" - -INSANE_SKIP:${PN}-samples += "staticdev" diff --git a/recipes-multimedia/mediasdk/intel-mediasdk_21.3.5.bb b/recipes-multimedia/mediasdk/intel-mediasdk_21.3.5.bb new file mode 100644 index 00000000..27fd4ab2 --- /dev/null +++ b/recipes-multimedia/mediasdk/intel-mediasdk_21.3.5.bb @@ -0,0 +1,60 @@ +SUMMARY = "Intel(R) Media SDK for hardware accelerated media processing" +DESCRIPTION = "Intel(R) Media SDK provides an API to access hardware-accelerated \ +video decode, encode and filtering on IntelĀ® platforms with integrated graphics." + +HOMEPAGE = "https://github.com/Intel-Media-SDK/MediaSDK" +BUGTRACKER = "https://github.com/Intel-Media-SDK/MediaSDK/issues" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3cb331af679cd8f968bf799a9c55b46e" + +CVE_DETAILS = "intel:media_sdk" + +# Only for 64 bit until media-driver issues aren't fixed +COMPATIBLE_HOST = '(x86_64).*-linux' +COMPATIBLE_HOST:x86-x32 = "null" + +inherit features_check +REQUIRED_DISTRO_FEATURES = "opengl" + +DEPENDS += "libdrm libva intel-media-driver" + +PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "dri3", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)} \ + samples \ + itt \ + " + +PACKAGECONFIG[dri3] = "-DENABLE_X11_DRI3=ON, -DENABLE_X11_DRI3=OFF" +PACKAGECONFIG[itt] = "-DENABLE_ITT=ON, -DENABLE_ITT=OFF, itt" +PACKAGECONFIG[opencl] = "-DENABLE_OPENCL=ON, -DENABLE_OPENCL=OFF, ocl-icd opencl-clhpp opencl-headers" +PACKAGECONFIG[samples] = "-DBUILD_SAMPLES=ON, -DBUILD_SAMPLES=OFF" +PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND=ON, -DENABLE_WAYLAND=OFF, wayland wayland-native" + +SRC_URI = "git://github.com/Intel-Media-SDK/MediaSDK.git;protocol=https;nobranch=1;lfs=0 \ + file://0001-FindITT.cmake-fix-detection-of-header-library.patch \ + " + +SRCREV = "2b2922e15f353bc542d64f8ef15a248d88bfd2ce" +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_GITTAGREGEX = "^intel-mediasdk-(?P(\d+(\.\d+)+))$" + +inherit cmake pkgconfig + +EXTRA_OECMAKE += "-DMFX_INCLUDE=${S}/api/include" + +do_install:append() { + mv ${D}${datadir}/mfx/samples ${D}${libdir}/mfx/samples +} + +PACKAGE_BEFORE_PN = " ${PN}-samples" + +FILES:${PN} += " \ + ${libdir}/mfx \ + ${datadir}/mfx/plugins.cfg \ + " + +FILES:${PN}-samples = "${libdir}/mfx/samples" + +INSANE_SKIP:${PN}-samples += "staticdev" -- cgit v1.2.3-54-g00ecf