diff --git a/src/gallium/frontends/mediafoundation/encode_h264.cpp b/src/gallium/frontends/mediafoundation/encode_h264.cpp index b9b1c44f995..1ef0b2c95dc 100644 --- a/src/gallium/frontends/mediafoundation/encode_h264.cpp +++ b/src/gallium/frontends/mediafoundation/encode_h264.cpp @@ -341,11 +341,6 @@ CDX12EncHMFT::PrepareForEncodeHelper( LPDX12EncodeContext pDX12EncodeContext, bo if( m_uiDirtyRectEnabled ) { - if( m_EncoderCapabilities.m_HWSupportDirtyRects.bits.supports_require_auto_slice_mode ) - { - pPicInfo->slice_mode = PIPE_VIDEO_SLICE_MODE_AUTO; - } - if( dirtyRectFrameNumSet ) { DIRTYRECT_INFO *pDirtyRectInfo = (DIRTYRECT_INFO *) m_pDirtyRectBlob.data(); @@ -357,6 +352,11 @@ CDX12EncHMFT::PrepareForEncodeHelper( LPDX12EncodeContext pDX12EncodeContext, bo uint8_t surfaceIndex = UINT8_MAX; uint32_t search = dirtyRectFrameNum - 1; + if( m_EncoderCapabilities.m_HWSupportDirtyRects.bits.supports_require_auto_slice_mode ) + { + pPicInfo->slice_mode = PIPE_VIDEO_SLICE_MODE_AUTO; + } + CHECKHR_GOTO( ValidateDirtyRects( pDX12EncodeContext, pDirtyRectInfo ), done ); assert( cur_frame_desc->dirty_rect_frame_num.size() == cur_frame_desc->dpb_snapshot.size() ); diff --git a/src/gallium/frontends/mediafoundation/encode_hevc.cpp b/src/gallium/frontends/mediafoundation/encode_hevc.cpp index 5258a41752e..1ab5dfb7c40 100644 --- a/src/gallium/frontends/mediafoundation/encode_hevc.cpp +++ b/src/gallium/frontends/mediafoundation/encode_hevc.cpp @@ -324,11 +324,6 @@ CDX12EncHMFT::PrepareForEncodeHelper( LPDX12EncodeContext pDX12EncodeContext, bo if( m_uiDirtyRectEnabled ) { - if( m_EncoderCapabilities.m_HWSupportDirtyRects.bits.supports_require_auto_slice_mode ) - { - pPicInfo->slice_mode = PIPE_VIDEO_SLICE_MODE_AUTO; - } - if( dirtyRectFrameNumSet ) { DIRTYRECT_INFO *pDirtyRectInfo = (DIRTYRECT_INFO *) m_pDirtyRectBlob.data(); @@ -340,6 +335,11 @@ CDX12EncHMFT::PrepareForEncodeHelper( LPDX12EncodeContext pDX12EncodeContext, bo uint8_t surfaceIndex = UINT8_MAX; uint32_t search = dirtyRectFrameNum - 1; + if( m_EncoderCapabilities.m_HWSupportDirtyRects.bits.supports_require_auto_slice_mode ) + { + pPicInfo->slice_mode = PIPE_VIDEO_SLICE_MODE_AUTO; + } + CHECKHR_GOTO( ValidateDirtyRects( pDX12EncodeContext, pDirtyRectInfo ), done ); assert( cur_frame_desc->dirty_rect_frame_num.size() == cur_frame_desc->dpb_snapshot.size() );