]> git.nega.tv - josh/narcissus/commitdiff
narcissus-gpu: Simplify transfer usage for buffers and images
authorJoshua Simmons <josh@nega.tv>
Sat, 15 Jul 2023 15:56:39 +0000 (17:56 +0200)
committerJoshua Simmons <josh@nega.tv>
Sat, 15 Jul 2023 15:56:39 +0000 (17:56 +0200)
bins/narcissus/src/helpers.rs
bins/narcissus/src/main.rs
libs/narcissus-gpu/src/backend/vulkan/mod.rs
libs/narcissus-gpu/src/lib.rs

index 5f9051feecd23fe069cfb375488097fd7c60d407..32f66496ffbe75ad343086a727b2f32bb91e44f4 100644 (file)
@@ -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,
index 2402e7e455667d0a56a228d98516c088b70b25bf..0e6374cd65d906b60186f1427f3cb81cfc1bdfdf 100644 (file)
@@ -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,
index 2a35d616d950767ab5268901ba2ee7736ccd6c6e..c98968f4052748f30b37a817aedd99ff0f9427a4 100644 (file)
@@ -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];
index c72142b7d9b9b836a93453cdc944d9842694e93d..35a4dc7744c12e4a569e1bec2a76582cc5659571 100644 (file)
@@ -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 {