diff options
Diffstat (limited to 'recipes-multimedia/libva/files/0003-fix-vdsfc-csc-issue.patch')
-rw-r--r-- | recipes-multimedia/libva/files/0003-fix-vdsfc-csc-issue.patch | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/recipes-multimedia/libva/files/0003-fix-vdsfc-csc-issue.patch b/recipes-multimedia/libva/files/0003-fix-vdsfc-csc-issue.patch new file mode 100644 index 00000000..f0d3d55d --- /dev/null +++ b/recipes-multimedia/libva/files/0003-fix-vdsfc-csc-issue.patch | |||
@@ -0,0 +1,88 @@ | |||
1 | From e4f88d8a7fbde1df022a648e2cd06c1b8abbd4e4 Mon Sep 17 00:00:00 2001 | ||
2 | From: shawnli2 <shawn.li@intel.com> | ||
3 | Date: Sun, 25 Jun 2023 15:25:11 +0800 | ||
4 | Subject: [PATCH 3/5] fix vdsfc csc issue | ||
5 | |||
6 | to support ARGB8 output, need to enable csc from YUV to RGB | ||
7 | |||
8 | upstream-status: backport | ||
9 | Backport from upstream media-driver: | ||
10 | https://github.com/intel/media-driver/commit/9806aede1724d5eea3a8ddb262d1f2cbcca63456 | ||
11 | --- | ||
12 | .../Xe_XPM_base/vp/hal/packet/vp_render_sfc_xe_xpm_base.cpp | 5 +++-- | ||
13 | .../common/vp/hal/packet/vp_render_sfc_base_legacy.cpp | 4 ++-- | ||
14 | .../vp/hal/packet/vp_render_sfc_xe_lpm_plus_base.cpp | 5 +++-- | ||
15 | .../agnostic/common/vp/hal/packet/vp_render_sfc_base.cpp | 4 ++-- | ||
16 | 4 files changed, 10 insertions(+), 8 deletions(-) | ||
17 | |||
18 | diff --git a/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/vp/hal/packet/vp_render_sfc_xe_xpm_base.cpp b/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/vp/hal/packet/vp_render_sfc_xe_xpm_base.cpp | ||
19 | index 24bade3fd..daccd21f0 100644 | ||
20 | --- a/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/vp/hal/packet/vp_render_sfc_xe_xpm_base.cpp | ||
21 | +++ b/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/vp/hal/packet/vp_render_sfc_xe_xpm_base.cpp | ||
22 | @@ -298,9 +298,10 @@ bool SfcRenderXe_Xpm_Base::IsOutputChannelSwapNeeded(MOS_FORMAT outputFormat) | ||
23 | bool SfcRenderXe_Xpm_Base::IsCscNeeded(SFC_CSC_PARAMS &cscParams) | ||
24 | { | ||
25 | VP_FUNC_CALL(); | ||
26 | - if (m_bVdboxToSfc && m_videoConfig.codecStandard == CODECHAL_JPEG) | ||
27 | + | ||
28 | + if (m_bVdboxToSfc && cscParams.inputFormat != cscParams.outputFormat) | ||
29 | { | ||
30 | - if (cscParams.inputFormat != cscParams.outputFormat) | ||
31 | + if (m_videoConfig.codecStandard == CODECHAL_JPEG || cscParams.outputFormat == Format_A8R8G8B8) | ||
32 | { | ||
33 | return true; | ||
34 | } | ||
35 | diff --git a/media_driver/media_softlet/agnostic/common/vp/hal/packet/vp_render_sfc_base_legacy.cpp b/media_driver/media_softlet/agnostic/common/vp/hal/packet/vp_render_sfc_base_legacy.cpp | ||
36 | index 16cef55b3..19c99364b 100644 | ||
37 | --- a/media_driver/media_softlet/agnostic/common/vp/hal/packet/vp_render_sfc_base_legacy.cpp | ||
38 | +++ b/media_driver/media_softlet/agnostic/common/vp/hal/packet/vp_render_sfc_base_legacy.cpp | ||
39 | @@ -197,10 +197,10 @@ MOS_STATUS SfcRenderBaseLegacy::SetIefStateCscParams( | ||
40 | { | ||
41 | psfcStateParams->bCSCEnable = true; | ||
42 | pIEFStateParams->bCSCEnable = true; | ||
43 | - if (m_bVdboxToSfc && m_videoConfig.codecStandard == CODECHAL_JPEG) | ||
44 | + if (m_bVdboxToSfc) | ||
45 | { | ||
46 | m_cscInputSwapNeeded = false; | ||
47 | - if (m_videoConfig.jpeg.jpegChromaType == jpegRGB) | ||
48 | + if (m_videoConfig.jpeg.jpegChromaType == jpegRGB && m_videoConfig.codecStandard == CODECHAL_JPEG) | ||
49 | { | ||
50 | m_cscCoeff[0] = 1.000000000f; | ||
51 | m_cscCoeff[1] = 0.000000000f; | ||
52 | diff --git a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/vp/hal/packet/vp_render_sfc_xe_lpm_plus_base.cpp b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/vp/hal/packet/vp_render_sfc_xe_lpm_plus_base.cpp | ||
53 | index 304fd2ffc..e9737c3c5 100644 | ||
54 | --- a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/vp/hal/packet/vp_render_sfc_xe_lpm_plus_base.cpp | ||
55 | +++ b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/vp/hal/packet/vp_render_sfc_xe_lpm_plus_base.cpp | ||
56 | @@ -636,9 +636,10 @@ bool SfcRenderXe_Lpm_Plus_Base::IsOutputChannelSwapNeeded(MOS_FORMAT outputForma | ||
57 | bool SfcRenderXe_Lpm_Plus_Base::IsCscNeeded(SFC_CSC_PARAMS &cscParams) | ||
58 | { | ||
59 | VP_FUNC_CALL(); | ||
60 | - if (m_bVdboxToSfc && m_videoConfig.codecStandard == CODECHAL_JPEG) | ||
61 | + | ||
62 | + if (m_bVdboxToSfc && cscParams.inputFormat != cscParams.outputFormat) | ||
63 | { | ||
64 | - if (cscParams.inputFormat != cscParams.outputFormat) | ||
65 | + if (m_videoConfig.codecStandard == CODECHAL_JPEG || cscParams.outputFormat == Format_A8R8G8B8) | ||
66 | { | ||
67 | return true; | ||
68 | } | ||
69 | diff --git a/media_softlet/agnostic/common/vp/hal/packet/vp_render_sfc_base.cpp b/media_softlet/agnostic/common/vp/hal/packet/vp_render_sfc_base.cpp | ||
70 | index 573a0a12d..2b7c5231a 100644 | ||
71 | --- a/media_softlet/agnostic/common/vp/hal/packet/vp_render_sfc_base.cpp | ||
72 | +++ b/media_softlet/agnostic/common/vp/hal/packet/vp_render_sfc_base.cpp | ||
73 | @@ -238,10 +238,10 @@ MOS_STATUS SfcRenderBase::SetIefStateCscParams( | ||
74 | { | ||
75 | psfcStateParams->bCSCEnable = true; | ||
76 | pIEFStateParams->bCSCEnable = true; | ||
77 | - if (m_bVdboxToSfc && m_videoConfig.codecStandard == CODECHAL_JPEG) | ||
78 | + if (m_bVdboxToSfc) | ||
79 | { | ||
80 | m_cscInputSwapNeeded = false; | ||
81 | - if (m_videoConfig.jpeg.jpegChromaType == jpegRGB) | ||
82 | + if (m_videoConfig.jpeg.jpegChromaType == jpegRGB && m_videoConfig.codecStandard == CODECHAL_JPEG) | ||
83 | { | ||
84 | m_cscCoeff[0] = 1.000000000f; | ||
85 | m_cscCoeff[1] = 0.000000000f; | ||
86 | -- | ||
87 | 2.40.1 | ||
88 | |||