[PATCH vkd3d 3/6] libs/vkd3d: Implement DXGI_FORMAT_A8_UNORM.

Józef Kucia joseph.kucia at gmail.com
Tue Feb 13 06:15:03 CST 2018


From: Józef Kucia <jkucia at codeweavers.com>

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 libs/vkd3d/resource.c | 7 +++++++
 libs/vkd3d/utils.c    | 1 +
 2 files changed, 8 insertions(+)

diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c
index 712ff9c748f6..77f4f0d14a9b 100644
--- a/libs/vkd3d/resource.c
+++ b/libs/vkd3d/resource.c
@@ -1001,6 +1001,13 @@ static VkResult vkd3d_create_texture_view(struct d3d12_device *device,
         view_desc.components.b = VK_COMPONENT_SWIZZLE_ZERO;
         view_desc.components.a = VK_COMPONENT_SWIZZLE_ZERO;
     }
+    else if (format->dxgi_format == DXGI_FORMAT_A8_UNORM)
+    {
+        view_desc.components.r = VK_COMPONENT_SWIZZLE_ZERO;
+        view_desc.components.g = VK_COMPONENT_SWIZZLE_ZERO;
+        view_desc.components.b = VK_COMPONENT_SWIZZLE_ZERO;
+        view_desc.components.a = VK_COMPONENT_SWIZZLE_R;
+    }
     else
     {
         view_desc.components.r = VK_COMPONENT_SWIZZLE_R;
diff --git a/libs/vkd3d/utils.c b/libs/vkd3d/utils.c
index a326cae583ac..b3a8027b6048 100644
--- a/libs/vkd3d/utils.c
+++ b/libs/vkd3d/utils.c
@@ -50,6 +50,7 @@ static const struct vkd3d_format vkd3d_formats[] =
     {DXGI_FORMAT_R8_UNORM,            VK_FORMAT_R8_UNORM,                 1,  1, 1,  1, COLOR},
     {DXGI_FORMAT_R8_UINT,             VK_FORMAT_R8_UINT,                  1,  1, 1,  1, COLOR},
     {DXGI_FORMAT_R8_SNORM,            VK_FORMAT_R8_SNORM,                 1,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_A8_UNORM,            VK_FORMAT_R8_UNORM,                 1,  1, 1,  1, COLOR},
     {DXGI_FORMAT_B8G8R8A8_UNORM,      VK_FORMAT_B8G8R8A8_UNORM,           4,  1, 1,  1, COLOR},
     {DXGI_FORMAT_B8G8R8A8_TYPELESS,   VK_FORMAT_B8G8R8A8_UNORM,           4,  1, 1,  1, COLOR},
     {DXGI_FORMAT_B8G8R8A8_UNORM_SRGB, VK_FORMAT_B8G8R8A8_SRGB,            4,  1, 1,  1, COLOR},
-- 
2.13.6




More information about the wine-devel mailing list