X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fintel%2Fvulkan%2Fanv_wsi.c;h=006944a7e25063d10d1a4c3dbb1f3ddc4450957a;hb=36286ccb9674c10255a61e096ac523e58c39c8cf;hp=c2938f3836fd79da765cc7f5f5d0eb8ad1cf122d;hpb=95106f6bfbbb87b702e4bbba98e2eaea71924cd9;p=mesa.git diff --git a/src/intel/vulkan/anv_wsi.c b/src/intel/vulkan/anv_wsi.c index c2938f3836f..006944a7e25 100644 --- a/src/intel/vulkan/anv_wsi.c +++ b/src/intel/vulkan/anv_wsi.c @@ -24,18 +24,24 @@ #include "anv_wsi.h" VkResult -anv_init_wsi(struct anv_instance *instance) +anv_init_wsi(struct anv_physical_device *physical_device) { VkResult result; - result = anv_x11_init_wsi(instance); + memset(physical_device->wsi, 0, sizeof(physical_device->wsi)); + +#ifdef VK_USE_PLATFORM_XCB_KHR + result = anv_x11_init_wsi(physical_device); if (result != VK_SUCCESS) return result; +#endif -#ifdef HAVE_WAYLAND_PLATFORM - result = anv_wl_init_wsi(instance); +#ifdef VK_USE_PLATFORM_WAYLAND_KHR + result = anv_wl_init_wsi(physical_device); if (result != VK_SUCCESS) { - anv_x11_finish_wsi(instance); +#ifdef VK_USE_PLATFORM_XCB_KHR + anv_x11_finish_wsi(physical_device); +#endif return result; } #endif @@ -44,12 +50,14 @@ anv_init_wsi(struct anv_instance *instance) } void -anv_finish_wsi(struct anv_instance *instance) +anv_finish_wsi(struct anv_physical_device *physical_device) { -#ifdef HAVE_WAYLAND_PLATFORM - anv_wl_finish_wsi(instance); +#ifdef VK_USE_PLATFORM_WAYLAND_KHR + anv_wl_finish_wsi(physical_device); +#endif +#ifdef VK_USE_PLATFORM_XCB_KHR + anv_x11_finish_wsi(physical_device); #endif - anv_x11_finish_wsi(instance); } void anv_DestroySurfaceKHR( @@ -71,7 +79,7 @@ VkResult anv_GetPhysicalDeviceSurfaceSupportKHR( { ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice); ANV_FROM_HANDLE(_VkIcdSurfaceBase, surface, _surface); - struct anv_wsi_interface *iface = device->instance->wsi[surface->platform]; + struct anv_wsi_interface *iface = device->wsi[surface->platform]; return iface->get_support(surface, device, queueFamilyIndex, pSupported); } @@ -83,7 +91,7 @@ VkResult anv_GetPhysicalDeviceSurfaceCapabilitiesKHR( { ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice); ANV_FROM_HANDLE(_VkIcdSurfaceBase, surface, _surface); - struct anv_wsi_interface *iface = device->instance->wsi[surface->platform]; + struct anv_wsi_interface *iface = device->wsi[surface->platform]; return iface->get_capabilities(surface, device, pSurfaceCapabilities); } @@ -96,7 +104,7 @@ VkResult anv_GetPhysicalDeviceSurfaceFormatsKHR( { ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice); ANV_FROM_HANDLE(_VkIcdSurfaceBase, surface, _surface); - struct anv_wsi_interface *iface = device->instance->wsi[surface->platform]; + struct anv_wsi_interface *iface = device->wsi[surface->platform]; return iface->get_formats(surface, device, pSurfaceFormatCount, pSurfaceFormats); @@ -110,7 +118,7 @@ VkResult anv_GetPhysicalDeviceSurfacePresentModesKHR( { ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice); ANV_FROM_HANDLE(_VkIcdSurfaceBase, surface, _surface); - struct anv_wsi_interface *iface = device->instance->wsi[surface->platform]; + struct anv_wsi_interface *iface = device->wsi[surface->platform]; return iface->get_present_modes(surface, device, pPresentModeCount, pPresentModes); @@ -124,7 +132,8 @@ VkResult anv_CreateSwapchainKHR( { ANV_FROM_HANDLE(anv_device, device, _device); ANV_FROM_HANDLE(_VkIcdSurfaceBase, surface, pCreateInfo->surface); - struct anv_wsi_interface *iface = device->instance->wsi[surface->platform]; + struct anv_wsi_interface *iface = + device->instance->physicalDevice.wsi[surface->platform]; struct anv_swapchain *swapchain; VkResult result = iface->create_swapchain(surface, device, pCreateInfo,