[PATCH vkd3d 02/14] libs/vkd3d: Add support for more formats.

Józef Kucia joseph.kucia at gmail.com
Wed Aug 1 08:34:33 CDT 2018


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

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 libs/vkd3d/utils.c | 103 ++++++++++++++++++++++++++++-------------------------
 1 file changed, 54 insertions(+), 49 deletions(-)

diff --git a/libs/vkd3d/utils.c b/libs/vkd3d/utils.c
index 87688f7752ad..98b764a169d1 100644
--- a/libs/vkd3d/utils.c
+++ b/libs/vkd3d/utils.c
@@ -24,55 +24,60 @@
 #define DEPTH_STENCIL (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)
 static const struct vkd3d_format vkd3d_formats[] =
 {
-    {DXGI_FORMAT_R32G32B32A32_FLOAT,  VK_FORMAT_R32G32B32A32_SFLOAT,      16, 1, 1,  1, COLOR},
-    {DXGI_FORMAT_R32G32B32A32_UINT,   VK_FORMAT_R32G32B32A32_UINT,        16, 1, 1,  1, COLOR},
-    {DXGI_FORMAT_R32G32B32A32_SINT,   VK_FORMAT_R32G32B32A32_SINT,        16, 1, 1,  1, COLOR},
-    {DXGI_FORMAT_R32G32B32_FLOAT,     VK_FORMAT_R32G32B32_SFLOAT,         12, 1, 1,  1, COLOR},
-    {DXGI_FORMAT_R32G32_FLOAT,        VK_FORMAT_R32G32_SFLOAT,            8,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R16G16B16A16_FLOAT,  VK_FORMAT_R16G16B16A16_SFLOAT,      8,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R16G16B16A16_UINT,   VK_FORMAT_R16G16B16A16_UINT,        8,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R10G10B10A2_UNORM,   VK_FORMAT_A2B10G10R10_UNORM_PACK32, 4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R11G11B10_FLOAT,     VK_FORMAT_B10G11R11_UFLOAT_PACK32,  4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R8G8B8A8_TYPELESS,   VK_FORMAT_R8G8B8A8_UNORM,           4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R8G8B8A8_UNORM,      VK_FORMAT_R8G8B8A8_UNORM,           4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, VK_FORMAT_R8G8B8A8_SRGB,            4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R16G16_FLOAT,        VK_FORMAT_R16G16_SFLOAT,            4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R16G16_UNORM,        VK_FORMAT_R16G16_UNORM,             4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R32_TYPELESS,        VK_FORMAT_R32_UINT,                 4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_D32_FLOAT,           VK_FORMAT_D32_SFLOAT,               4,  1, 1,  1, DEPTH},
-    {DXGI_FORMAT_R32_FLOAT,           VK_FORMAT_R32_SFLOAT,               4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R32_UINT,            VK_FORMAT_R32_UINT,                 4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R32_SINT,            VK_FORMAT_R32_SINT,                 4,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R16_TYPELESS,        VK_FORMAT_R16_UINT,                 2,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_R16_FLOAT,           VK_FORMAT_R16_SFLOAT,               2,  1, 1,  1, COLOR},
-    {DXGI_FORMAT_D16_UNORM,           VK_FORMAT_D16_UNORM,                2,  1, 1,  1, DEPTH},
-    {DXGI_FORMAT_R16_UNORM,           VK_FORMAT_R16_UNORM,                2,  1, 1,  1, COLOR},
-    {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},
-    {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},
-    {DXGI_FORMAT_BC2_TYPELESS,        VK_FORMAT_BC2_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
-    {DXGI_FORMAT_BC2_UNORM,           VK_FORMAT_BC2_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
-    {DXGI_FORMAT_BC2_UNORM_SRGB,      VK_FORMAT_BC2_SRGB_BLOCK,           1,  4, 4, 16, COLOR},
-    {DXGI_FORMAT_BC3_TYPELESS,        VK_FORMAT_BC3_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
-    {DXGI_FORMAT_BC3_UNORM,           VK_FORMAT_BC3_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
-    {DXGI_FORMAT_BC3_UNORM_SRGB,      VK_FORMAT_BC3_SRGB_BLOCK,           1,  4, 4, 16, COLOR},
-    {DXGI_FORMAT_BC4_TYPELESS,        VK_FORMAT_BC4_UNORM_BLOCK,          1,  4, 4,  8, COLOR},
-    {DXGI_FORMAT_BC4_UNORM,           VK_FORMAT_BC4_UNORM_BLOCK,          1,  4, 4,  8, COLOR},
-    {DXGI_FORMAT_BC4_SNORM,           VK_FORMAT_BC4_SNORM_BLOCK,          1,  4, 4,  8, COLOR},
-    {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_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_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},
+    {DXGI_FORMAT_R32G32B32A32_TYPELESS, VK_FORMAT_R32G32B32A32_SFLOAT,      16, 1, 1,  1, COLOR},
+    {DXGI_FORMAT_R32G32B32A32_FLOAT,    VK_FORMAT_R32G32B32A32_SFLOAT,      16, 1, 1,  1, COLOR},
+    {DXGI_FORMAT_R32G32B32A32_UINT,     VK_FORMAT_R32G32B32A32_UINT,        16, 1, 1,  1, COLOR},
+    {DXGI_FORMAT_R32G32B32A32_SINT,     VK_FORMAT_R32G32B32A32_SINT,        16, 1, 1,  1, COLOR},
+    {DXGI_FORMAT_R32G32B32_FLOAT,       VK_FORMAT_R32G32B32_SFLOAT,         12, 1, 1,  1, COLOR},
+    {DXGI_FORMAT_R32G32_FLOAT,          VK_FORMAT_R32G32_SFLOAT,            8,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R16G16B16A16_TYPELESS, VK_FORMAT_R16G16B16A16_SFLOAT,      8,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R16G16B16A16_FLOAT,    VK_FORMAT_R16G16B16A16_SFLOAT,      8,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R16G16B16A16_UINT,     VK_FORMAT_R16G16B16A16_UINT,        8,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R10G10B10A2_UNORM,     VK_FORMAT_A2B10G10R10_UNORM_PACK32, 4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R11G11B10_FLOAT,       VK_FORMAT_B10G11R11_UFLOAT_PACK32,  4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R8G8_UNORM,            VK_FORMAT_R8G8_UNORM,               2,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R8G8B8A8_TYPELESS,     VK_FORMAT_R8G8B8A8_UNORM,           4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R8G8B8A8_UNORM,        VK_FORMAT_R8G8B8A8_UNORM,           4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,   VK_FORMAT_R8G8B8A8_SRGB,            4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R8G8B8A8_UINT,         VK_FORMAT_R8G8B8A8_UINT,            4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R16G16_TYPELESS,       VK_FORMAT_R16G16_SFLOAT,            4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R16G16_FLOAT,          VK_FORMAT_R16G16_SFLOAT,            4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R16G16_UNORM,          VK_FORMAT_R16G16_UNORM,             4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R32_TYPELESS,          VK_FORMAT_R32_UINT,                 4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_D32_FLOAT,             VK_FORMAT_D32_SFLOAT,               4,  1, 1,  1, DEPTH},
+    {DXGI_FORMAT_R32_FLOAT,             VK_FORMAT_R32_SFLOAT,               4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R32_UINT,              VK_FORMAT_R32_UINT,                 4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R32_SINT,              VK_FORMAT_R32_SINT,                 4,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R16_TYPELESS,          VK_FORMAT_R16_UINT,                 2,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_R16_FLOAT,             VK_FORMAT_R16_SFLOAT,               2,  1, 1,  1, COLOR},
+    {DXGI_FORMAT_D16_UNORM,             VK_FORMAT_D16_UNORM,                2,  1, 1,  1, DEPTH},
+    {DXGI_FORMAT_R16_UNORM,             VK_FORMAT_R16_UNORM,                2,  1, 1,  1, COLOR},
+    {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},
+    {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},
+    {DXGI_FORMAT_BC2_TYPELESS,          VK_FORMAT_BC2_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
+    {DXGI_FORMAT_BC2_UNORM,             VK_FORMAT_BC2_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
+    {DXGI_FORMAT_BC2_UNORM_SRGB,        VK_FORMAT_BC2_SRGB_BLOCK,           1,  4, 4, 16, COLOR},
+    {DXGI_FORMAT_BC3_TYPELESS,          VK_FORMAT_BC3_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
+    {DXGI_FORMAT_BC3_UNORM,             VK_FORMAT_BC3_UNORM_BLOCK,          1,  4, 4, 16, COLOR},
+    {DXGI_FORMAT_BC3_UNORM_SRGB,        VK_FORMAT_BC3_SRGB_BLOCK,           1,  4, 4, 16, COLOR},
+    {DXGI_FORMAT_BC4_TYPELESS,          VK_FORMAT_BC4_UNORM_BLOCK,          1,  4, 4,  8, COLOR},
+    {DXGI_FORMAT_BC4_UNORM,             VK_FORMAT_BC4_UNORM_BLOCK,          1,  4, 4,  8, COLOR},
+    {DXGI_FORMAT_BC4_SNORM,             VK_FORMAT_BC4_SNORM_BLOCK,          1,  4, 4,  8, COLOR},
+    {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_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_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},
 };
 
 /* Each depth/stencil format is only compatible with itself in Vulkan. */
-- 
2.16.4




More information about the wine-devel mailing list