diff options
Diffstat (limited to 'recipes-multimedia/libva')
-rw-r--r-- | recipes-multimedia/libva/files/0001-Disable-vp9-padding-on-mtl.patch | 35 | ||||
-rw-r--r-- | recipes-multimedia/libva/files/0002-Force-ARGB-surface-to-tile4-for-ACM.patch | 44 | ||||
-rw-r--r-- | recipes-multimedia/libva/files/8aa866dc650e6b0e0b7425bafc7b1039232c377a.patch | 154 | ||||
-rw-r--r-- | recipes-multimedia/libva/intel-media-driver_24.1.5.bb (renamed from recipes-multimedia/libva/intel-media-driver_20.2.0.bb) | 23 | ||||
-rw-r--r-- | recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb | 6 |
5 files changed, 250 insertions, 12 deletions
diff --git a/recipes-multimedia/libva/files/0001-Disable-vp9-padding-on-mtl.patch b/recipes-multimedia/libva/files/0001-Disable-vp9-padding-on-mtl.patch new file mode 100644 index 00000000..90dff8d1 --- /dev/null +++ b/recipes-multimedia/libva/files/0001-Disable-vp9-padding-on-mtl.patch @@ -0,0 +1,35 @@ +From 1b303f417113ad1aa6b63fc024fbe4aa0c943f57 Mon Sep 17 00:00:00 2001 +From: Lim Siew Hoon <siew.hoon.lim@intel.com> +Date: Tue, 5 Sep 2023 16:13:42 +0800 +Subject: [PATCH 01/12] Disable vp9 padding on mtl. + +Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1720] + +Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> +--- + media_softlet/linux/Xe_M_plus/ddi/media_sku_wa_mtl.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/media_softlet/linux/Xe_M_plus/ddi/media_sku_wa_mtl.cpp b/media_softlet/linux/Xe_M_plus/ddi/media_sku_wa_mtl.cpp +index 844545a87..72265289c 100644 +--- a/media_softlet/linux/Xe_M_plus/ddi/media_sku_wa_mtl.cpp ++++ b/media_softlet/linux/Xe_M_plus/ddi/media_sku_wa_mtl.cpp +@@ -284,7 +284,7 @@ static bool InitMtlMediaWaExt(struct GfxDeviceInfo *devInfo, + + MEDIA_WR_WA(waTable, WaDisableSetObjectCapture, 1); + +- MEDIA_WR_WA(waTable, Wa_Vp9UnalignedHeight, 1); ++ MEDIA_WR_WA(waTable, Wa_Vp9UnalignedHeight, 0); + + MEDIA_WR_WA(waTable, Wa_15013355402, 1); + +@@ -337,4 +337,4 @@ static struct LinuxDeviceInit arlDeviceInit = + }; + + static bool arlDeviceRegister = DeviceInfoFactory<LinuxDeviceInit>:: +- RegisterDevice((uint32_t)IGFX_ARROWLAKE, &arlDeviceInit); +\ No newline at end of file ++ RegisterDevice((uint32_t)IGFX_ARROWLAKE, &arlDeviceInit); +-- +2.40.1 + diff --git a/recipes-multimedia/libva/files/0002-Force-ARGB-surface-to-tile4-for-ACM.patch b/recipes-multimedia/libva/files/0002-Force-ARGB-surface-to-tile4-for-ACM.patch new file mode 100644 index 00000000..df3d9805 --- /dev/null +++ b/recipes-multimedia/libva/files/0002-Force-ARGB-surface-to-tile4-for-ACM.patch @@ -0,0 +1,44 @@ +From 1580f01ec5ad5afdad58c39dded999494275be10 Mon Sep 17 00:00:00 2001 +From: Lim Siew Hoon <siew.hoon.lim@intel.com> +Date: Wed, 11 Oct 2023 15:36:21 +0800 +Subject: [PATCH 02/12] Force ARGB surface to tile4 for ACM + +Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1728] + +Signed-off-by: Soon, Thean Siew <thean.siew.soon@intel.com> +Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> +--- + media_driver/linux/common/ddi/media_libva_util.cpp | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/media_driver/linux/common/ddi/media_libva_util.cpp b/media_driver/linux/common/ddi/media_libva_util.cpp +index 63c173419..73be76366 100755 +--- a/media_driver/linux/common/ddi/media_libva_util.cpp ++++ b/media_driver/linux/common/ddi/media_libva_util.cpp +@@ -504,6 +504,7 @@ VAStatus DdiMediaUtil_AllocateSurface( + gmmCustomParams.Flags.Gpu.UnifiedAuxSurface = 0; + } + } ++ + break; + case TILING_X: + gmmCustomParams.Flags.Info.TiledX = true; +@@ -685,6 +686,15 @@ VAStatus DdiMediaUtil_AllocateSurface( + } + } + } ++ // There's no VAAPI interface for modifier query yet. As a workaround, always allocate ++ // RGB surface as tile4. ++ if ((format == Media_Format_A8R8G8B8 || ++ format == Media_Format_B10G10R10A2 | ++ format == Media_Format_A8B8G8R8 || ++ format == Media_Format_X8R8G8B8) && !MEDIA_IS_SKU(&mediaDrvCtx->SkuTable, FtrTileY)) ++ { ++ gmmParams.Flags.Info.Tile4 = true; ++ } + break; + case TILING_X: + gmmParams.Flags.Info.TiledX = true; +-- +2.40.1 + diff --git a/recipes-multimedia/libva/files/8aa866dc650e6b0e0b7425bafc7b1039232c377a.patch b/recipes-multimedia/libva/files/8aa866dc650e6b0e0b7425bafc7b1039232c377a.patch new file mode 100644 index 00000000..17b2d635 --- /dev/null +++ b/recipes-multimedia/libva/files/8aa866dc650e6b0e0b7425bafc7b1039232c377a.patch @@ -0,0 +1,154 @@ +From 8aa866dc650e6b0e0b7425bafc7b1039232c377a Mon Sep 17 00:00:00 2001 +From: "Xu, Zhengguo" <zhengguo.xu@intel.com> +Date: Tue, 16 Apr 2024 09:53:41 +0800 +Subject: [PATCH] [Decode] Correct condition check when dump avc mv buffer + +Fixes: #1791 +Signed-off-by: Xu, Zhengguo <zhengguo.xu@intel.com> + +Upstream-Status: Backport [https://github.com/intel/media-driver/commit/8aa866dc650e6b0e0b7425bafc7b1039232c377a] +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> +--- + .../common/codec/hal/codechal_decode_avc.cpp | 33 ++++++++----------- + .../decode_avc_picture_xe_m_base_packet.cpp | 28 +++++++--------- + .../avc/packet/decode_avc_picture_packet.cpp | 30 +++++++---------- + 3 files changed, 37 insertions(+), 54 deletions(-) + +diff --git a/media_driver/agnostic/common/codec/hal/codechal_decode_avc.cpp b/media_driver/agnostic/common/codec/hal/codechal_decode_avc.cpp +index 3adf6994ce..4bac426802 100644 +--- a/media_driver/agnostic/common/codec/hal/codechal_decode_avc.cpp ++++ b/media_driver/agnostic/common/codec/hal/codechal_decode_avc.cpp +@@ -1619,28 +1619,23 @@ MOS_STATUS CodechalDecodeAvc::InitPicMhwParams( + uint8_t picID = picMhwParams->AvcDirectmodeParams.bPicIdRemappingInUse ? i : refList[idx]->ucFrameId; + uint8_t mvIdx = refList[idx]->ucDMVIdx[0]; + +- if (&picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[i] != nullptr) +- { +- // dump Reference mvdata +- std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(i); +- CODECHAL_DECODE_CHK_STATUS_RETURN(m_debugInterface->DumpBuffer( +- &picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[mvIdx], +- CodechalDbgAttr::attrMvData, +- mvBufDumpName.c_str(), +- m_avcDmvBufferSize)); +- } ++ // dump Reference mvdata ++ std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(i); ++ CODECHAL_DECODE_CHK_STATUS_RETURN(m_debugInterface->DumpBuffer( ++ &picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[mvIdx], ++ CodechalDbgAttr::attrMvData, ++ mvBufDumpName.c_str(), ++ m_avcDmvBufferSize)); + } + } + +- if (&picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[picMhwParams->AvcDirectmodeParams.ucAvcDmvIdx]) +- { +- // dump Current mvdata +- CODECHAL_DECODE_CHK_STATUS_RETURN(m_debugInterface->DumpBuffer( +- &picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[picMhwParams->AvcDirectmodeParams.ucAvcDmvIdx], +- CodechalDbgAttr::attrMvData, +- "DEC_Cur_MV_", +- m_avcDmvBufferSize)); +- }); ++ // dump Current mvdata ++ CODECHAL_DECODE_CHK_STATUS_RETURN(m_debugInterface->DumpBuffer( ++ &picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[picMhwParams->AvcDirectmodeParams.ucAvcDmvIdx], ++ CodechalDbgAttr::attrMvData, ++ "DEC_Cur_MV_", ++ m_avcDmvBufferSize)); ++ ); + + return eStatus; + } +diff --git a/media_driver/media_softlet/agnostic/Xe_M/Xe_M_base/codec/hal/dec/avc/packet/decode_avc_picture_xe_m_base_packet.cpp b/media_driver/media_softlet/agnostic/Xe_M/Xe_M_base/codec/hal/dec/avc/packet/decode_avc_picture_xe_m_base_packet.cpp +index bd0611f6fa..035a7e6149 100644 +--- a/media_driver/media_softlet/agnostic/Xe_M/Xe_M_base/codec/hal/dec/avc/packet/decode_avc_picture_xe_m_base_packet.cpp ++++ b/media_driver/media_softlet/agnostic/Xe_M/Xe_M_base/codec/hal/dec/avc/packet/decode_avc_picture_xe_m_base_packet.cpp +@@ -589,26 +589,20 @@ namespace decode{ + { + if (m_avcBasicFeature->m_refFrames.m_avcPicIdx[n].bValid) + { +- if (&avcDirectmodeParams.presAvcDmvBuffers[n+1] != nullptr) +- { +- std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(n); +- DECODE_CHK_STATUS(debugInterface->DumpBuffer( +- &avcDirectmodeParams.presAvcDmvBuffers[n+1], +- CodechalDbgAttr::attrMvData, +- mvBufDumpName.c_str(), +- mvBufferSize)); +- } ++ std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(n); ++ DECODE_CHK_STATUS(debugInterface->DumpBuffer( ++ &avcDirectmodeParams.presAvcDmvBuffers[n+1], ++ CodechalDbgAttr::attrMvData, ++ mvBufDumpName.c_str(), ++ mvBufferSize)); + } + } + +- if (&avcDirectmodeParams.presAvcDmvBuffers[0] != nullptr) +- { +- DECODE_CHK_STATUS(debugInterface->DumpBuffer( +- &avcDirectmodeParams.presAvcDmvBuffers[0], +- CodechalDbgAttr::attrMvData, +- "DEC_Cur_MV_", +- mvBufferSize)); +- } ++ DECODE_CHK_STATUS(debugInterface->DumpBuffer( ++ &avcDirectmodeParams.presAvcDmvBuffers[0], ++ CodechalDbgAttr::attrMvData, ++ "DEC_Cur_MV_", ++ mvBufferSize)); + return MOS_STATUS_SUCCESS; + } + +diff --git a/media_softlet/agnostic/common/codec/hal/dec/avc/packet/decode_avc_picture_packet.cpp b/media_softlet/agnostic/common/codec/hal/dec/avc/packet/decode_avc_picture_packet.cpp +index 88ed0bb832..8cdc05e585 100644 +--- a/media_softlet/agnostic/common/codec/hal/dec/avc/packet/decode_avc_picture_packet.cpp ++++ b/media_softlet/agnostic/common/codec/hal/dec/avc/packet/decode_avc_picture_packet.cpp +@@ -646,26 +646,20 @@ MOS_STATUS AvcDecodePicPkt::DumpResources(uint32_t mvBufferSize) const + CodechalDbgAttr::attrDecodeReferenceSurfaces, + refSurfName.c_str())); + +- if (&mvParam.presAvcDmvBuffers[n+1] != nullptr) +- { +- std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(n); +- DECODE_CHK_STATUS(debugInterface->DumpBuffer( +- &mvParam.presAvcDmvBuffers[n+1], +- CodechalDbgAttr::attrMvData, +- mvBufDumpName.c_str(), +- mvBufferSize)); +- } ++ std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(n); ++ DECODE_CHK_STATUS(debugInterface->DumpBuffer( ++ &mvParam.presAvcDmvBuffers[n+1], ++ CodechalDbgAttr::attrMvData, ++ mvBufDumpName.c_str(), ++ mvBufferSize)); + } + } + +- if (&mvParam.presAvcDmvBuffers[0] != nullptr) +- { +- DECODE_CHK_STATUS(debugInterface->DumpBuffer( +- &mvParam.presAvcDmvBuffers[0], +- CodechalDbgAttr::attrMvData, +- "DEC_Cur_MV_", +- mvBufferSize)); +- } ++ DECODE_CHK_STATUS(debugInterface->DumpBuffer( ++ &mvParam.presAvcDmvBuffers[0], ++ CodechalDbgAttr::attrMvData, ++ "DEC_Cur_MV_", ++ mvBufferSize)); + + return MOS_STATUS_SUCCESS; + } +@@ -699,4 +693,4 @@ MOS_STATUS AvcDecodePicPkt::SetSurfaceMmcState() const + return MOS_STATUS_SUCCESS; + } + +-} // namespace decode +\ No newline at end of file ++} // namespace decode diff --git a/recipes-multimedia/libva/intel-media-driver_20.2.0.bb b/recipes-multimedia/libva/intel-media-driver_24.1.5.bb index 1cf21e44..79f9887d 100644 --- a/recipes-multimedia/libva/intel-media-driver_20.2.0.bb +++ b/recipes-multimedia/libva/intel-media-driver_24.1.5.bb @@ -18,31 +18,36 @@ REQUIRED_DISTRO_FEATURES = "opengl" DEPENDS += "libva gmmlib" -SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;branch=intel-media-20.2" -SRCREV = "97e2ea997675653f3f767ab954bc79273fc46d56" +SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;nobranch=1 \ + file://0001-Disable-vp9-padding-on-mtl.patch \ + file://0002-Force-ARGB-surface-to-tile4-for-ACM.patch \ + file://8aa866dc650e6b0e0b7425bafc7b1039232c377a.patch \ + " + +SRCREV = "8068c2e119ba16c017e5a5f443fac5a55edbee65" S = "${WORKDIR}/git" -COMPATIBLE_HOST_x86-x32 = "null" +COMPATIBLE_HOST:x86-x32 = "null" UPSTREAM_CHECK_GITTAGREGEX = "^intel-media-(?P<pver>(?!600\..*)\d+(\.\d+)+)$" inherit cmake pkgconfig -MEDIA_DRIVER_ARCH_x86 = "32" -MEDIA_DRIVER_ARCH_x86-64 = "64" +MEDIA_DRIVER_ARCH:x86 = "32" +MEDIA_DRIVER_ARCH:x86-64 = "64" EXTRA_OECMAKE += " \ -DMEDIA_RUN_TEST_SUITE=OFF \ -DARCH=${MEDIA_DRIVER_ARCH} \ -DMEDIA_BUILD_FATAL_WARNINGS=OFF \ - " + " -CXXFLAGS_append_x86 = " -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" +CXXFLAGS:append:x86 = " -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" -do_configure_prepend_toolchain-clang() { +do_configure:prepend:toolchain-clang() { sed -i -e '/-fno-tree-pre/d' ${S}/media_driver/cmake/linux/media_compile_flags_linux.cmake } -FILES_${PN} += " \ +FILES:${PN} += " \ ${libdir}/dri/ \ " diff --git a/recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb b/recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb index ccb9fec1..5038d8d7 100644 --- a/recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb +++ b/recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb @@ -29,6 +29,6 @@ PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} PACKAGECONFIG[x11] = "-Dwith_x11=yes, -Dwith_x11=no" PACKAGECONFIG[wayland] = "-Dwith_wayland=yes, -Dwith_wayland=no, wayland wayland-native virtual/egl" -FILES_${PN} += "${libdir}/dri/*.so" -FILES_${PN}-dev += "${libdir}/dri/*.la" -FILES_${PN}-dbg += "${libdir}/dri/.debug" +FILES:${PN} += "${libdir}/dri/*.so" +FILES:${PN}-dev += "${libdir}/dri/*.la" +FILES:${PN}-dbg += "${libdir}/dri/.debug" |