@@ -101,6 +101,7 @@ struct VulkanFunctions {
101101 allocate_memory : vk:: PFN_vkAllocateMemory ,
102102 bind_image_memory : vk:: PFN_vkBindImageMemory ,
103103 create_image : vk:: PFN_vkCreateImage ,
104+ get_image_memory_requirements : vk:: PFN_vkGetImageMemoryRequirements ,
104105 create_command_pool : vk:: PFN_vkCreateCommandPool ,
105106 destroy_command_pool : vk:: PFN_vkDestroyCommandPool ,
106107 allocate_command_buffers : vk:: PFN_vkAllocateCommandBuffers ,
@@ -822,8 +823,6 @@ impl VulkanTextureImporter {
822823 // Use the first plane's fd for memory import
823824 let fd = params. fds [ 0 ] ;
824825
825- let memory_requirements = vk:: MemoryRequirements :: default ( ) ;
826-
827826 let mut fd_props = vk:: MemoryFdPropertiesKHR :: default ( ) ;
828827 let result = unsafe {
829828 ( self . get_memory_fd_properties ) (
@@ -837,6 +836,11 @@ impl VulkanTextureImporter {
837836 return Err ( format ! ( "Failed to get memory fd properties: {:?}" , result) ) ;
838837 }
839838
839+ let mut memory_requirements = vk:: MemoryRequirements :: default ( ) ;
840+ unsafe {
841+ ( fns. get_image_memory_requirements ) ( self . device , image, & mut memory_requirements)
842+ } ;
843+
840844 let memory_type_bits = fd_props. memory_type_bits & memory_requirements. memory_type_bits ;
841845 let memory_type_index = find_memory_type_index ( memory_type_bits) . ok_or_else ( || {
842846 format ! (
0 commit comments