diff options
Diffstat (limited to 'recipes-multimedia/libva/files')
3 files changed, 233 insertions, 0 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 @@ | |||
1 | From 1b303f417113ad1aa6b63fc024fbe4aa0c943f57 Mon Sep 17 00:00:00 2001 | ||
2 | From: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
3 | Date: Tue, 5 Sep 2023 16:13:42 +0800 | ||
4 | Subject: [PATCH 01/12] Disable vp9 padding on mtl. | ||
5 | |||
6 | Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1720] | ||
7 | |||
8 | Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
9 | --- | ||
10 | media_softlet/linux/Xe_M_plus/ddi/media_sku_wa_mtl.cpp | 4 ++-- | ||
11 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
12 | |||
13 | 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 | ||
14 | index 844545a87..72265289c 100644 | ||
15 | --- a/media_softlet/linux/Xe_M_plus/ddi/media_sku_wa_mtl.cpp | ||
16 | +++ b/media_softlet/linux/Xe_M_plus/ddi/media_sku_wa_mtl.cpp | ||
17 | @@ -284,7 +284,7 @@ static bool InitMtlMediaWaExt(struct GfxDeviceInfo *devInfo, | ||
18 | |||
19 | MEDIA_WR_WA(waTable, WaDisableSetObjectCapture, 1); | ||
20 | |||
21 | - MEDIA_WR_WA(waTable, Wa_Vp9UnalignedHeight, 1); | ||
22 | + MEDIA_WR_WA(waTable, Wa_Vp9UnalignedHeight, 0); | ||
23 | |||
24 | MEDIA_WR_WA(waTable, Wa_15013355402, 1); | ||
25 | |||
26 | @@ -337,4 +337,4 @@ static struct LinuxDeviceInit arlDeviceInit = | ||
27 | }; | ||
28 | |||
29 | static bool arlDeviceRegister = DeviceInfoFactory<LinuxDeviceInit>:: | ||
30 | - RegisterDevice((uint32_t)IGFX_ARROWLAKE, &arlDeviceInit); | ||
31 | \ No newline at end of file | ||
32 | + RegisterDevice((uint32_t)IGFX_ARROWLAKE, &arlDeviceInit); | ||
33 | -- | ||
34 | 2.40.1 | ||
35 | |||
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 @@ | |||
1 | From 1580f01ec5ad5afdad58c39dded999494275be10 Mon Sep 17 00:00:00 2001 | ||
2 | From: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
3 | Date: Wed, 11 Oct 2023 15:36:21 +0800 | ||
4 | Subject: [PATCH 02/12] Force ARGB surface to tile4 for ACM | ||
5 | |||
6 | Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1728] | ||
7 | |||
8 | Signed-off-by: Soon, Thean Siew <thean.siew.soon@intel.com> | ||
9 | Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
10 | --- | ||
11 | media_driver/linux/common/ddi/media_libva_util.cpp | 10 ++++++++++ | ||
12 | 1 file changed, 10 insertions(+) | ||
13 | |||
14 | diff --git a/media_driver/linux/common/ddi/media_libva_util.cpp b/media_driver/linux/common/ddi/media_libva_util.cpp | ||
15 | index 63c173419..73be76366 100755 | ||
16 | --- a/media_driver/linux/common/ddi/media_libva_util.cpp | ||
17 | +++ b/media_driver/linux/common/ddi/media_libva_util.cpp | ||
18 | @@ -504,6 +504,7 @@ VAStatus DdiMediaUtil_AllocateSurface( | ||
19 | gmmCustomParams.Flags.Gpu.UnifiedAuxSurface = 0; | ||
20 | } | ||
21 | } | ||
22 | + | ||
23 | break; | ||
24 | case TILING_X: | ||
25 | gmmCustomParams.Flags.Info.TiledX = true; | ||
26 | @@ -685,6 +686,15 @@ VAStatus DdiMediaUtil_AllocateSurface( | ||
27 | } | ||
28 | } | ||
29 | } | ||
30 | + // There's no VAAPI interface for modifier query yet. As a workaround, always allocate | ||
31 | + // RGB surface as tile4. | ||
32 | + if ((format == Media_Format_A8R8G8B8 || | ||
33 | + format == Media_Format_B10G10R10A2 | | ||
34 | + format == Media_Format_A8B8G8R8 || | ||
35 | + format == Media_Format_X8R8G8B8) && !MEDIA_IS_SKU(&mediaDrvCtx->SkuTable, FtrTileY)) | ||
36 | + { | ||
37 | + gmmParams.Flags.Info.Tile4 = true; | ||
38 | + } | ||
39 | break; | ||
40 | case TILING_X: | ||
41 | gmmParams.Flags.Info.TiledX = true; | ||
42 | -- | ||
43 | 2.40.1 | ||
44 | |||
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 @@ | |||
1 | From 8aa866dc650e6b0e0b7425bafc7b1039232c377a Mon Sep 17 00:00:00 2001 | ||
2 | From: "Xu, Zhengguo" <zhengguo.xu@intel.com> | ||
3 | Date: Tue, 16 Apr 2024 09:53:41 +0800 | ||
4 | Subject: [PATCH] [Decode] Correct condition check when dump avc mv buffer | ||
5 | |||
6 | Fixes: #1791 | ||
7 | Signed-off-by: Xu, Zhengguo <zhengguo.xu@intel.com> | ||
8 | |||
9 | Upstream-Status: Backport [https://github.com/intel/media-driver/commit/8aa866dc650e6b0e0b7425bafc7b1039232c377a] | ||
10 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
11 | --- | ||
12 | .../common/codec/hal/codechal_decode_avc.cpp | 33 ++++++++----------- | ||
13 | .../decode_avc_picture_xe_m_base_packet.cpp | 28 +++++++--------- | ||
14 | .../avc/packet/decode_avc_picture_packet.cpp | 30 +++++++---------- | ||
15 | 3 files changed, 37 insertions(+), 54 deletions(-) | ||
16 | |||
17 | diff --git a/media_driver/agnostic/common/codec/hal/codechal_decode_avc.cpp b/media_driver/agnostic/common/codec/hal/codechal_decode_avc.cpp | ||
18 | index 3adf6994ce..4bac426802 100644 | ||
19 | --- a/media_driver/agnostic/common/codec/hal/codechal_decode_avc.cpp | ||
20 | +++ b/media_driver/agnostic/common/codec/hal/codechal_decode_avc.cpp | ||
21 | @@ -1619,28 +1619,23 @@ MOS_STATUS CodechalDecodeAvc::InitPicMhwParams( | ||
22 | uint8_t picID = picMhwParams->AvcDirectmodeParams.bPicIdRemappingInUse ? i : refList[idx]->ucFrameId; | ||
23 | uint8_t mvIdx = refList[idx]->ucDMVIdx[0]; | ||
24 | |||
25 | - if (&picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[i] != nullptr) | ||
26 | - { | ||
27 | - // dump Reference mvdata | ||
28 | - std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(i); | ||
29 | - CODECHAL_DECODE_CHK_STATUS_RETURN(m_debugInterface->DumpBuffer( | ||
30 | - &picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[mvIdx], | ||
31 | - CodechalDbgAttr::attrMvData, | ||
32 | - mvBufDumpName.c_str(), | ||
33 | - m_avcDmvBufferSize)); | ||
34 | - } | ||
35 | + // dump Reference mvdata | ||
36 | + std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(i); | ||
37 | + CODECHAL_DECODE_CHK_STATUS_RETURN(m_debugInterface->DumpBuffer( | ||
38 | + &picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[mvIdx], | ||
39 | + CodechalDbgAttr::attrMvData, | ||
40 | + mvBufDumpName.c_str(), | ||
41 | + m_avcDmvBufferSize)); | ||
42 | } | ||
43 | } | ||
44 | |||
45 | - if (&picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[picMhwParams->AvcDirectmodeParams.ucAvcDmvIdx]) | ||
46 | - { | ||
47 | - // dump Current mvdata | ||
48 | - CODECHAL_DECODE_CHK_STATUS_RETURN(m_debugInterface->DumpBuffer( | ||
49 | - &picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[picMhwParams->AvcDirectmodeParams.ucAvcDmvIdx], | ||
50 | - CodechalDbgAttr::attrMvData, | ||
51 | - "DEC_Cur_MV_", | ||
52 | - m_avcDmvBufferSize)); | ||
53 | - }); | ||
54 | + // dump Current mvdata | ||
55 | + CODECHAL_DECODE_CHK_STATUS_RETURN(m_debugInterface->DumpBuffer( | ||
56 | + &picMhwParams->AvcDirectmodeParams.presAvcDmvBuffers[picMhwParams->AvcDirectmodeParams.ucAvcDmvIdx], | ||
57 | + CodechalDbgAttr::attrMvData, | ||
58 | + "DEC_Cur_MV_", | ||
59 | + m_avcDmvBufferSize)); | ||
60 | + ); | ||
61 | |||
62 | return eStatus; | ||
63 | } | ||
64 | 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 | ||
65 | index bd0611f6fa..035a7e6149 100644 | ||
66 | --- a/media_driver/media_softlet/agnostic/Xe_M/Xe_M_base/codec/hal/dec/avc/packet/decode_avc_picture_xe_m_base_packet.cpp | ||
67 | +++ b/media_driver/media_softlet/agnostic/Xe_M/Xe_M_base/codec/hal/dec/avc/packet/decode_avc_picture_xe_m_base_packet.cpp | ||
68 | @@ -589,26 +589,20 @@ namespace decode{ | ||
69 | { | ||
70 | if (m_avcBasicFeature->m_refFrames.m_avcPicIdx[n].bValid) | ||
71 | { | ||
72 | - if (&avcDirectmodeParams.presAvcDmvBuffers[n+1] != nullptr) | ||
73 | - { | ||
74 | - std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(n); | ||
75 | - DECODE_CHK_STATUS(debugInterface->DumpBuffer( | ||
76 | - &avcDirectmodeParams.presAvcDmvBuffers[n+1], | ||
77 | - CodechalDbgAttr::attrMvData, | ||
78 | - mvBufDumpName.c_str(), | ||
79 | - mvBufferSize)); | ||
80 | - } | ||
81 | + std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(n); | ||
82 | + DECODE_CHK_STATUS(debugInterface->DumpBuffer( | ||
83 | + &avcDirectmodeParams.presAvcDmvBuffers[n+1], | ||
84 | + CodechalDbgAttr::attrMvData, | ||
85 | + mvBufDumpName.c_str(), | ||
86 | + mvBufferSize)); | ||
87 | } | ||
88 | } | ||
89 | |||
90 | - if (&avcDirectmodeParams.presAvcDmvBuffers[0] != nullptr) | ||
91 | - { | ||
92 | - DECODE_CHK_STATUS(debugInterface->DumpBuffer( | ||
93 | - &avcDirectmodeParams.presAvcDmvBuffers[0], | ||
94 | - CodechalDbgAttr::attrMvData, | ||
95 | - "DEC_Cur_MV_", | ||
96 | - mvBufferSize)); | ||
97 | - } | ||
98 | + DECODE_CHK_STATUS(debugInterface->DumpBuffer( | ||
99 | + &avcDirectmodeParams.presAvcDmvBuffers[0], | ||
100 | + CodechalDbgAttr::attrMvData, | ||
101 | + "DEC_Cur_MV_", | ||
102 | + mvBufferSize)); | ||
103 | return MOS_STATUS_SUCCESS; | ||
104 | } | ||
105 | |||
106 | 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 | ||
107 | index 88ed0bb832..8cdc05e585 100644 | ||
108 | --- a/media_softlet/agnostic/common/codec/hal/dec/avc/packet/decode_avc_picture_packet.cpp | ||
109 | +++ b/media_softlet/agnostic/common/codec/hal/dec/avc/packet/decode_avc_picture_packet.cpp | ||
110 | @@ -646,26 +646,20 @@ MOS_STATUS AvcDecodePicPkt::DumpResources(uint32_t mvBufferSize) const | ||
111 | CodechalDbgAttr::attrDecodeReferenceSurfaces, | ||
112 | refSurfName.c_str())); | ||
113 | |||
114 | - if (&mvParam.presAvcDmvBuffers[n+1] != nullptr) | ||
115 | - { | ||
116 | - std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(n); | ||
117 | - DECODE_CHK_STATUS(debugInterface->DumpBuffer( | ||
118 | - &mvParam.presAvcDmvBuffers[n+1], | ||
119 | - CodechalDbgAttr::attrMvData, | ||
120 | - mvBufDumpName.c_str(), | ||
121 | - mvBufferSize)); | ||
122 | - } | ||
123 | + std::string mvBufDumpName = "_DEC_Ref_MV_" + std::to_string(n); | ||
124 | + DECODE_CHK_STATUS(debugInterface->DumpBuffer( | ||
125 | + &mvParam.presAvcDmvBuffers[n+1], | ||
126 | + CodechalDbgAttr::attrMvData, | ||
127 | + mvBufDumpName.c_str(), | ||
128 | + mvBufferSize)); | ||
129 | } | ||
130 | } | ||
131 | |||
132 | - if (&mvParam.presAvcDmvBuffers[0] != nullptr) | ||
133 | - { | ||
134 | - DECODE_CHK_STATUS(debugInterface->DumpBuffer( | ||
135 | - &mvParam.presAvcDmvBuffers[0], | ||
136 | - CodechalDbgAttr::attrMvData, | ||
137 | - "DEC_Cur_MV_", | ||
138 | - mvBufferSize)); | ||
139 | - } | ||
140 | + DECODE_CHK_STATUS(debugInterface->DumpBuffer( | ||
141 | + &mvParam.presAvcDmvBuffers[0], | ||
142 | + CodechalDbgAttr::attrMvData, | ||
143 | + "DEC_Cur_MV_", | ||
144 | + mvBufferSize)); | ||
145 | |||
146 | return MOS_STATUS_SUCCESS; | ||
147 | } | ||
148 | @@ -699,4 +693,4 @@ MOS_STATUS AvcDecodePicPkt::SetSurfaceMmcState() const | ||
149 | return MOS_STATUS_SUCCESS; | ||
150 | } | ||
151 | |||
152 | -} // namespace decode | ||
153 | \ No newline at end of file | ||
154 | +} // namespace decode | ||