wined3d: Retrieve the supported sample counts for Vulkan formats.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2019-09-20 18:08:29 +04:30 committed by Alexandre Julliard
parent 59ef897514
commit c84b48b770
1 changed files with 19 additions and 0 deletions

View File

@ -4160,10 +4160,13 @@ static void init_vulkan_format_info(struct wined3d_format_vk *format,
{WINED3DFMT_BC7_UNORM_SRGB, VK_FORMAT_BC7_SRGB_BLOCK, },
};
VkFormat vk_format = VK_FORMAT_UNDEFINED;
VkImageFormatProperties image_properties;
VkFormatFeatureFlags texture_flags;
VkFormatProperties properties;
VkImageUsageFlags vk_usage;
unsigned int flags;
unsigned int i;
VkResult vr;
for (i = 0; i < ARRAY_SIZE(vulkan_formats); ++i)
{
@ -4211,6 +4214,22 @@ static void init_vulkan_format_info(struct wined3d_format_vk *format,
format->f.flags[WINED3D_GL_RES_TYPE_TEX_2D] |= flags;
format->f.flags[WINED3D_GL_RES_TYPE_TEX_3D] |= flags;
format->f.flags[WINED3D_GL_RES_TYPE_TEX_CUBE] |= flags;
vk_usage = 0;
if (texture_flags & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT)
vk_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
else if (texture_flags & VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT)
vk_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
if (vk_usage)
{
if ((vr = VK_CALL(vkGetPhysicalDeviceImageFormatProperties(vk_physical_device, vk_format,
VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_OPTIMAL, vk_usage, 0, &image_properties))) < 0)
{
ERR("Failed to get image format properties, vr %s.\n", wined3d_debug_vkresult(vr));
return;
}
format->f.multisample_types = image_properties.sampleCounts;
}
}
BOOL wined3d_adapter_vk_init_format_info(struct wined3d_adapter_vk *adapter_vk,