d3d12: Fix aliased usage of m_SliceControlBuffer in d3d12_video_decoder_prepare_dxva_...
authorSil Vilerino <sivileri@microsoft.com>
Wed, 28 Sep 2022 21:38:04 +0000 (17:38 -0400)
committerSil Vilerino <sivileri@microsoft.com>
Thu, 29 Sep 2022 19:50:04 +0000 (15:50 -0400)
Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18875>

src/gallium/drivers/d3d12/d3d12_video_dec_av1.cpp
src/gallium/drivers/d3d12/d3d12_video_dec_h264.cpp
src/gallium/drivers/d3d12/d3d12_video_dec_hevc.cpp

index 631799d..27787d9 100644 (file)
@@ -334,7 +334,7 @@ d3d12_video_decoder_prepare_dxva_slices_control_av1(struct d3d12_video_decoder *
                   tile_count);
 
    uint64_t TotalSlicesDXVAArrayByteSize = tile_count * sizeof(DXVA_Tile_AV1);
-   pD3D12Dec->m_SliceControlBuffer.resize(TotalSlicesDXVAArrayByteSize);
+   vecOutSliceControlBuffers.resize(TotalSlicesDXVAArrayByteSize);
 
    uint8_t* pData = vecOutSliceControlBuffers.data();
    for (uint32_t tileIdx = 0; tileIdx < tile_count; tileIdx++)
index 8a22f7d..2aa4899 100644 (file)
@@ -140,7 +140,7 @@ d3d12_video_decoder_prepare_dxva_slices_control_h264(struct d3d12_video_decoder
                   picture_h264->slice_count);
 
    uint64_t TotalSlicesDXVAArrayByteSize = picture_h264->slice_count * sizeof(DXVA_Slice_H264_Short);
-   pD3D12Dec->m_SliceControlBuffer.resize(TotalSlicesDXVAArrayByteSize);
+   vecOutSliceControlBuffers.resize(TotalSlicesDXVAArrayByteSize);
    uint8_t* pData = vecOutSliceControlBuffers.data();
    size_t processedBitstreamBytes = 0u;
    uint32_t sliceIdx = 0;
index 927fe0b..488363d 100644 (file)
@@ -138,7 +138,7 @@ d3d12_video_decoder_prepare_dxva_slices_control_hevc(struct d3d12_video_decoder
                   picture_hevc->slice_parameter.slice_count);
 
    uint64_t TotalSlicesDXVAArrayByteSize = picture_hevc->slice_parameter.slice_count * sizeof(DXVA_Slice_HEVC_Short);
-   pD3D12Dec->m_SliceControlBuffer.resize(TotalSlicesDXVAArrayByteSize);
+   vecOutSliceControlBuffers.resize(TotalSlicesDXVAArrayByteSize);
 
    uint8_t* pData = vecOutSliceControlBuffers.data();
    for (uint32_t sliceIdx = 0; sliceIdx < picture_hevc->slice_parameter.slice_count; sliceIdx++)