]> git.nega.tv - josh/narcissus/commitdiff
narcissus-gpu: Add 10-bit packed color formats
authorJosh Simmons <josh@nega.tv>
Sun, 12 May 2024 10:47:41 +0000 (12:47 +0200)
committerJosh Simmons <josh@nega.tv>
Sun, 12 May 2024 10:47:41 +0000 (12:47 +0200)
engine/narcissus-gpu/src/backend/vulkan/convert.rs
engine/narcissus-gpu/src/lib.rs

index 3fa185084e2e2bd6d2949ecb6f398a9b4386a9d5..7726a05c66848cf8133b819defc3117d792ccb2a 100644 (file)
@@ -27,6 +27,8 @@ pub fn vulkan_format(format: ImageFormat) -> vk::Format {
         ImageFormat::RGBA8_UNORM => vk::Format::R8G8B8A8_UNORM,
         ImageFormat::BGRA8_SRGB => vk::Format::B8G8R8A8_SRGB,
         ImageFormat::BGRA8_UNORM => vk::Format::B8G8R8A8_UNORM,
+        ImageFormat::A2R10G10B10_UNORM_PACK32 => vk::Format::A2R10G10B10_UNORM_PACK32,
+        ImageFormat::A2B10G10R10_UNORM_PACK32 => vk::Format::A2B10G10R10_UNORM_PACK32,
         ImageFormat::DEPTH_F32 => vk::Format::D32_SFLOAT,
     }
 }
@@ -38,7 +40,9 @@ pub fn vulkan_aspect_for_format(format: ImageFormat) -> vk::ImageAspectFlags {
         | ImageFormat::BGRA8_SRGB
         | ImageFormat::BGRA8_UNORM
         | ImageFormat::RGBA8_SRGB
-        | ImageFormat::RGBA8_UNORM => vk::ImageAspectFlags::COLOR,
+        | ImageFormat::RGBA8_UNORM
+        | ImageFormat::A2R10G10B10_UNORM_PACK32
+        | ImageFormat::A2B10G10R10_UNORM_PACK32 => vk::ImageAspectFlags::COLOR,
         ImageFormat::DEPTH_F32 => vk::ImageAspectFlags::DEPTH,
     }
 }
index c5a7165947fd07353482412b271ecf544ba19376..13fa86b4039c2892c0024f405171ff7b0a68bf5c 100644 (file)
@@ -129,6 +129,8 @@ pub enum ImageFormat {
     BGRA8_UNORM,
     RGBA8_SRGB,
     RGBA8_UNORM,
+    A2R10G10B10_UNORM_PACK32,
+    A2B10G10R10_UNORM_PACK32,
     DEPTH_F32,
 }