summaryrefslogtreecommitdiffstats
path: root/recipes-multimedia/libva
diff options
context:
space:
mode:
authorChan, Xu Pian <xu.pian.chan@intel.com>2023-10-12 20:24:52 +0800
committerAnuj Mittal <anuj.mittal@intel.com>2023-10-12 14:56:19 +0800
commitdc5a3429cb5030ad683bb432cd23ab644bf5a977 (patch)
tree42144b6727ea046745017982dd9e8c303e3b2dee /recipes-multimedia/libva
parent6883d43acea3914eebf579d4b2613bb5f6183756 (diff)
downloadmeta-intel-dc5a3429cb5030ad683bb432cd23ab644bf5a977.tar.gz
intel-media-driver: Fix corruption issue for no background colorfill cases
Set sRGB color space for non-video wall and no background colorfill cases Signed-off-by: Chan, Xu Pian <xu.pian.chan@intel.com> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Diffstat (limited to 'recipes-multimedia/libva')
-rw-r--r--recipes-multimedia/libva/files/0001-Set-sRGB-color-space-for-non-video-wall-and-no-backg.patch95
-rw-r--r--recipes-multimedia/libva/intel-media-driver_23.2.4.bb1
2 files changed, 96 insertions, 0 deletions
diff --git a/recipes-multimedia/libva/files/0001-Set-sRGB-color-space-for-non-video-wall-and-no-backg.patch b/recipes-multimedia/libva/files/0001-Set-sRGB-color-space-for-non-video-wall-and-no-backg.patch
new file mode 100644
index 00000000..1d62b773
--- /dev/null
+++ b/recipes-multimedia/libva/files/0001-Set-sRGB-color-space-for-non-video-wall-and-no-backg.patch
@@ -0,0 +1,95 @@
1From b2c514337d2bc6015292aac5b57a603f8ad4fed5 Mon Sep 17 00:00:00 2001
2From: Lu-Anxiao <anxiao.lu@intel.com>
3Date: Mon, 9 Oct 2023 20:47:44 +0800
4Subject: [PATCH] Set sRGB color space for non-video wall and no background
5 colorfill cases.
6
7* [VP] Set sRGB color space for non-video wall and no background colorfill cases.
8
9This solves the regression caused by
10https://github.com/intel/media-driver/commit/a9c2df7b01c2f33775c676f5490ea274410e9db2.
11
12Upstream-Status: Backport [https://github.com/intel/media-driver/commit/509ab5f6c6d447575c61e32d323aa4e7aa212fbd]
13Signed-off-by: Chan, Xu Pian <xu.pian.chan@intel.com>
14---
15 .../linux/common/vp/ddi/media_libva_vp.c | 18 +++++++++++++-----
16 .../linux/common/vp/ddi/ddi_vp_functions.cpp | 19 ++++++++++++++-----
17 2 files changed, 27 insertions(+), 10 deletions(-)
18
19diff --git a/media_driver/linux/common/vp/ddi/media_libva_vp.c b/media_driver/linux/common/vp/ddi/media_libva_vp.c
20index 2ef610d35..4e10905ff 100644
21--- a/media_driver/linux/common/vp/ddi/media_libva_vp.c
22+++ b/media_driver/linux/common/vp/ddi/media_libva_vp.c
23@@ -1148,7 +1148,7 @@ DdiVp_SetProcPipelineParams(
24
25 // Background Colorfill
26 // According to libva definition, if alpha in output background color is zero, then colorfill is not needed
27- if ((pPipelineParam->output_background_color >> 24) != 0)
28+ if ((pPipelineParam->output_background_color >> 24) != 0 || pVpHalTgtSurf->ColorSpace == CSpace_sRGB)
29 {
30 if (pVpHalRenderParams->pColorFillParams == nullptr)
31 {
32@@ -1157,10 +1157,18 @@ DdiVp_SetProcPipelineParams(
33
34 DDI_CHK_NULL(pVpHalRenderParams->pColorFillParams, "Null pColorFillParams.", VA_STATUS_ERROR_UNKNOWN);
35
36- // set background colorfill option
37- pVpHalRenderParams->pColorFillParams->Color = pPipelineParam->output_background_color;
38- pVpHalRenderParams->pColorFillParams->bYCbCr = false;
39- pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
40+ if (pVpHalTgtSurf->ColorSpace == CSpace_sRGB && (pPipelineParam->output_background_color >> 24) == 0)
41+ {
42+ // set color space for sRGB output
43+ pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
44+ }
45+ else
46+ {
47+ // set background colorfill option
48+ pVpHalRenderParams->pColorFillParams->Color = pPipelineParam->output_background_color;
49+ pVpHalRenderParams->pColorFillParams->bYCbCr = false;
50+ pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
51+ }
52 }else
53 {
54 MOS_FreeMemAndSetNull(pVpHalRenderParams->pColorFillParams);
55diff --git a/media_softlet/linux/common/vp/ddi/ddi_vp_functions.cpp b/media_softlet/linux/common/vp/ddi/ddi_vp_functions.cpp
56index fa02bf147..fe64bb8ae 100644
57--- a/media_softlet/linux/common/vp/ddi/ddi_vp_functions.cpp
58+++ b/media_softlet/linux/common/vp/ddi/ddi_vp_functions.cpp
59@@ -2085,8 +2085,9 @@ VAStatus DdiVpFunctions::SetBackgroundColorfill(
60 {
61 DDI_VP_FUNC_ENTER;
62 DDI_VP_CHK_NULL(vpHalRenderParams, "nullptr vpHalRenderParams.", VA_STATUS_ERROR_INVALID_PARAMETER);
63+ DDI_VP_CHK_NULL(vpHalRenderParams->pTarget[0],"nullptr pTarget[0].", VA_STATUS_ERROR_INVALID_PARAMETER);
64
65- if ((outBackGroundcolor >> 24) != 0)
66+ if ((outBackGroundcolor >> 24) != 0 || vpHalRenderParams->pTarget[0]->ColorSpace == CSpace_sRGB)
67 {
68 if (vpHalRenderParams->pColorFillParams == nullptr)
69 {
70@@ -2095,10 +2096,18 @@ VAStatus DdiVpFunctions::SetBackgroundColorfill(
71
72 DDI_VP_CHK_NULL(vpHalRenderParams->pColorFillParams, "nullptr pColorFillParams.", VA_STATUS_ERROR_UNKNOWN);
73
74- // set background colorfill option
75- vpHalRenderParams->pColorFillParams->Color = outBackGroundcolor;
76- vpHalRenderParams->pColorFillParams->bYCbCr = false;
77- vpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
78+ if (vpHalRenderParams->pTarget[0]->ColorSpace == CSpace_sRGB && (outBackGroundcolor >> 24) == 0)
79+ {
80+ // set color space for sRGB output
81+ vpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
82+ }
83+ else
84+ {
85+ // set background colorfill option
86+ vpHalRenderParams->pColorFillParams->Color = outBackGroundcolor;
87+ vpHalRenderParams->pColorFillParams->bYCbCr = false;
88+ vpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
89+ }
90 }
91 else
92 {
93--
942.25.1
95
diff --git a/recipes-multimedia/libva/intel-media-driver_23.2.4.bb b/recipes-multimedia/libva/intel-media-driver_23.2.4.bb
index a46f0467..e6016264 100644
--- a/recipes-multimedia/libva/intel-media-driver_23.2.4.bb
+++ b/recipes-multimedia/libva/intel-media-driver_23.2.4.bb
@@ -29,6 +29,7 @@ SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;nobranch=1 \
29 file://0004-Disable-vp9-padding-on-mtl.patch \ 29 file://0004-Disable-vp9-padding-on-mtl.patch \
30 file://0001-Fix-FC-Corruption-When-Blending-without-Colorfill.patch \ 30 file://0001-Fix-FC-Corruption-When-Blending-without-Colorfill.patch \
31 file://0001-Fix-FC-Corruption-When-Blending-without-Colorfill-in.patch \ 31 file://0001-Fix-FC-Corruption-When-Blending-without-Colorfill-in.patch \
32 file://0001-Set-sRGB-color-space-for-non-video-wall-and-no-backg.patch \
32 " 33 "
33 34
34SRCREV = "cf942344b9e439d19873f1d47c0c890d7c63b6ad" 35SRCREV = "cf942344b9e439d19873f1d47c0c890d7c63b6ad"