Skip to content

Commit 6cc9954

Browse files
alarionoSherry-Lin
authored andcommitted
[Encode] Changed rules for AYUV & Y410 reconstructed surfaces allocation
This is allow to enable 8k encoding (8192x8192) Change-Id: I773d8652bd8f0f4a507b788c5904eac5d08e262f
1 parent bcb3349 commit 6cc9954

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,15 @@ class MhwVdboxHcpInterfaceGeneric : public MhwVdboxHcpInterface
115115
cmd.DW1.SurfaceId = params->ucSurfaceStateId;
116116
cmd.DW1.SurfacePitchMinus1 = params->psSurface->dwPitch - 1;
117117

118+
/* Handling of reconstructed surface is different for Y410 & AYUV formats */
119+
if ((params->ucSurfaceStateId != CODECHAL_HCP_SRC_SURFACE_ID) &&
120+
(params->psSurface->Format == Format_Y410))
121+
cmd.DW1.SurfacePitchMinus1 = params->psSurface->dwPitch / 2 - 1;
122+
123+
if ((params->ucSurfaceStateId != CODECHAL_HCP_SRC_SURFACE_ID) &&
124+
(params->psSurface->Format == Format_AYUV))
125+
cmd.DW1.SurfacePitchMinus1 = params->psSurface->dwPitch / 4 - 1;
126+
118127
cmd.DW2.YOffsetForUCbInPixel = params->psSurface->UPlaneOffset.iYOffset;
119128

120129
MHW_MI_CHK_STATUS(Mos_AddCommand(cmdBuffer, &cmd, cmd.byteSize));

media_driver/agnostic/gen11/hw/vdbox/mhw_vdbox_hcp_g11_X.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1309,7 +1309,7 @@ MOS_STATUS MhwVdboxHcpInterfaceG11::AddHcpEncodeSurfaceStateCmd(
13091309
mhw_vdbox_hcp_g11_X::HCP_SURFACE_STATE_CMD *cmd =
13101310
(mhw_vdbox_hcp_g11_X::HCP_SURFACE_STATE_CMD*)cmdBuffer->pCmdPtr;
13111311

1312-
MHW_MI_CHK_STATUS(MhwVdboxHcpInterfaceGeneric<mhw_vdbox_hcp_g11_X>::AddHcpDecodeSurfaceStateCmd(cmdBuffer, params));
1312+
MHW_MI_CHK_STATUS(MhwVdboxHcpInterfaceGeneric<mhw_vdbox_hcp_g11_X>::AddHcpEncodeSurfaceStateCmd(cmdBuffer, params));
13131313

13141314
bool surf10bit= (params->psSurface->Format == Format_P010) ||
13151315
(params->psSurface->Format == Format_P210) ||

media_driver/agnostic/gen11/hw/vdbox/mhw_vdbox_vdenc_g11_X.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,6 +1070,13 @@ class MhwVdboxVdencInterfaceG11 : public MhwVdboxVdencInterfaceGeneric<TVdencCmd
10701070
if (cmd.Dwords25.DW1.SurfaceFormat == vdencSurfaceFormatY416Variant ||
10711071
cmd.Dwords25.DW1.SurfaceFormat == vdencSurfaceFormatAyuvVariant)
10721072
{
1073+
/* Y410/Y416 Reconstructed format handling */
1074+
if (cmd.Dwords25.DW1.SurfaceFormat == vdencSurfaceFormatY416Variant)
1075+
cmd.Dwords25.DW1.SurfacePitch = params->psSurface->dwPitch / 2 - 1;
1076+
/* AYUV Reconstructed format handling */
1077+
if (cmd.Dwords25.DW1.SurfaceFormat == vdencSurfaceFormatAyuvVariant)
1078+
cmd.Dwords25.DW1.SurfacePitch = params->psSurface->dwPitch / 4 - 1;
1079+
10731080
cmd.Dwords25.DW2.YOffsetForUCb = params->dwReconSurfHeight;
10741081
cmd.Dwords25.DW3.YOffsetForVCr = params->dwReconSurfHeight << 1;
10751082
}

0 commit comments

Comments
 (0)