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