From: Stefan Dösinger stefan@codeweavers.com
We can query support for this format without checking for an extension. VK_EXT_4444_formats introduces VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT, which is a native fit, but we have to introduce extension checks to vulkan_formats[]. I'll wait until after the release to submit this.
---
Not all Vulkan implementations support 16 bit packed formats. Notably Metal on Intel/AMD GPUs doesn't expose any of them (but MoltenVK knows the enums, so we can call vkGetPhysicalDeviceFormatProperties()). We'll need to do conversion similarly to the GL backend. --- dlls/wined3d/utils.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index 8256e387b22..f4036eed726 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -4262,6 +4262,7 @@ static void init_vulkan_format_info(struct wined3d_format_vk *format, {WINED3DFMT_B8G8R8X8_UNORM_SRGB, VK_FORMAT_B8G8R8A8_SRGB, "XYZ1"}, {WINED3DFMT_B5G6R5_UNORM, VK_FORMAT_R5G6B5_UNORM_PACK16, }, {WINED3DFMT_B5G5R5A1_UNORM, VK_FORMAT_A1R5G5B5_UNORM_PACK16, }, + {WINED3DFMT_B4G4R4A4_UNORM, VK_FORMAT_R4G4B4A4_UNORM_PACK16, "YZWX"}, {WINED3DFMT_BC1_UNORM, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, }, {WINED3DFMT_BC1_UNORM_SRGB, VK_FORMAT_BC1_RGBA_SRGB_BLOCK, }, {WINED3DFMT_BC2_UNORM, VK_FORMAT_BC2_UNORM_BLOCK, },