if usage.contains(BufferUsageFlags::TRANSFER) {
usage_flags |= vk::BufferUsageFlags::TRANSFER_SRC | vk::BufferUsageFlags::TRANSFER_DST;
}
+ if usage.contains(BufferUsageFlags::INDIRECT) {
+ usage_flags |= vk::BufferUsageFlags::INDIRECT_BUFFER;
+ }
+ usage_flags |= vk::BufferUsageFlags::SHADER_DEVICE_ADDRESS;
usage_flags
}
let create_info = vk::BufferCreateInfo {
size: desc.size as u64,
- usage: vulkan_buffer_usage_flags(desc.usage)
- | vk::BufferUsageFlags::SHADER_DEVICE_ADDRESS,
+ usage: vulkan_buffer_usage_flags(desc.usage),
queue_family_indices: queue_family_indices.into(),
sharing_mode: vk::SharingMode::Exclusive,
..default()
// need a single collection of temporary buffers.
let create_info = vk::BufferCreateInfo {
size: VULKAN_CONSTANTS.transient_buffer_size,
- usage: vk::BufferUsageFlags::TRANSFER_DST
- | vk::BufferUsageFlags::TRANSFER_SRC
- | vk::BufferUsageFlags::INDEX_BUFFER
+ usage: vk::BufferUsageFlags::INDEX_BUFFER
+ | vk::BufferUsageFlags::INDIRECT_BUFFER
+ | vk::BufferUsageFlags::SHADER_DEVICE_ADDRESS
| vk::BufferUsageFlags::STORAGE_BUFFER
- | vk::BufferUsageFlags::UNIFORM_BUFFER
- | vk::BufferUsageFlags::SHADER_DEVICE_ADDRESS,
+ | vk::BufferUsageFlags::TRANSFER_DST
+ | vk::BufferUsageFlags::TRANSFER_SRC
+ | vk::BufferUsageFlags::UNIFORM_BUFFER,
queue_family_indices: queue_family_indices.into(),
sharing_mode: vk::SharingMode::Exclusive,
..default()