added missing functions to V1_0 traits (#416)

This commit is contained in:
alpacahaircut 2021-04-30 08:21:41 -07:00 committed by GitHub
parent f5e7cfe896
commit 940f84e04a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 91 additions and 0 deletions

View file

@ -2090,4 +2090,38 @@ impl Device {
);
granularity
}
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceMemoryCommitment.html>"]
pub unsafe fn get_device_memory_commitment(&self, memory: vk::DeviceMemory) -> vk::DeviceSize {
let mut committed_memory_in_bytes = 0;
self.device_fn_1_0.get_device_memory_commitment(
self.handle(),
memory,
&mut committed_memory_in_bytes,
);
committed_memory_in_bytes
}
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetImageSparseMemoryRequirements.html>"]
pub unsafe fn get_image_sparse_memory_requirements(
&self,
image: vk::Image,
) -> Vec<vk::SparseImageMemoryRequirements> {
let mut count = 0;
self.device_fn_1_0.get_image_sparse_memory_requirements(
self.handle(),
image,
&mut count,
ptr::null_mut(),
);
let mut data = Vec::with_capacity(count as usize);
self.device_fn_1_0.get_image_sparse_memory_requirements(
self.handle(),
image,
&mut count,
data.as_mut_ptr(),
);
data.set_len(count as usize);
data
}
}

View file

@ -413,4 +413,61 @@ impl Instance {
data.set_len(num as usize);
err_code.result_with_success(data)
}
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkEnumerateDeviceLayerProperties.html>"]
pub unsafe fn enumerate_device_layer_properties(
&self,
device: vk::PhysicalDevice,
) -> VkResult<Vec<vk::LayerProperties>> {
let mut count = 0;
self.instance_fn_1_0
.enumerate_device_layer_properties(device, &mut count, ptr::null_mut())
.result()?;
let mut data = Vec::with_capacity(count as usize);
let err_code = self.instance_fn_1_0.enumerate_device_layer_properties(
device,
&mut count,
data.as_mut_ptr(),
);
data.set_len(count as usize);
err_code.result_with_success(data)
}
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html>"]
pub unsafe fn get_physical_device_sparse_image_format_properties(
&self,
physical_device: vk::PhysicalDevice,
format: vk::Format,
typ: vk::ImageType,
samples: vk::SampleCountFlags,
usage: vk::ImageUsageFlags,
tiling: vk::ImageTiling,
) -> Vec<vk::SparseImageFormatProperties> {
let mut count = 0;
self.instance_fn_1_0
.get_physical_device_sparse_image_format_properties(
physical_device,
format,
typ,
samples,
usage,
tiling,
&mut count,
ptr::null_mut(),
);
let mut data = Vec::with_capacity(count as usize);
self.instance_fn_1_0
.get_physical_device_sparse_image_format_properties(
physical_device,
format,
typ,
samples,
usage,
tiling,
&mut count,
data.as_mut_ptr(),
);
data.set_len(count as usize);
data
}
}