Set sRGB color space for non-video wall and no background
colorfill cases

Signed-off-by: Chan, Xu Pian <[email protected]>
---
 ...pace-for-non-video-wall-and-no-backg.patch | 95 +++++++++++++++++++
 .../libva/intel-media-driver_23.2.4.bb        |  1 +
 2 files changed, 96 insertions(+)
 create mode 100644 
recipes-multimedia/libva/files/0001-Set-sRGB-color-space-for-non-video-wall-and-no-backg.patch

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 @@
+From b2c514337d2bc6015292aac5b57a603f8ad4fed5 Mon Sep 17 00:00:00 2001
+From: Lu-Anxiao <[email protected]>
+Date: Mon, 9 Oct 2023 20:47:44 +0800
+Subject: [PATCH] Set sRGB color space for non-video wall and no background
+ colorfill cases.
+
+* [VP] Set sRGB color space for non-video wall and no background colorfill 
cases.
+
+This solves the regression caused by
+https://github.com/intel/media-driver/commit/a9c2df7b01c2f33775c676f5490ea274410e9db2.
+
+Upstream-Status: Backport 
[https://github.com/intel/media-driver/commit/509ab5f6c6d447575c61e32d323aa4e7aa212fbd]
+Signed-off-by: Chan, Xu Pian <[email protected]>
+---
+ .../linux/common/vp/ddi/media_libva_vp.c      | 18 +++++++++++++-----
+ .../linux/common/vp/ddi/ddi_vp_functions.cpp  | 19 ++++++++++++++-----
+ 2 files changed, 27 insertions(+), 10 deletions(-)
+
+diff --git a/media_driver/linux/common/vp/ddi/media_libva_vp.c 
b/media_driver/linux/common/vp/ddi/media_libva_vp.c
+index 2ef610d35..4e10905ff 100644
+--- a/media_driver/linux/common/vp/ddi/media_libva_vp.c
++++ b/media_driver/linux/common/vp/ddi/media_libva_vp.c
+@@ -1148,7 +1148,7 @@ DdiVp_SetProcPipelineParams(
+ 
+     // Background Colorfill
+     // According to libva  definition, if alpha in output background color is 
zero, then colorfill is not needed
+-    if ((pPipelineParam->output_background_color >> 24) != 0)
++    if ((pPipelineParam->output_background_color >> 24) != 0 || 
pVpHalTgtSurf->ColorSpace == CSpace_sRGB)
+     {
+         if (pVpHalRenderParams->pColorFillParams == nullptr)
+         {
+@@ -1157,10 +1157,18 @@ DdiVp_SetProcPipelineParams(
+ 
+         DDI_CHK_NULL(pVpHalRenderParams->pColorFillParams, "Null 
pColorFillParams.", VA_STATUS_ERROR_UNKNOWN);
+ 
+-        // set background colorfill option
+-        pVpHalRenderParams->pColorFillParams->Color     = 
pPipelineParam->output_background_color;
+-        pVpHalRenderParams->pColorFillParams->bYCbCr    = false;
+-        pVpHalRenderParams->pColorFillParams->CSpace    = CSpace_sRGB;
++        if (pVpHalTgtSurf->ColorSpace == CSpace_sRGB && 
(pPipelineParam->output_background_color >> 24) == 0)
++        {
++            // set color space for sRGB output
++            pVpHalRenderParams->pColorFillParams->CSpace    = CSpace_sRGB;
++        }
++        else
++        {
++            // set background colorfill option
++            pVpHalRenderParams->pColorFillParams->Color     = 
pPipelineParam->output_background_color;
++            pVpHalRenderParams->pColorFillParams->bYCbCr    = false;
++            pVpHalRenderParams->pColorFillParams->CSpace    = CSpace_sRGB;
++        }
+     }else
+     {
+         MOS_FreeMemAndSetNull(pVpHalRenderParams->pColorFillParams);
+diff --git a/media_softlet/linux/common/vp/ddi/ddi_vp_functions.cpp 
b/media_softlet/linux/common/vp/ddi/ddi_vp_functions.cpp
+index fa02bf147..fe64bb8ae 100644
+--- a/media_softlet/linux/common/vp/ddi/ddi_vp_functions.cpp
++++ b/media_softlet/linux/common/vp/ddi/ddi_vp_functions.cpp
+@@ -2085,8 +2085,9 @@ VAStatus DdiVpFunctions::SetBackgroundColorfill(
+ {
+     DDI_VP_FUNC_ENTER;
+     DDI_VP_CHK_NULL(vpHalRenderParams, "nullptr vpHalRenderParams.", 
VA_STATUS_ERROR_INVALID_PARAMETER);
++    DDI_VP_CHK_NULL(vpHalRenderParams->pTarget[0],"nullptr pTarget[0].", 
VA_STATUS_ERROR_INVALID_PARAMETER);
+ 
+-    if ((outBackGroundcolor >> 24) != 0)
++    if ((outBackGroundcolor >> 24) != 0 || 
vpHalRenderParams->pTarget[0]->ColorSpace == CSpace_sRGB)
+     {
+         if (vpHalRenderParams->pColorFillParams == nullptr)
+         {
+@@ -2095,10 +2096,18 @@ VAStatus DdiVpFunctions::SetBackgroundColorfill(
+ 
+         DDI_VP_CHK_NULL(vpHalRenderParams->pColorFillParams, "nullptr 
pColorFillParams.", VA_STATUS_ERROR_UNKNOWN);
+ 
+-        // set background colorfill option
+-        vpHalRenderParams->pColorFillParams->Color   = outBackGroundcolor;
+-        vpHalRenderParams->pColorFillParams->bYCbCr  = false;
+-        vpHalRenderParams->pColorFillParams->CSpace  = CSpace_sRGB;
++        if (vpHalRenderParams->pTarget[0]->ColorSpace == CSpace_sRGB && 
(outBackGroundcolor >> 24) == 0)
++        {
++            // set color space for sRGB output
++            vpHalRenderParams->pColorFillParams->CSpace  = CSpace_sRGB;
++        }
++        else
++        {
++            // set background colorfill option
++            vpHalRenderParams->pColorFillParams->Color   = outBackGroundcolor;
++            vpHalRenderParams->pColorFillParams->bYCbCr  = false;
++            vpHalRenderParams->pColorFillParams->CSpace  = CSpace_sRGB;
++        }
+     }
+     else
+     {
+-- 
+2.25.1
+
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 \
            file://0004-Disable-vp9-padding-on-mtl.patch \
            file://0001-Fix-FC-Corruption-When-Blending-without-Colorfill.patch 
\
            
file://0001-Fix-FC-Corruption-When-Blending-without-Colorfill-in.patch \
+           
file://0001-Set-sRGB-color-space-for-non-video-wall-and-no-backg.patch \
           "
 
 SRCREV = "cf942344b9e439d19873f1d47c0c890d7c63b6ad"
-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#8128): 
https://lists.yoctoproject.org/g/meta-intel/message/8128
Mute This Topic: https://lists.yoctoproject.org/mt/101912830/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to