summaryrefslogtreecommitdiffstats
path: root/recipes-multimedia/libva/files/0003-fix-vdsfc-csc-issue.patch
diff options
context:
space:
mode:
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.patch88
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 @@
1From e4f88d8a7fbde1df022a648e2cd06c1b8abbd4e4 Mon Sep 17 00:00:00 2001
2From: shawnli2 <shawn.li@intel.com>
3Date: Sun, 25 Jun 2023 15:25:11 +0800
4Subject: [PATCH 3/5] fix vdsfc csc issue
5
6to support ARGB8 output, need to enable csc from YUV to RGB
7
8upstream-status: backport
9Backport from upstream media-driver:
10https://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
18diff --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
19index 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 }
35diff --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
36index 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;
52diff --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
53index 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 }
69diff --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
70index 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--
872.40.1
88