15db71995Sopenharmony_ci/* 25db71995Sopenharmony_ci * Copyright (c) 2015-2021 The Khronos Group Inc. 35db71995Sopenharmony_ci * Copyright (c) 2015-2021 Valve Corporation 45db71995Sopenharmony_ci * Copyright (c) 2015-2021 LunarG, Inc. 55db71995Sopenharmony_ci * 65db71995Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 75db71995Sopenharmony_ci * you may not use this file except in compliance with the License. 85db71995Sopenharmony_ci * You may obtain a copy of the License at 95db71995Sopenharmony_ci * 105db71995Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 115db71995Sopenharmony_ci * 125db71995Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 135db71995Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 145db71995Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 155db71995Sopenharmony_ci * See the License for the specific language governing permissions and 165db71995Sopenharmony_ci * limitations under the License. 175db71995Sopenharmony_ci * 185db71995Sopenharmony_ci * Author: Ian Elliott <ian@lunarg.com> 195db71995Sopenharmony_ci * Author: Charles Giessen <charles@lunarg.com> 205db71995Sopenharmony_ci * 215db71995Sopenharmony_ci */ 225db71995Sopenharmony_ci 235db71995Sopenharmony_ci#pragma once 245db71995Sopenharmony_ci 255db71995Sopenharmony_ci#include "loader_common.h" 265db71995Sopenharmony_ci 275db71995Sopenharmony_citypedef struct { 285db71995Sopenharmony_ci union { 295db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WAYLAND_KHR) 305db71995Sopenharmony_ci VkIcdSurfaceWayland wayland_surf; 315db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_WAYLAND_KHR 325db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WIN32_KHR) 335db71995Sopenharmony_ci VkIcdSurfaceWin32 win_surf; 345db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_WIN32_KHR 355db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XCB_KHR) 365db71995Sopenharmony_ci VkIcdSurfaceXcb xcb_surf; 375db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_XCB_KHR 385db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XLIB_KHR) 395db71995Sopenharmony_ci VkIcdSurfaceXlib xlib_surf; 405db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_XLIB_KHR 415db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) 425db71995Sopenharmony_ci VkIcdSurfaceDirectFB directfb_surf; 435db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_DIRECTFB_EXT 445db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_MACOS_MVK) 455db71995Sopenharmony_ci VkIcdSurfaceMacOS macos_surf; 465db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_MACOS_MVK 475db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_GGP) 485db71995Sopenharmony_ci VkIcdSurfaceGgp ggp_surf; 495db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_GGP 505db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_FUCHSIA) 515db71995Sopenharmony_ci VkIcdSurfaceImagePipe imagepipe_surf; 525db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_FUCHSIA 535db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_METAL_EXT) 545db71995Sopenharmony_ci VkIcdSurfaceMetal metal_surf; 555db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_METAL_EXT 565db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_SCREEN_QNX) 575db71995Sopenharmony_ci VkIcdSurfaceScreen screen_surf; 585db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_SCREEN_QNX 595db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_VI_NN) 605db71995Sopenharmony_ci VkIcdSurfaceVi vi_surf; 615db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_VI_NN 625db71995Sopenharmony_ci VkIcdSurfaceDisplay display_surf; 635db71995Sopenharmony_ci VkIcdSurfaceHeadless headless_surf; 645db71995Sopenharmony_ci }; 655db71995Sopenharmony_ci uint32_t base_size; // Size of VkIcdSurfaceBase 665db71995Sopenharmony_ci uint32_t platform_size; // Size of corresponding VkIcdSurfaceXXX 675db71995Sopenharmony_ci uint32_t non_platform_offset; // Start offset to base_size 685db71995Sopenharmony_ci uint32_t entire_size; // Size of entire VkIcdSurface 695db71995Sopenharmony_ci VkSurfaceKHR *real_icd_surfaces; 705db71995Sopenharmony_ci} VkIcdSurface; 715db71995Sopenharmony_ci 725db71995Sopenharmony_cibool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr); 735db71995Sopenharmony_ci 745db71995Sopenharmony_civoid wsi_create_instance(struct loader_instance *ptr_instance, const VkInstanceCreateInfo *pCreateInfo); 755db71995Sopenharmony_cibool wsi_unsupported_instance_extension(const VkExtensionProperties *ext_prop); 765db71995Sopenharmony_ci 775db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateHeadlessSurfaceEXT(VkInstance instance, 785db71995Sopenharmony_ci const VkHeadlessSurfaceCreateInfoEXT *pCreateInfo, 795db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 805db71995Sopenharmony_ci 815db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR *pCreateInfo, 825db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchain); 835db71995Sopenharmony_ci 845db71995Sopenharmony_ciVKAPI_ATTR void VKAPI_CALL terminator_DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, 855db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator); 865db71995Sopenharmony_ci 875db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, 885db71995Sopenharmony_ci uint32_t queueFamilyIndex, VkSurfaceKHR surface, 895db71995Sopenharmony_ci VkBool32 *pSupported); 905db71995Sopenharmony_ci 915db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, 925db71995Sopenharmony_ci VkSurfaceKHR surface, 935db71995Sopenharmony_ci VkSurfaceCapabilitiesKHR *pSurfaceCapabilities); 945db71995Sopenharmony_ci 955db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, 965db71995Sopenharmony_ci uint32_t *pSurfaceFormatCount, 975db71995Sopenharmony_ci VkSurfaceFormatKHR *pSurfaceFormats); 985db71995Sopenharmony_ci 995db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, 1005db71995Sopenharmony_ci VkSurfaceKHR surface, uint32_t *pPresentModeCount, 1015db71995Sopenharmony_ci VkPresentModeKHR *pPresentModes); 1025db71995Sopenharmony_ci 1035db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDeviceGroupSurfacePresentModesKHR(VkDevice device, VkSurfaceKHR surface, 1045db71995Sopenharmony_ci VkDeviceGroupPresentModeFlagsKHR *pModes); 1055db71995Sopenharmony_ci 1065db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WIN32_KHR) 1075db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, 1085db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1095db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice, 1105db71995Sopenharmony_ci uint32_t queueFamilyIndex); 1115db71995Sopenharmony_ci#endif 1125db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WAYLAND_KHR) 1135db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWaylandSurfaceKHR(VkInstance instance, 1145db71995Sopenharmony_ci const VkWaylandSurfaceCreateInfoKHR *pCreateInfo, 1155db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1165db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice, 1175db71995Sopenharmony_ci uint32_t queueFamilyIndex, 1185db71995Sopenharmony_ci struct wl_display *display); 1195db71995Sopenharmony_ci#endif 1205db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XCB_KHR) 1215db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateXcbSurfaceKHR(VkInstance instance, const VkXcbSurfaceCreateInfoKHR *pCreateInfo, 1225db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1235db71995Sopenharmony_ci 1245db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice, 1255db71995Sopenharmony_ci uint32_t queueFamilyIndex, 1265db71995Sopenharmony_ci xcb_connection_t *connection, 1275db71995Sopenharmony_ci xcb_visualid_t visual_id); 1285db71995Sopenharmony_ci#endif 1295db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XLIB_KHR) 1305db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateXlibSurfaceKHR(VkInstance instance, const VkXlibSurfaceCreateInfoKHR *pCreateInfo, 1315db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1325db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice, 1335db71995Sopenharmony_ci uint32_t queueFamilyIndex, Display *dpy, 1345db71995Sopenharmony_ci VisualID visualID); 1355db71995Sopenharmony_ci#endif 1365db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) 1375db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDirectFBSurfaceEXT(VkInstance instance, 1385db71995Sopenharmony_ci const VkDirectFBSurfaceCreateInfoEXT *pCreateInfo, 1395db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1405db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceDirectFBPresentationSupportEXT(VkPhysicalDevice physicalDevice, 1415db71995Sopenharmony_ci uint32_t queueFamilyIndex, 1425db71995Sopenharmony_ci IDirectFB *dfb); 1435db71995Sopenharmony_ci#endif 1445db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_MACOS_MVK) 1455db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateMacOSSurfaceMVK(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK *pCreateInfo, 1465db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1475db71995Sopenharmony_ci#endif 1485db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_IOS_MVK) 1495db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateIOSSurfaceMVK(VkInstance instance, const VkIOSSurfaceCreateInfoMVK *pCreateInfo, 1505db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1515db71995Sopenharmony_ci#endif 1525db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_GGP) 1535db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL 1545db71995Sopenharmony_citerminator_CreateStreamDescriptorSurfaceGGP(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP *pCreateInfo, 1555db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1565db71995Sopenharmony_ci#endif 1575db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_METAL_EXT) 1585db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateMetalSurfaceEXT(VkInstance instance, const VkMetalSurfaceCreateInfoEXT *pCreateInfo, 1595db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1605db71995Sopenharmony_ci#endif 1615db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_SCREEN_QNX) 1625db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateScreenSurfaceQNX(VkInstance instance, 1635db71995Sopenharmony_ci const VkScreenSurfaceCreateInfoQNX *pCreateInfo, 1645db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1655db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceScreenPresentationSupportQNX(VkPhysicalDevice physicalDevice, 1665db71995Sopenharmony_ci uint32_t queueFamilyIndex, 1675db71995Sopenharmony_ci struct _screen_window *window); 1685db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_SCREEN_QNX 1695db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_VI_NN) 1705db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateViSurfaceNN(VkInstance instance, const VkViSurfaceCreateInfoNN *pCreateInfo, 1715db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 1725db71995Sopenharmony_ci#endif // VK_USE_PLATFORM_VI_NN 1735db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice, 1745db71995Sopenharmony_ci uint32_t *pPropertyCount, 1755db71995Sopenharmony_ci VkDisplayPropertiesKHR *pProperties); 1765db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice, 1775db71995Sopenharmony_ci uint32_t *pPropertyCount, 1785db71995Sopenharmony_ci VkDisplayPlanePropertiesKHR *pProperties); 1795db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice, uint32_t planeIndex, 1805db71995Sopenharmony_ci uint32_t *pDisplayCount, VkDisplayKHR *pDisplays); 1815db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display, 1825db71995Sopenharmony_ci uint32_t *pPropertyCount, 1835db71995Sopenharmony_ci VkDisplayModePropertiesKHR *pProperties); 1845db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayModeKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display, 1855db71995Sopenharmony_ci const VkDisplayModeCreateInfoKHR *pCreateInfo, 1865db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkDisplayModeKHR *pMode); 1875db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, 1885db71995Sopenharmony_ci uint32_t planeIndex, 1895db71995Sopenharmony_ci VkDisplayPlaneCapabilitiesKHR *pCapabilities); 1905db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayPlaneSurfaceKHR(VkInstance instance, 1915db71995Sopenharmony_ci const VkDisplaySurfaceCreateInfoKHR *pCreateInfo, 1925db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, 1935db71995Sopenharmony_ci VkSurfaceKHR *pSurface); 1945db71995Sopenharmony_ci 1955db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSharedSwapchainsKHR(VkDevice device, uint32_t swapchainCount, 1965db71995Sopenharmony_ci const VkSwapchainCreateInfoKHR *pCreateInfos, 1975db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, 1985db71995Sopenharmony_ci VkSwapchainKHR *pSwapchains); 1995db71995Sopenharmony_ci 2005db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice, 2015db71995Sopenharmony_ci VkSurfaceKHR surface, uint32_t *pRectCount, 2025db71995Sopenharmony_ci VkRect2D *pRects); 2035db71995Sopenharmony_ci 2045db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice, 2055db71995Sopenharmony_ci uint32_t *pPropertyCount, 2065db71995Sopenharmony_ci VkDisplayProperties2KHR *pProperties); 2075db71995Sopenharmony_ci 2085db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice, 2095db71995Sopenharmony_ci uint32_t *pPropertyCount, 2105db71995Sopenharmony_ci VkDisplayPlaneProperties2KHR *pProperties); 2115db71995Sopenharmony_ci 2125db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display, 2135db71995Sopenharmony_ci uint32_t *pPropertyCount, 2145db71995Sopenharmony_ci VkDisplayModeProperties2KHR *pProperties); 2155db71995Sopenharmony_ci 2165db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice, 2175db71995Sopenharmony_ci const VkDisplayPlaneInfo2KHR *pDisplayPlaneInfo, 2185db71995Sopenharmony_ci VkDisplayPlaneCapabilities2KHR *pCapabilities); 2195db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_FUCHSIA) 2205db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateImagePipeSurfaceFUCHSIA(VkInstance instance, 2215db71995Sopenharmony_ci const VkImagePipeSurfaceCreateInfoFUCHSIA *pCreateInfo, 2225db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, 2235db71995Sopenharmony_ci VkSurfaceKHR *pSurface); 2245db71995Sopenharmony_ci#endif 2255db71995Sopenharmony_ci 2265db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_ANDROID_KHR) 2275db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateAndroidSurfaceKHR(VkInstance instance, 2285db71995Sopenharmony_ci const VkAndroidSurfaceCreateInfoKHR *pCreateInfo, 2295db71995Sopenharmony_ci const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 2305db71995Sopenharmony_ci#endif 2315db71995Sopenharmony_ci 2325db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_OHOS) 2335db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSurfaceOHOS(VkInstance instance, 2345db71995Sopenharmony_ci const VkSurfaceCreateInfoOHOS* pCreateInfo, 2355db71995Sopenharmony_ci const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 2365db71995Sopenharmony_ci#endif 2375db71995Sopenharmony_ci 2385db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2KHR( 2395db71995Sopenharmony_ci VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, 2405db71995Sopenharmony_ci VkSurfaceCapabilities2KHR *pSurfaceCapabilities); 2415db71995Sopenharmony_ci 2425db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice, 2435db71995Sopenharmony_ci const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, 2445db71995Sopenharmony_ci uint32_t *pSurfaceFormatCount, 2455db71995Sopenharmony_ci VkSurfaceFormat2KHR *pSurfaceFormats); 246