Skip to content

Commit aa5c05e

Browse files
committed
get image memory requirements
1 parent ca1fa9d commit aa5c05e

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

crates/gdcef/src/accelerated_osr/linux/vulkan.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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!(

crates/gdcef/src/accelerated_osr/vulkan_common.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ macro_rules! impl_vulkan_common_methods {
4040
ash::vk::PFN_vkBindImageMemory
4141
),
4242
create_image: load_device_fn!("vkCreateImage", ash::vk::PFN_vkCreateImage),
43+
get_image_memory_requirements: load_device_fn!(
44+
"vkGetImageMemoryRequirements",
45+
ash::vk::PFN_vkGetImageMemoryRequirements
46+
),
4347
create_command_pool: load_device_fn!(
4448
"vkCreateCommandPool",
4549
ash::vk::PFN_vkCreateCommandPool

0 commit comments

Comments
 (0)