descriptor_pool_storage_buffer_count: u32,
/// The number of sampled image descriptors available in each descriptor pool.
descriptor_pool_sampled_image_count: u32,
+ /// The number of storage image descriptors available in each descriptor pool.
+ descriptor_pool_storage_image_count: u32,
}
const VULKAN_CONSTANTS: VulkanConstants = VulkanConstants {
descriptor_pool_uniform_buffer_count: 500,
descriptor_pool_storage_buffer_count: 500,
descriptor_pool_sampled_image_count: 500,
+ descriptor_pool_storage_image_count: 500,
};
#[macro_export]
descriptor_type: vk::DescriptorType::SampledImage,
descriptor_count: VULKAN_CONSTANTS.descriptor_pool_sampled_image_count,
},
+ vk::DescriptorPoolSize {
+ descriptor_type: vk::DescriptorType::StorageImage,
+ descriptor_count: VULKAN_CONSTANTS.descriptor_pool_storage_image_count,
+ },
];
let mut descriptor_pool = vk::DescriptorPool::null();
let create_info = vk::DescriptorPoolCreateInfo {
if image_desc.dimension == ImageDimension::TypeCube {
debug_assert!(
- image_desc.layer_count % 6 == 0,
+ image_desc.layer_count.is_multiple_of(6),
"cubemaps must have 6 layers each"
);
debug_assert_eq!(image_desc.depth, 1, "cubemap faces must be 2d");
vk_check!(unsafe { self.device_fn.device_wait_idle(self.device) });
}
- fn begin_frame(&self) -> Frame {
+ fn begin_frame(&self) -> Frame<'_> {
let device_fn = &self.device_fn;
let device = self.device;