mirror of
git://git.yoctoproject.org/meta-intel.git
synced 2025-07-05 05:04:45 +02:00
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>
This commit is contained in:
parent
6883d43ace
commit
dc5a3429cb
|
@ -0,0 +1,95 @@
|
|||
From b2c514337d2bc6015292aac5b57a603f8ad4fed5 Mon Sep 17 00:00:00 2001
|
||||
From: Lu-Anxiao <anxiao.lu@intel.com>
|
||||
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 <xu.pian.chan@intel.com>
|
||||
---
|
||||
.../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
|
||||
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue
Block a user