=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d: Add more formats.

Alexandre Julliard julliard at winehq.org
Thu Mar 7 16:20:50 CST 2019


Module: vkd3d
Branch: master
Commit: 3629787aad4dd5ac6e8c10c5665d5c8a1d02911f
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=3629787aad4dd5ac6e8c10c5665d5c8a1d02911f

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Mar  7 11:01:11 2019 +0100

vkd3d: Add more formats.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d/resource.c | 16 ++++++++++++++++
 libs/vkd3d/utils.c    |  7 +++++++
 2 files changed, 23 insertions(+)

diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c
index f197c93..c1a80c0 100644
--- a/libs/vkd3d/resource.c
+++ b/libs/vkd3d/resource.c
@@ -1648,6 +1648,22 @@ static void vkd3d_set_view_swizzle_for_format(VkComponentMapping *components,
             FIXME("Alpha swizzle is not supported.\n");
         }
     }
+
+    if (format->dxgi_format == DXGI_FORMAT_B8G8R8X8_UNORM
+            || format->dxgi_format == DXGI_FORMAT_B8G8R8X8_UNORM_SRGB)
+    {
+        if (allowed_swizzle)
+        {
+            components->r = VK_COMPONENT_SWIZZLE_R;
+            components->g = VK_COMPONENT_SWIZZLE_G;
+            components->b = VK_COMPONENT_SWIZZLE_B;
+            components->a = VK_COMPONENT_SWIZZLE_ONE;
+        }
+        else
+        {
+            FIXME("B8G8R8X8 swizzle is not supported.\n");
+        }
+    }
 }
 
 struct vkd3d_texture_view_desc
diff --git a/libs/vkd3d/utils.c b/libs/vkd3d/utils.c
index 1c10450..e8ebd2c 100644
--- a/libs/vkd3d/utils.c
+++ b/libs/vkd3d/utils.c
@@ -43,7 +43,9 @@ static const struct vkd3d_format vkd3d_formats[] =
     {DXGI_FORMAT_R32G32_FLOAT,          VK_FORMAT_R32G32_SFLOAT,            8,  1, 1,  1, COLOR},
     {DXGI_FORMAT_R32G32_UINT,           VK_FORMAT_R32G32_UINT,              8,  1, 1,  1, COLOR},
     {DXGI_FORMAT_R32G32_SINT,           VK_FORMAT_R32G32_SINT,              8,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R10G10B10A2_TYPELESS,  VK_FORMAT_A2B10G10R10_UNORM_PACK32, 4,  1, 1,  1, COLOR},
     {DXGI_FORMAT_R10G10B10A2_UNORM,     VK_FORMAT_A2B10G10R10_UNORM_PACK32, 4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R10G10B10A2_UINT,      VK_FORMAT_A2B10G10R10_UINT_PACK32,  4,  1, 1,  1, COLOR},
     {DXGI_FORMAT_R11G11B10_FLOAT,       VK_FORMAT_B10G11R11_UFLOAT_PACK32,  4,  1, 1,  1, COLOR},
     {DXGI_FORMAT_R8G8_TYPELESS,         VK_FORMAT_R8G8_UNORM,               2,  1, 1,  1, COLOR},
     {DXGI_FORMAT_R8G8_UNORM,            VK_FORMAT_R8G8_UNORM,               2,  1, 1,  1, COLOR},
@@ -81,8 +83,11 @@ static const struct vkd3d_format vkd3d_formats[] =
     {DXGI_FORMAT_R8_SINT,               VK_FORMAT_R8_SINT,                  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_B8G8R8X8_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},
+    {DXGI_FORMAT_B8G8R8X8_TYPELESS,     VK_FORMAT_B8G8R8A8_UNORM,           4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,   VK_FORMAT_B8G8R8A8_SRGB,            4,  1, 1,  1, COLOR},
     {DXGI_FORMAT_BC1_TYPELESS,          VK_FORMAT_BC1_RGBA_UNORM_BLOCK,     1,  4, 4,  8, COLOR},
     {DXGI_FORMAT_BC1_UNORM,             VK_FORMAT_BC1_RGBA_UNORM_BLOCK,     1,  4, 4,  8, COLOR},
     {DXGI_FORMAT_BC1_UNORM_SRGB,        VK_FORMAT_BC1_RGBA_SRGB_BLOCK,      1,  4, 4,  8, COLOR},
@@ -98,8 +103,10 @@ static const struct vkd3d_format vkd3d_formats[] =
     {DXGI_FORMAT_BC5_TYPELESS,          VK_FORMAT_BC5_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
     {DXGI_FORMAT_BC5_UNORM,             VK_FORMAT_BC5_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
     {DXGI_FORMAT_BC5_SNORM,             VK_FORMAT_BC5_SNORM_BLOCK,          1,  4, 4, 16, COLOR},
+    {DXGI_FORMAT_BC6H_TYPELESS,         VK_FORMAT_BC6H_UFLOAT_BLOCK,        1,  4, 4, 16, COLOR},
     {DXGI_FORMAT_BC6H_UF16,             VK_FORMAT_BC6H_UFLOAT_BLOCK,        1,  4, 4, 16, COLOR},
     {DXGI_FORMAT_BC6H_SF16,             VK_FORMAT_BC6H_SFLOAT_BLOCK,        1,  4, 4, 16, COLOR},
+    {DXGI_FORMAT_BC7_TYPELESS,          VK_FORMAT_BC7_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
     {DXGI_FORMAT_BC7_UNORM,             VK_FORMAT_BC7_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
     {DXGI_FORMAT_BC7_UNORM_SRGB,        VK_FORMAT_BC7_SRGB_BLOCK,           1,  4, 4, 16, COLOR},
 };




More information about the wine-cvs mailing list