winewayland.drv: Implement vkGetPhysicalDeviceSurfacePresentModesKHR.
This is a simple passthrough implementation to the native Vulkan driver, with the addition of a VkSurfaceKHR invalidation check.
This commit is contained in:
parent
ec9a111f3e
commit
c35be65dda
1 changed files with 19 additions and 0 deletions
|
@ -64,6 +64,7 @@ static VkResult (*pvkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice,
|
|||
static VkResult (*pvkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice, VkSurfaceKHR, VkSurfaceCapabilitiesKHR *);
|
||||
static VkResult (*pvkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *, uint32_t *, VkSurfaceFormat2KHR *);
|
||||
static VkResult (*pvkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkSurfaceFormatKHR *);
|
||||
static VkResult (*pvkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkPresentModeKHR *);
|
||||
static VkResult (*pvkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice, uint32_t, VkSurfaceKHR, VkBool32 *);
|
||||
|
||||
static void *vulkan_handle;
|
||||
|
@ -579,6 +580,22 @@ static VkResult wayland_vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice ph
|
|||
count, formats);
|
||||
}
|
||||
|
||||
static VkResult wayland_vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice phys_dev,
|
||||
VkSurfaceKHR surface,
|
||||
uint32_t *count,
|
||||
VkPresentModeKHR *modes)
|
||||
{
|
||||
struct wine_vk_surface *wine_vk_surface = wine_vk_surface_from_handle(surface);
|
||||
|
||||
TRACE("%p, 0x%s, %p, %p\n", phys_dev, wine_dbgstr_longlong(surface), count, modes);
|
||||
|
||||
if (!wine_vk_surface_is_valid(wine_vk_surface))
|
||||
return VK_ERROR_SURFACE_LOST_KHR;
|
||||
|
||||
return pvkGetPhysicalDeviceSurfacePresentModesKHR(phys_dev, wine_vk_surface->native,
|
||||
count, modes);
|
||||
}
|
||||
|
||||
static VkResult wayland_vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice phys_dev,
|
||||
uint32_t index,
|
||||
VkSurfaceKHR surface,
|
||||
|
@ -623,6 +640,7 @@ static void wine_vk_init(void)
|
|||
LOAD_FUNCPTR(vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
|
||||
LOAD_OPTIONAL_FUNCPTR(vkGetPhysicalDeviceSurfaceFormats2KHR);
|
||||
LOAD_FUNCPTR(vkGetPhysicalDeviceSurfaceFormatsKHR);
|
||||
LOAD_FUNCPTR(vkGetPhysicalDeviceSurfacePresentModesKHR);
|
||||
LOAD_FUNCPTR(vkGetPhysicalDeviceSurfaceSupportKHR);
|
||||
#undef LOAD_FUNCPTR
|
||||
#undef LOAD_OPTIONAL_FUNCPTR
|
||||
|
@ -649,6 +667,7 @@ static const struct vulkan_funcs vulkan_funcs =
|
|||
.p_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = wayland_vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
|
||||
.p_vkGetPhysicalDeviceSurfaceFormats2KHR = wayland_vkGetPhysicalDeviceSurfaceFormats2KHR,
|
||||
.p_vkGetPhysicalDeviceSurfaceFormatsKHR = wayland_vkGetPhysicalDeviceSurfaceFormatsKHR,
|
||||
.p_vkGetPhysicalDeviceSurfacePresentModesKHR = wayland_vkGetPhysicalDeviceSurfacePresentModesKHR,
|
||||
.p_vkGetPhysicalDeviceSurfaceSupportKHR = wayland_vkGetPhysicalDeviceSurfaceSupportKHR,
|
||||
.p_wine_get_native_surface = wayland_wine_get_native_surface,
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue