From: Joshua Simmons Date: Sat, 15 Jul 2023 15:56:39 +0000 (+0200) Subject: narcissus-gpu: Simplify transfer usage for buffers and images X-Git-Url: https://git.nega.tv//gitweb.cgi?a=commitdiff_plain;h=f869ac59a9b9611e4a52dce40a0e0dc8157d6a53;p=josh%2Fnarcissus narcissus-gpu: Simplify transfer usage for buffers and images --- diff --git a/bins/narcissus/src/helpers.rs b/bins/narcissus/src/helpers.rs index 5f9051f..32f6649 100644 --- a/bins/narcissus/src/helpers.rs +++ b/bins/narcissus/src/helpers.rs @@ -125,11 +125,11 @@ pub fn create_image_with_data( ) -> Image { let frame = device.begin_frame(); - let buffer = create_buffer_with_data(device, BufferUsageFlags::TRANSFER_SRC, data); + let buffer = create_buffer_with_data(device, BufferUsageFlags::TRANSFER, data); let image = device.create_image(&ImageDesc { location: MemoryLocation::Device, - usage: ImageUsageFlags::SAMPLED | ImageUsageFlags::TRANSFER_DST, + usage: ImageUsageFlags::SAMPLED | ImageUsageFlags::TRANSFER, dimension: ImageDimension::Type2d, format: ImageFormat::RGBA8_SRGB, initial_layout: ImageLayout::Optimal, diff --git a/bins/narcissus/src/main.rs b/bins/narcissus/src/main.rs index 2402e7e..0e6374c 100644 --- a/bins/narcissus/src/main.rs +++ b/bins/narcissus/src/main.rs @@ -110,7 +110,7 @@ pub fn main() { let glyph_atlas = device.create_image(&ImageDesc { location: MemoryLocation::Device, - usage: ImageUsageFlags::SAMPLED | ImageUsageFlags::TRANSFER_DST, + usage: ImageUsageFlags::SAMPLED | ImageUsageFlags::TRANSFER, dimension: ImageDimension::Type2d, format: ImageFormat::R8_UNORM, initial_layout: ImageLayout::Optimal, @@ -393,8 +393,7 @@ pub fn main() { let image = glyph_atlas; let data = texture; - let buffer = - create_buffer_with_data(device.as_ref(), BufferUsageFlags::TRANSFER_SRC, data); + let buffer = create_buffer_with_data(device.as_ref(), BufferUsageFlags::TRANSFER, data); device.cmd_barrier( &mut cmd_buffer, diff --git a/libs/narcissus-gpu/src/backend/vulkan/mod.rs b/libs/narcissus-gpu/src/backend/vulkan/mod.rs index 2a35d61..c98968f 100644 --- a/libs/narcissus-gpu/src/backend/vulkan/mod.rs +++ b/libs/narcissus-gpu/src/backend/vulkan/mod.rs @@ -1695,11 +1695,8 @@ impl VulkanDevice { if desc.usage.contains(BufferUsageFlags::INDEX) { usage |= vk::BufferUsageFlags::INDEX_BUFFER; } - if desc.usage.contains(BufferUsageFlags::TRANSFER_SRC) { - usage |= vk::BufferUsageFlags::TRANSFER_SRC; - } - if desc.usage.contains(BufferUsageFlags::TRANSFER_DST) { - usage |= vk::BufferUsageFlags::TRANSFER_DST; + if desc.usage.contains(BufferUsageFlags::TRANSFER) { + usage |= vk::BufferUsageFlags::TRANSFER_SRC | vk::BufferUsageFlags::TRANSFER_DST; } let queue_family_indices = &[self.universal_queue_family_index]; @@ -1877,11 +1874,8 @@ impl Device for VulkanDevice { if desc.usage.contains(ImageUsageFlags::COLOR_ATTACHMENT) { usage |= vk::ImageUsageFlags::COLOR_ATTACHMENT; } - if desc.usage.contains(ImageUsageFlags::TRANSFER_DST) { - usage |= vk::ImageUsageFlags::TRANSFER_DST; - } - if desc.usage.contains(ImageUsageFlags::TRANSFER_SRC) { - usage |= vk::ImageUsageFlags::TRANSFER_SRC; + if desc.usage.contains(ImageUsageFlags::TRANSFER) { + usage |= vk::ImageUsageFlags::TRANSFER_DST | vk::ImageUsageFlags::TRANSFER_SRC; } let queue_family_indices = &[self.universal_queue_family_index]; diff --git a/libs/narcissus-gpu/src/lib.rs b/libs/narcissus-gpu/src/lib.rs index c72142b..35a4dc7 100644 --- a/libs/narcissus-gpu/src/lib.rs +++ b/libs/narcissus-gpu/src/lib.rs @@ -148,8 +148,7 @@ impl ImageUsageFlags { pub const STORAGE: Self = Self(1 << 1); pub const COLOR_ATTACHMENT: Self = Self(1 << 2); pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(1 << 3); - pub const TRANSFER_SRC: Self = Self(1 << 4); - pub const TRANSFER_DST: Self = Self(1 << 5); + pub const TRANSFER: Self = Self(1 << 4); } pub struct ImageSubresourceLayers { @@ -201,8 +200,7 @@ impl BufferUsageFlags { pub const UNIFORM: Self = Self(1 << 0); pub const STORAGE: Self = Self(1 << 1); pub const INDEX: Self = Self(1 << 2); - pub const TRANSFER_SRC: Self = Self(1 << 3); - pub const TRANSFER_DST: Self = Self(1 << 4); + pub const TRANSFER: Self = Self(1 << 3); } pub struct BufferDesc {