Commit 4ac1c48e authored by Paul Gofman's avatar Paul Gofman Committed by Alexandre Julliard

vulkan-1/tests: Consider vkGetPhysicalDevicePresentRectanglesKHR absence in test_null_hwnd().

parent b44fb883
......@@ -441,11 +441,13 @@ static const char *test_null_hwnd_extensions[] =
{
"VK_KHR_surface",
"VK_KHR_win32_surface",
"VK_KHR_device_group_creation",
};
static void test_null_hwnd(VkInstance vk_instance, VkPhysicalDevice vk_physical_device)
{
PFN_vkGetPhysicalDeviceSurfacePresentModesKHR pvkGetPhysicalDeviceSurfacePresentModesKHR;
PFN_vkGetPhysicalDevicePresentRectanglesKHR pvkGetPhysicalDevicePresentRectanglesKHR;
VkDeviceGroupPresentModeFlagsKHR present_mode_flags;
VkWin32SurfaceCreateInfoKHR surface_create_info;
VkSurfaceCapabilitiesKHR surf_caps;
......@@ -461,6 +463,9 @@ static void test_null_hwnd(VkInstance vk_instance, VkPhysicalDevice vk_physical_
pvkGetPhysicalDeviceSurfacePresentModesKHR = (void *)vkGetInstanceProcAddr(vk_instance,
"vkGetPhysicalDeviceSurfacePresentModesKHR");
pvkGetPhysicalDevicePresentRectanglesKHR = (void *)vkGetInstanceProcAddr(vk_instance,
"vkGetPhysicalDevicePresentRectanglesKHR");
surface_create_info.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
surface_create_info.pNext = NULL;
surface_create_info.flags = 0;
......@@ -499,12 +504,14 @@ static void test_null_hwnd(VkInstance vk_instance, VkPhysicalDevice vk_physical_
ok(vr == VK_SUCCESS, "Got unexpected vr %d.\n", vr);
heap_free(modes);
if (pvkGetPhysicalDevicePresentRectanglesKHR)
{
count = 0;
vr = vkGetPhysicalDevicePresentRectanglesKHR(vk_physical_device, surface, &count, NULL);
vr = pvkGetPhysicalDevicePresentRectanglesKHR(vk_physical_device, surface, &count, NULL);
ok(vr == VK_SUCCESS, "Got unexpected vr %d.\n", vr);
ok(count == 1, "Got unexpected count %u.\n", count);
memset(&rect, 0xcc, sizeof(rect));
vr = vkGetPhysicalDevicePresentRectanglesKHR(vk_physical_device, surface, &count, &rect);
vr = pvkGetPhysicalDevicePresentRectanglesKHR(vk_physical_device, surface, &count, &rect);
if (vr == VK_SUCCESS) /* Fails on AMD, succeeds on Nvidia. */
{
ok(count == 1, "Got unexpected count %u.\n", count);
......@@ -519,6 +526,14 @@ static void test_null_hwnd(VkInstance vk_instance, VkPhysicalDevice vk_physical_
vkDestroySurfaceKHR(vk_instance, surface, NULL);
return;
}
}
else
{
/* The function should be available in practice with VK_KHR_device_group_creation, but spec lists
* it as a part of VK_KHR_device_group device extension which we don't check, so consider the
* absence of the function. */
win_skip("pvkGetPhysicalDevicePresentRectanglesKHR is no available.\n");
}
if (0)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment