d3d12: Fix video decode for interlaced streams with reference only textures required
authorSil Vilerino <sivileri@microsoft.com>
Fri, 10 Mar 2023 03:59:45 +0000 (22:59 -0500)
committerMarge Bot <emma+marge@anholt.net>
Sat, 11 Mar 2023 14:31:32 +0000 (14:31 +0000)
Fixes: d8206f628659d468c870430daa271d5bec6e860d ("d3d12: Add video decode implementation of pipe_video_codec")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21832>

src/gallium/drivers/d3d12/d3d12_video_dec_references_mgr.cpp

index 2393739..f9aa756 100644 (file)
@@ -69,7 +69,7 @@ d3d12_video_decoder_references_manager::get_current_frame_decode_output_texture(
    assert(m_DecodeTargetToOriginalIndex7Bits.count(pCurrentDecodeTarget) > 0); // Needs to already have a Index7Bits assigned for current pic params
    uint16_t remappedIdx = find_remapped_index(m_DecodeTargetToOriginalIndex7Bits[pCurrentDecodeTarget]);
 
-   if(remappedIdx != m_invalidIndex) { // If it already has a remapped index in use, reuse that allocation
+   if((remappedIdx != m_invalidIndex) && !(is_reference_only())) { // If it already has a remapped index in use, reuse that allocation
       // return the existing allocation for this decode target
       d3d12_video_reconstructed_picture reconPicture = m_upD3D12TexturesStorageManager->get_reference_frame(remappedIdx);
       *ppOutTexture2D       = reconPicture.pReconstructedPicture;