Commit ef35ddee authored by Alexandros Frantzis's avatar Alexandros Frantzis Committed by Alexandre Julliard

winewayland.drv: Implement vkGetDeviceGroupSurfacePresentModesKHR.

This is a simple passthrough implementation to the native Vulkan driver, with the addition of a VkSurfaceKHR invalidation check.
parent 34f392bc
......@@ -58,6 +58,7 @@ static void (*pvkDestroyInstance)(VkInstance, const VkAllocationCallbacks *);
static void (*pvkDestroySurfaceKHR)(VkInstance, VkSurfaceKHR, const VkAllocationCallbacks *);
static void (*pvkDestroySwapchainKHR)(VkDevice, VkSwapchainKHR, const VkAllocationCallbacks *);
static VkResult (*pvkEnumerateInstanceExtensionProperties)(const char *, uint32_t *, VkExtensionProperties *);
static VkResult (*pvkGetDeviceGroupSurfacePresentModesKHR)(VkDevice, VkSurfaceKHR, VkDeviceGroupPresentModeFlagsKHR *);
static void * (*pvkGetDeviceProcAddr)(VkDevice, const char *);
static void * (*pvkGetInstanceProcAddr)(VkInstance, const char *);
static VkResult (*pvkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *, VkSurfaceCapabilities2KHR *);
......@@ -536,6 +537,20 @@ static VkResult wayland_vkEnumerateInstanceExtensionProperties(const char *layer
return res;
}
static VkResult wayland_vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,
VkSurfaceKHR surface,
VkDeviceGroupPresentModeFlagsKHR *flags)
{
struct wine_vk_surface *wine_vk_surface = wine_vk_surface_from_handle(surface);
TRACE("%p, 0x%s, %p\n", device, wine_dbgstr_longlong(surface), flags);
if (!wine_vk_surface_is_valid(wine_vk_surface))
return VK_ERROR_SURFACE_LOST_KHR;
return pvkGetDeviceGroupSurfacePresentModesKHR(device, wine_vk_surface->native, flags);
}
static void *wayland_vkGetDeviceProcAddr(VkDevice device, const char *name)
{
void *proc_addr;
......@@ -776,6 +791,7 @@ static void wine_vk_init(void)
LOAD_FUNCPTR(vkDestroySurfaceKHR);
LOAD_FUNCPTR(vkDestroySwapchainKHR);
LOAD_FUNCPTR(vkEnumerateInstanceExtensionProperties);
LOAD_OPTIONAL_FUNCPTR(vkGetDeviceGroupSurfacePresentModesKHR);
LOAD_FUNCPTR(vkGetDeviceProcAddr);
LOAD_FUNCPTR(vkGetInstanceProcAddr);
LOAD_OPTIONAL_FUNCPTR(vkGetPhysicalDeviceSurfaceCapabilities2KHR);
......@@ -806,6 +822,7 @@ static const struct vulkan_funcs vulkan_funcs =
.p_vkDestroySurfaceKHR = wayland_vkDestroySurfaceKHR,
.p_vkDestroySwapchainKHR = wayland_vkDestroySwapchainKHR,
.p_vkEnumerateInstanceExtensionProperties = wayland_vkEnumerateInstanceExtensionProperties,
.p_vkGetDeviceGroupSurfacePresentModesKHR = wayland_vkGetDeviceGroupSurfacePresentModesKHR,
.p_vkGetDeviceProcAddr = wayland_vkGetDeviceProcAddr,
.p_vkGetInstanceProcAddr = wayland_vkGetInstanceProcAddr,
.p_vkGetPhysicalDeviceSurfaceCapabilities2KHR = wayland_vkGetPhysicalDeviceSurfaceCapabilities2KHR,
......
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