Skip to content

Commit

Permalink
[VP] Refine CSC sfc tile check
Browse files Browse the repository at this point in the history
Refine CSC sfc format+ tile check
  • Loading branch information
kchen1024 authored and intel-mediadev committed Jul 27, 2023
1 parent 2e5755b commit a6c20de
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -1051,7 +1051,8 @@ MOS_STATUS Policy::GetCSCExecutionCaps(SwFilter* feature)
// SFC CSC enabling check
if (!disableSfc &&
m_hwCaps.m_sfcHwEntry[cscParams->formatInput].inputSupported &&
m_hwCaps.m_sfcHwEntry[cscParams->formatOutput].outputSupported &&
(m_hwCaps.m_sfcHwEntry[cscParams->formatOutput].outputSupported &
VpGetFormatTileSupport(cscParams->output.tileMode)) &&
m_hwCaps.m_sfcHwEntry[cscParams->formatInput].cscSupported &&
isAlphaSettingSupportedBySfc)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ MOS_STATUS SwFilterCsc::Configure(VP_PIPELINE_PARAMS &params, bool isInputSurf,
m_Params.formatOutput = surfOutput->Format;
m_Params.input.chromaSiting = surfInput->ChromaSiting;
m_Params.output.chromaSiting = surfOutput->ChromaSiting;
m_Params.input.tileMode = surfInput->TileModeGMM;
m_Params.output.tileMode = surfOutput->TileModeGMM;
// Alpha should be handled in input pipe to avoid alpha data lost from image.
m_Params.pAlphaParams = params.pCompAlpha;
// formatForCUS will be set on demand in Policy::GetCSCExecutionCapsBT2020ToRGB.
Expand Down Expand Up @@ -207,6 +209,8 @@ MOS_STATUS SwFilterCsc::Configure(PVP_SURFACE surfInput, PVP_SURFACE surfOutput,
m_Params.input.colorSpace = surfInput->ColorSpace;
m_Params.output.colorSpace = surfInput->ColorSpace;

m_Params.input.tileMode = surfInput->osSurface->TileModeGMM;
m_Params.output.tileMode = surfOutput->osSurface->TileModeGMM;
m_Params.formatInput = surfInput->osSurface->Format;
// formatForCUS will be set on demand in Policy::GetCSCExecutionCapsBT2020ToRGB.
m_Params.formatforCUS = Format_None;
Expand All @@ -226,6 +230,8 @@ MOS_STATUS SwFilterCsc::Configure(PVP_SURFACE surfInput, PVP_SURFACE surfOutput,
// Skip CSC and only for chroma sitting purpose
m_Params.input.colorSpace = m_Params.output.colorSpace = surfInput->ColorSpace;
m_Params.formatInput = m_Params.formatOutput = surfInput->osSurface->Format;
m_Params.input.tileMode = surfInput->osSurface->TileModeGMM;
m_Params.output.tileMode = surfOutput->osSurface->TileModeGMM;
// formatForCUS will be set on demand in Policy::GetCSCExecutionCapsBT2020ToRGB.
m_Params.formatforCUS = Format_None;
m_Params.input.chromaSiting = surfInput->ChromaSiting;
Expand Down Expand Up @@ -258,6 +264,8 @@ MOS_STATUS SwFilterCsc::Configure(VEBOX_SFC_PARAMS &params)
}
m_Params.input.colorSpace = params.input.colorSpace;
m_Params.output.colorSpace = params.output.colorSpace;
m_Params.input.tileMode = params.input.surface->TileModeGMM;
m_Params.output.tileMode = params.output.surface->TileModeGMM;
m_Params.pIEFParams = nullptr;
m_Params.formatInput = params.input.surface->Format;
// formatForCUS will be set on demand in Policy::GetCSCExecutionCapsBT2020ToRGB.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1012,6 +1012,7 @@ struct FeatureParamCsc : public FeatureParam
{
VPHAL_CSPACE colorSpace = CSpace_None;
uint32_t chromaSiting = 0;
MOS_TILE_MODE_GMM tileMode = MOS_TILE_4_GMM;
bool operator == (const struct CSC_PARAMS &b)
{
return colorSpace == b.colorSpace && chromaSiting == b.chromaSiting;
Expand Down

0 comments on commit a6c20de

Please sign in to comment.