nvpro-samples / vk_video_samples

Vulkan video samples
Apache License 2.0
237 stars 40 forks source link

Decode: AV1 decoder tries to create an image with zero-initialized m_outImageCreateInfo #79

Open lolzballs opened 1 month ago

lolzballs commented 1 month ago

I ran into an assertion here: Assertion failed: !"CreateImage Failed!", file C:\develop\vk_video_samples\vk_video_decoder\libs\VkCodecUtils\VkImageResource.cpp, line 37

The vkCreateImage call fails because the create info (which comes from NvPerFrameDecodeImageSet::m_outImageCreateInfo) is still zero-initialized at this point. I bisected to 93c6657.

Callstack:

>   vk-video-dec-test.exe!VkImageResource::Create(const VulkanDeviceContext * vkDevCtx, const VkImageCreateInfo * pImageCreateInfo, unsigned int memoryPropertyFlags, VkSharedBaseObj<VkImageResource> & imageResource) Line 37 C++
    vk-video-dec-test.exe!NvPerFrameDecodeResources::CreateImage(const VulkanDeviceContext * vkDevCtx, const VkImageCreateInfo * pImageCreateInfo, unsigned int requiredMemProps, unsigned int imageIndex, VkSharedBaseObj<VkImageResource> & imageArrayParent, VkSharedBaseObj<VkImageResourceView> & imageViewArrayParent, ImageType imageType) Line 915  C++
    vk-video-dec-test.exe!NvPerFrameDecodeImageSet::GetImage(const VulkanDeviceContext * vkDevCtx, unsigned int imageIndex, VkVideoPictureResourceInfoKHR * pPictureResource, VulkanVideoFrameBuffer::PictureResourceInfo * pPictureResourceInfo, ImageType imageType) Line 333 C++
    vk-video-dec-test.exe!VkVideoFrameBuffer::AcquireImageResourceByIndex(char referenceSlotIndex, VkVideoPictureResourceInfoKHR * pPictureResource, VulkanVideoFrameBuffer::PictureResourceInfo * pPictureResourceInfo, VkImageLayout newImageLayerLayout, ImageType imageType) Line 724   C++
    vk-video-dec-test.exe!VkVideoDecoder::DecodePictureWithParameters(VkParserPerFrameDecodeParameters * pCurrFrameDecParams, VkParserDecodePictureInfo * pDecodePictureInfo) Line 580  C++
    vk-video-dec-test.exe!NvVulkanDecoder::VulkanVideoParser::DecodePicture(VkParserPictureData * pd, vkPicBuffBase * __formal, VkParserDecodePictureInfo * pDecodePictureInfo) Line 2330   C++
    vk-video-dec-test.exe!NvVulkanDecoder::VulkanVideoParser::DecodePicture(VkParserPictureData * pd) Line 791  C++
zlatinski commented 1 week ago

Thank you, Ben! We'll fix this soon as part of the main integration of the AV1 branch.