The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

a/vk: Update vulkan files: generate from script

+586 -214
+327
scripts/generate_vk_helpers.py
··· 1 + #!/usr/bin/env python3 2 + # Copyright 2019-2021, Collabora, Ltd. 3 + # SPDX-License-Identifier: BSL-1.0 4 + """Simple script to update vk_helpers.{c,h}.""" 5 + 6 + from pathlib import Path 7 + from typing import List, Tuple 8 + 9 + # Each tuple is a function name, followed optionally by one or more conditions to test in the preprocessor, which will be wrapped in "defined()" 10 + # if they aren't already. Empty tuples insert a blank line. 11 + 12 + DEVICE_FUNCTIONS = [ 13 + ("vkDestroyDevice",), 14 + ("vkDeviceWaitIdle",), 15 + ("vkAllocateMemory",), 16 + ("vkFreeMemory",), 17 + ("vkMapMemory",), 18 + ("vkUnmapMemory",), 19 + (), 20 + ("vkCreateBuffer",), 21 + ("vkDestroyBuffer",), 22 + ("vkBindBufferMemory",), 23 + (), 24 + ("vkCreateImage",), 25 + ("vkDestroyImage",), 26 + ("vkBindImageMemory",), 27 + (), 28 + ("vkGetBufferMemoryRequirements",), 29 + ("vkFlushMappedMemoryRanges",), 30 + ("vkGetImageMemoryRequirements",), 31 + ("vkGetImageMemoryRequirements2KHR",), 32 + ("vkGetImageSubresourceLayout",), 33 + (), 34 + ("vkCreateImageView",), 35 + ("vkDestroyImageView",), 36 + (), 37 + ("vkCreateSampler",), 38 + ("vkDestroySampler",), 39 + (), 40 + ("vkCreateShaderModule",), 41 + ("vkDestroyShaderModule",), 42 + (), 43 + ("vkCreateCommandPool",), 44 + ("vkDestroyCommandPool",), 45 + (), 46 + ("vkAllocateCommandBuffers",), 47 + ("vkBeginCommandBuffer",), 48 + ("vkCmdPipelineBarrier",), 49 + ("vkCmdBeginRenderPass",), 50 + ("vkCmdSetScissor",), 51 + ("vkCmdSetViewport",), 52 + ("vkCmdClearColorImage",), 53 + ("vkCmdEndRenderPass",), 54 + ("vkCmdBindDescriptorSets",), 55 + ("vkCmdBindPipeline",), 56 + ("vkCmdBindVertexBuffers",), 57 + ("vkCmdBindIndexBuffer",), 58 + ("vkCmdDraw",), 59 + ("vkCmdDrawIndexed",), 60 + ("vkCmdDispatch",), 61 + ("vkCmdCopyBuffer",), 62 + ("vkCmdCopyBufferToImage",), 63 + ("vkCmdCopyImage",), 64 + ("vkCmdCopyImageToBuffer",), 65 + ("vkEndCommandBuffer",), 66 + ("vkFreeCommandBuffers",), 67 + (), 68 + ("vkCreateRenderPass",), 69 + ("vkDestroyRenderPass",), 70 + (), 71 + ("vkCreateFramebuffer",), 72 + ("vkDestroyFramebuffer",), 73 + (), 74 + ("vkCreatePipelineCache",), 75 + ("vkDestroyPipelineCache",), 76 + (), 77 + ("vkResetDescriptorPool",), 78 + ("vkCreateDescriptorPool",), 79 + ("vkDestroyDescriptorPool",), 80 + (), 81 + ("vkAllocateDescriptorSets",), 82 + ("vkFreeDescriptorSets",), 83 + (), 84 + ("vkCreateComputePipelines",), 85 + ("vkCreateGraphicsPipelines",), 86 + ("vkDestroyPipeline",), 87 + (), 88 + ("vkCreatePipelineLayout",), 89 + ("vkDestroyPipelineLayout",), 90 + (), 91 + ("vkCreateDescriptorSetLayout",), 92 + ("vkUpdateDescriptorSets",), 93 + ("vkDestroyDescriptorSetLayout",), 94 + (), 95 + ("vkGetDeviceQueue",), 96 + ("vkQueueSubmit",), 97 + ("vkQueueWaitIdle",), 98 + (), 99 + ("vkCreateSemaphore",), 100 + ("vkSignalSemaphoreKHR", "VK_KHR_timeline_semaphore"), 101 + ("vkDestroySemaphore",), 102 + (), 103 + ("vkCreateFence",), 104 + ("vkWaitForFences",), 105 + ("vkGetFenceStatus",), 106 + ("vkDestroyFence",), 107 + ("vkResetFences",), 108 + (), 109 + ("vkCreateSwapchainKHR",), 110 + ("vkDestroySwapchainKHR",), 111 + ("vkGetSwapchainImagesKHR",), 112 + ("vkAcquireNextImageKHR",), 113 + ("vkQueuePresentKHR",), 114 + (), 115 + ("vkGetMemoryWin32HandleKHR", "VK_USE_PLATFORM_WIN32_KHR"), 116 + ("vkImportSemaphoreWin32HandleKHR", "VK_USE_PLATFORM_WIN32_KHR"), 117 + ("vkImportFenceWin32HandleKHR", "VK_USE_PLATFORM_WIN32_KHR"), 118 + ("vkGetMemoryFdKHR", "!defined(VK_USE_PLATFORM_WIN32_KHR)"), 119 + (), 120 + ("vkImportSemaphoreFdKHR", "!defined(VK_USE_PLATFORM_WIN32_KHR)"), 121 + ("vkGetSemaphoreFdKHR", "!defined(VK_USE_PLATFORM_WIN32_KHR)"), 122 + (), 123 + ("vkImportFenceFdKHR", "!defined(VK_USE_PLATFORM_WIN32_KHR)"), 124 + ("vkGetFenceFdKHR", "!defined(VK_USE_PLATFORM_WIN32_KHR)"), 125 + ("vkGetMemoryAndroidHardwareBufferANDROID", "VK_USE_PLATFORM_ANDROID_KHR"), 126 + ( 127 + "vkGetAndroidHardwareBufferPropertiesANDROID", 128 + "VK_USE_PLATFORM_ANDROID_KHR", 129 + ), 130 + (), 131 + ("vkGetPastPresentationTimingGOOGLE",), 132 + ] 133 + INSTANCE_FUNCTIONS = [ 134 + ("vkDestroyInstance",), 135 + ("vkGetDeviceProcAddr",), 136 + ("vkCreateDevice",), 137 + ("vkDestroySurfaceKHR",), 138 + (), 139 + ("vkCreateDebugReportCallbackEXT",), 140 + ("vkDestroyDebugReportCallbackEXT",), 141 + (), 142 + ("vkEnumeratePhysicalDevices",), 143 + ("vkGetPhysicalDeviceProperties",), 144 + ("vkGetPhysicalDeviceProperties2",), 145 + ("vkGetPhysicalDeviceFeatures2",), 146 + ("vkGetPhysicalDeviceMemoryProperties",), 147 + ("vkGetPhysicalDeviceQueueFamilyProperties",), 148 + ("vkGetPhysicalDeviceSurfaceCapabilitiesKHR",), 149 + ("vkGetPhysicalDeviceSurfaceFormatsKHR",), 150 + ("vkGetPhysicalDeviceSurfacePresentModesKHR",), 151 + ("vkGetPhysicalDeviceSurfaceSupportKHR",), 152 + ("vkGetPhysicalDeviceFormatProperties",), 153 + ("vkEnumerateDeviceExtensionProperties",), 154 + ("vkGetPhysicalDeviceImageFormatProperties2",), 155 + (), 156 + ("vkCreateDisplayPlaneSurfaceKHR", "VK_USE_PLATFORM_DISPLAY_KHR"), 157 + ("vkGetDisplayPlaneCapabilitiesKHR", "VK_USE_PLATFORM_DISPLAY_KHR"), 158 + ("vkGetPhysicalDeviceDisplayPropertiesKHR", "VK_USE_PLATFORM_DISPLAY_KHR"), 159 + ("vkGetPhysicalDeviceDisplayPlanePropertiesKHR", "VK_USE_PLATFORM_DISPLAY_KHR"), 160 + ("vkGetDisplayModePropertiesKHR", "VK_USE_PLATFORM_DISPLAY_KHR"), 161 + ("vkReleaseDisplayEXT", "VK_USE_PLATFORM_DISPLAY_KHR"), 162 + (), 163 + ("vkCreateXcbSurfaceKHR", "VK_USE_PLATFORM_XCB_KHR"), 164 + (), 165 + ("vkCreateWaylandSurfaceKHR", "VK_USE_PLATFORM_WAYLAND_KHR"), 166 + (), 167 + ( 168 + "vkAcquireDrmDisplayEXT", 169 + "VK_USE_PLATFORM_WAYLAND_KHR", 170 + "VK_EXT_acquire_drm_display", 171 + ), 172 + ("vkGetDrmDisplayEXT", "VK_USE_PLATFORM_WAYLAND_KHR", "VK_EXT_acquire_drm_display"), 173 + (), 174 + ("vkGetRandROutputDisplayEXT", "VK_USE_PLATFORM_XLIB_XRANDR_EXT"), 175 + ("vkAcquireXlibDisplayEXT", "VK_USE_PLATFORM_XLIB_XRANDR_EXT"), 176 + (), 177 + ("vkCreateAndroidSurfaceKHR", "VK_USE_PLATFORM_ANDROID_KHR"), 178 + (), 179 + ("vkCreateWin32SurfaceKHR", "VK_USE_PLATFORM_WIN32_KHR"), 180 + ] 181 + 182 + EXTENSIONS_TO_CHECK = [ 183 + "GOOGLE_display_timing", 184 + "EXT_global_priority", 185 + "EXT_robustness2", 186 + ] 187 + 188 + ROOT = Path(__file__).resolve().parent.parent 189 + DIR = ROOT / "src" / "xrt" / "auxiliary" / "vk" 190 + HEADER_FN = DIR / "vk_helpers.h" 191 + IMPL_FN = DIR / "vk_helpers.c" 192 + 193 + BEGIN_TEMPLATE = "\t// beginning of GENERATED %s code - do not modify - used by scripts" 194 + END_TEMPLATE = "\t// end of GENERATED %s code - do not modify - used by scripts" 195 + 196 + 197 + def wrap_condition(condition): 198 + if "defined" in condition: 199 + return condition 200 + return "defined({})".format(condition) 201 + 202 + 203 + def compute_condition(pp_conditions): 204 + if not pp_conditions: 205 + return None 206 + return " && ".join(wrap_condition(x) for x in pp_conditions) 207 + 208 + 209 + def generate_per_function(functions: List[Tuple[str, ...]], per_function_handler): 210 + current_condition = None 211 + for data in functions: 212 + if not data: 213 + # empty line 214 + yield "" 215 + continue 216 + new_condition = compute_condition(data[1:]) 217 + if current_condition and new_condition != current_condition: 218 + # Close current condition if required. 219 + yield "#endif // {}".format(current_condition) 220 + # empty line 221 + yield "" 222 + current_condition = None 223 + 224 + if new_condition != current_condition: 225 + # Open new condition if required 226 + yield "#if {}".format(new_condition) 227 + current_condition = new_condition 228 + 229 + yield per_function_handler(data[0]) 230 + 231 + # close any trailing conditions 232 + if current_condition: 233 + yield "#endif // {}".format(current_condition) 234 + 235 + 236 + def generate_structure_members(functions: List[Tuple[str, ...]]): 237 + def per_function(name): 238 + return "\tPFN_{} {};".format(name, name) 239 + 240 + return generate_per_function(functions, per_function) 241 + 242 + 243 + def generate_ins_proc(functions: List[Tuple[str, ...]]): 244 + def per_function(func: str) -> str: 245 + return "\tvk->{} = GET_INS_PROC(vk, {});".format(func, func) 246 + 247 + return generate_per_function(functions, per_function) 248 + 249 + 250 + def generate_dev_proc(functions: List[Tuple[str, ...]]): 251 + def per_function(func: str) -> str: 252 + return "\tvk->{} = GET_DEV_PROC(vk, {});".format(func, func) 253 + 254 + return generate_per_function(functions, per_function) 255 + 256 + 257 + def replace_middle( 258 + lines: List[str], start_sentinel: str, end_sentinel: str, new_middle: List[str] 259 + ) -> List[str]: 260 + middle_start = lines.index(start_sentinel) + 1 261 + middle_end = lines.index(end_sentinel) 262 + return lines[:middle_start] + new_middle + lines[middle_end:] 263 + 264 + 265 + DEVICE_TEMPLATES = { 266 + "BEGIN": BEGIN_TEMPLATE % "device loader", 267 + "END": END_TEMPLATE % "device loader", 268 + } 269 + INSTANCE_TEMPLATES = { 270 + "BEGIN": BEGIN_TEMPLATE % "instance loader", 271 + "END": END_TEMPLATE % "instance loader", 272 + } 273 + EXT_TEMPLATES = { 274 + "BEGIN": BEGIN_TEMPLATE % "extension", 275 + "END": END_TEMPLATE % "extension", 276 + } 277 + 278 + 279 + def process_header(): 280 + with open(str(HEADER_FN), "r", encoding="utf-8") as fp: 281 + lines = [line.rstrip() for line in fp.readlines()] 282 + 283 + lines = replace_middle( 284 + lines, 285 + INSTANCE_TEMPLATES["BEGIN"], 286 + INSTANCE_TEMPLATES["END"], 287 + list(generate_structure_members(INSTANCE_FUNCTIONS)), 288 + ) 289 + 290 + lines = replace_middle( 291 + lines, 292 + DEVICE_TEMPLATES["BEGIN"], 293 + DEVICE_TEMPLATES["END"], 294 + list(generate_structure_members(DEVICE_FUNCTIONS)), 295 + ) 296 + 297 + with open(str(HEADER_FN), "w", encoding="utf-8") as fp: 298 + fp.write("\n".join(lines)) 299 + fp.write("\n") 300 + 301 + 302 + def process_impl(): 303 + with open(str(IMPL_FN), "r", encoding="utf-8") as fp: 304 + lines = [line.rstrip() for line in fp.readlines()] 305 + 306 + lines = replace_middle( 307 + lines, 308 + INSTANCE_TEMPLATES["BEGIN"], 309 + INSTANCE_TEMPLATES["END"], 310 + list(generate_ins_proc(INSTANCE_FUNCTIONS)), 311 + ) 312 + 313 + lines = replace_middle( 314 + lines, 315 + DEVICE_TEMPLATES["BEGIN"], 316 + DEVICE_TEMPLATES["END"], 317 + list(generate_dev_proc(DEVICE_FUNCTIONS)), 318 + ) 319 + 320 + with open(str(IMPL_FN), "w", encoding="utf-8") as fp: 321 + fp.write("\n".join(lines)) 322 + fp.write("\n") 323 + 324 + 325 + if __name__ == "__main__": 326 + process_header() 327 + process_impl()
+178 -146
src/xrt/auxiliary/vk/vk_helpers.c
··· 819 819 VkResult 820 820 vk_get_instance_functions(struct vk_bundle *vk) 821 821 { 822 - // clang-format off 823 - vk->vkDestroyInstance = GET_INS_PROC(vk, vkDestroyInstance); 824 - vk->vkGetDeviceProcAddr = GET_INS_PROC(vk, vkGetDeviceProcAddr); 825 - vk->vkCreateDevice = GET_INS_PROC(vk, vkCreateDevice); 826 - vk->vkEnumeratePhysicalDevices = GET_INS_PROC(vk, vkEnumeratePhysicalDevices); 827 - vk->vkGetPhysicalDeviceProperties = GET_INS_PROC(vk, vkGetPhysicalDeviceProperties); 828 - vk->vkGetPhysicalDeviceProperties2 = GET_INS_PROC(vk, vkGetPhysicalDeviceProperties2); 829 - vk->vkGetPhysicalDeviceFeatures2 = GET_INS_PROC(vk, vkGetPhysicalDeviceFeatures2); 830 - vk->vkGetPhysicalDeviceMemoryProperties = GET_INS_PROC(vk, vkGetPhysicalDeviceMemoryProperties); 831 - vk->vkGetPhysicalDeviceQueueFamilyProperties = GET_INS_PROC(vk, vkGetPhysicalDeviceQueueFamilyProperties); 832 - vk->vkCreateDebugReportCallbackEXT = GET_INS_PROC(vk, vkCreateDebugReportCallbackEXT); 833 - vk->vkDestroyDebugReportCallbackEXT = GET_INS_PROC(vk, vkDestroyDebugReportCallbackEXT); 834 - vk->vkDestroySurfaceKHR = GET_INS_PROC(vk, vkDestroySurfaceKHR); 822 + 823 + // beginning of GENERATED instance loader code - do not modify - used by scripts 824 + vk->vkDestroyInstance = GET_INS_PROC(vk, vkDestroyInstance); 825 + vk->vkGetDeviceProcAddr = GET_INS_PROC(vk, vkGetDeviceProcAddr); 826 + vk->vkCreateDevice = GET_INS_PROC(vk, vkCreateDevice); 827 + vk->vkDestroySurfaceKHR = GET_INS_PROC(vk, vkDestroySurfaceKHR); 828 + 829 + vk->vkCreateDebugReportCallbackEXT = GET_INS_PROC(vk, vkCreateDebugReportCallbackEXT); 830 + vk->vkDestroyDebugReportCallbackEXT = GET_INS_PROC(vk, vkDestroyDebugReportCallbackEXT); 831 + 832 + vk->vkEnumeratePhysicalDevices = GET_INS_PROC(vk, vkEnumeratePhysicalDevices); 833 + vk->vkGetPhysicalDeviceProperties = GET_INS_PROC(vk, vkGetPhysicalDeviceProperties); 834 + vk->vkGetPhysicalDeviceProperties2 = GET_INS_PROC(vk, vkGetPhysicalDeviceProperties2); 835 + vk->vkGetPhysicalDeviceFeatures2 = GET_INS_PROC(vk, vkGetPhysicalDeviceFeatures2); 836 + vk->vkGetPhysicalDeviceMemoryProperties = GET_INS_PROC(vk, vkGetPhysicalDeviceMemoryProperties); 837 + vk->vkGetPhysicalDeviceQueueFamilyProperties = GET_INS_PROC(vk, vkGetPhysicalDeviceQueueFamilyProperties); 835 838 vk->vkGetPhysicalDeviceSurfaceCapabilitiesKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceSurfaceCapabilitiesKHR); 836 - vk->vkGetPhysicalDeviceSurfaceFormatsKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceSurfaceFormatsKHR); 839 + vk->vkGetPhysicalDeviceSurfaceFormatsKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceSurfaceFormatsKHR); 837 840 vk->vkGetPhysicalDeviceSurfacePresentModesKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceSurfacePresentModesKHR); 838 - vk->vkGetPhysicalDeviceSurfaceSupportKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceSurfaceSupportKHR); 839 - vk->vkGetPhysicalDeviceFormatProperties = GET_INS_PROC(vk, vkGetPhysicalDeviceFormatProperties); 840 - vk->vkEnumerateDeviceExtensionProperties = GET_INS_PROC(vk, vkEnumerateDeviceExtensionProperties); 841 + vk->vkGetPhysicalDeviceSurfaceSupportKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceSurfaceSupportKHR); 842 + vk->vkGetPhysicalDeviceFormatProperties = GET_INS_PROC(vk, vkGetPhysicalDeviceFormatProperties); 843 + vk->vkEnumerateDeviceExtensionProperties = GET_INS_PROC(vk, vkEnumerateDeviceExtensionProperties); 841 844 vk->vkGetPhysicalDeviceImageFormatProperties2 = GET_INS_PROC(vk, vkGetPhysicalDeviceImageFormatProperties2); 842 - #ifdef VK_USE_PLATFORM_DISPLAY_KHR 843 - vk->vkCreateDisplayPlaneSurfaceKHR = GET_INS_PROC(vk, vkCreateDisplayPlaneSurfaceKHR); 844 - vk->vkGetDisplayPlaneCapabilitiesKHR = GET_INS_PROC(vk, vkGetDisplayPlaneCapabilitiesKHR); 845 - vk->vkGetPhysicalDeviceDisplayPropertiesKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceDisplayPropertiesKHR); 846 - vk->vkGetPhysicalDeviceDisplayPlanePropertiesKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceDisplayPlanePropertiesKHR); 847 - vk->vkGetDisplayModePropertiesKHR = GET_INS_PROC(vk, vkGetDisplayModePropertiesKHR); 848 - vk->vkReleaseDisplayEXT = GET_INS_PROC(vk, vkReleaseDisplayEXT); 849 - #endif 845 + 846 + #if defined(VK_USE_PLATFORM_DISPLAY_KHR) 847 + vk->vkCreateDisplayPlaneSurfaceKHR = GET_INS_PROC(vk, vkCreateDisplayPlaneSurfaceKHR); 848 + vk->vkGetDisplayPlaneCapabilitiesKHR = GET_INS_PROC(vk, vkGetDisplayPlaneCapabilitiesKHR); 849 + vk->vkGetPhysicalDeviceDisplayPropertiesKHR = GET_INS_PROC(vk, vkGetPhysicalDeviceDisplayPropertiesKHR); 850 + vk->vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 851 + GET_INS_PROC(vk, vkGetPhysicalDeviceDisplayPlanePropertiesKHR); 852 + vk->vkGetDisplayModePropertiesKHR = GET_INS_PROC(vk, vkGetDisplayModePropertiesKHR); 853 + vk->vkReleaseDisplayEXT = GET_INS_PROC(vk, vkReleaseDisplayEXT); 850 854 851 - #ifdef VK_USE_PLATFORM_XCB_KHR 855 + #endif // defined(VK_USE_PLATFORM_DISPLAY_KHR) 856 + 857 + #if defined(VK_USE_PLATFORM_XCB_KHR) 852 858 vk->vkCreateXcbSurfaceKHR = GET_INS_PROC(vk, vkCreateXcbSurfaceKHR); 853 - #endif 854 859 855 - #ifdef VK_USE_PLATFORM_WAYLAND_KHR 860 + #endif // defined(VK_USE_PLATFORM_XCB_KHR) 861 + 862 + #if defined(VK_USE_PLATFORM_WAYLAND_KHR) 856 863 vk->vkCreateWaylandSurfaceKHR = GET_INS_PROC(vk, vkCreateWaylandSurfaceKHR); 857 864 858 - #ifdef VK_EXT_acquire_drm_display 859 - vk->vkAcquireDrmDisplayEXT = GET_INS_PROC(vk, vkAcquireDrmDisplayEXT); 860 - vk->vkGetDrmDisplayEXT = GET_INS_PROC(vk, vkGetDrmDisplayEXT); 861 - #endif 862 - #endif 865 + #endif // defined(VK_USE_PLATFORM_WAYLAND_KHR) 863 866 864 - #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT 865 - vk->vkGetRandROutputDisplayEXT = GET_INS_PROC(vk, vkGetRandROutputDisplayEXT); 866 - vk->vkAcquireXlibDisplayEXT = GET_INS_PROC(vk, vkAcquireXlibDisplayEXT); 867 - #endif 867 + #if defined(VK_USE_PLATFORM_WAYLAND_KHR) && defined(VK_EXT_acquire_drm_display) 868 + vk->vkAcquireDrmDisplayEXT = GET_INS_PROC(vk, vkAcquireDrmDisplayEXT); 869 + vk->vkGetDrmDisplayEXT = GET_INS_PROC(vk, vkGetDrmDisplayEXT); 868 870 869 - #ifdef VK_USE_PLATFORM_ANDROID_KHR 870 - vk->vkCreateAndroidSurfaceKHR = GET_INS_PROC(vk, vkCreateAndroidSurfaceKHR); 871 - #endif 871 + #endif // defined(VK_USE_PLATFORM_WAYLAND_KHR) && defined(VK_EXT_acquire_drm_display) 872 872 873 - #ifdef VK_USE_PLATFORM_WIN32_KHR 874 - vk->vkCreateWin32SurfaceKHR = GET_INS_PROC(vk, vkCreateWin32SurfaceKHR); 875 - #endif 876 - // clang-format on 873 + #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) 874 + vk->vkGetRandROutputDisplayEXT = GET_INS_PROC(vk, vkGetRandROutputDisplayEXT); 875 + vk->vkAcquireXlibDisplayEXT = GET_INS_PROC(vk, vkAcquireXlibDisplayEXT); 876 + 877 + #endif // defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) 878 + 879 + #if defined(VK_USE_PLATFORM_ANDROID_KHR) 880 + vk->vkCreateAndroidSurfaceKHR = GET_INS_PROC(vk, vkCreateAndroidSurfaceKHR); 881 + 882 + #endif // defined(VK_USE_PLATFORM_ANDROID_KHR) 883 + 884 + #if defined(VK_USE_PLATFORM_WIN32_KHR) 885 + vk->vkCreateWin32SurfaceKHR = GET_INS_PROC(vk, vkCreateWin32SurfaceKHR); 886 + #endif // defined(VK_USE_PLATFORM_WIN32_KHR) 887 + // end of GENERATED instance loader code - do not modify - used by scripts 877 888 878 889 return VK_SUCCESS; 879 890 } ··· 881 892 static VkResult 882 893 vk_get_device_functions(struct vk_bundle *vk) 883 894 { 884 - // clang-format off 885 - vk->vkDestroyDevice = GET_DEV_PROC(vk, vkDestroyDevice); 886 - vk->vkDeviceWaitIdle = GET_DEV_PROC(vk, vkDeviceWaitIdle); 887 - vk->vkAllocateMemory = GET_DEV_PROC(vk, vkAllocateMemory); 888 - vk->vkFreeMemory = GET_DEV_PROC(vk, vkFreeMemory); 889 - vk->vkMapMemory = GET_DEV_PROC(vk, vkMapMemory); 890 - vk->vkUnmapMemory = GET_DEV_PROC(vk, vkUnmapMemory); 891 - vk->vkGetMemoryFdKHR = GET_DEV_PROC(vk, vkGetMemoryFdKHR); 892 - #ifdef VK_USE_PLATFORM_ANDROID_KHR 893 - vk->vkGetMemoryAndroidHardwareBufferANDROID = GET_DEV_PROC(vk, vkGetMemoryAndroidHardwareBufferANDROID); 894 - vk->vkGetAndroidHardwareBufferPropertiesANDROID = GET_DEV_PROC(vk, vkGetAndroidHardwareBufferPropertiesANDROID); 895 - #endif 895 + 896 + // beginning of GENERATED device loader code - do not modify - used by scripts 897 + vk->vkDestroyDevice = GET_DEV_PROC(vk, vkDestroyDevice); 898 + vk->vkDeviceWaitIdle = GET_DEV_PROC(vk, vkDeviceWaitIdle); 899 + vk->vkAllocateMemory = GET_DEV_PROC(vk, vkAllocateMemory); 900 + vk->vkFreeMemory = GET_DEV_PROC(vk, vkFreeMemory); 901 + vk->vkMapMemory = GET_DEV_PROC(vk, vkMapMemory); 902 + vk->vkUnmapMemory = GET_DEV_PROC(vk, vkUnmapMemory); 903 + 904 + vk->vkCreateBuffer = GET_DEV_PROC(vk, vkCreateBuffer); 905 + vk->vkDestroyBuffer = GET_DEV_PROC(vk, vkDestroyBuffer); 906 + vk->vkBindBufferMemory = GET_DEV_PROC(vk, vkBindBufferMemory); 896 907 897 - #ifdef VK_USE_PLATFORM_WIN32_KHR 898 - vk->vkGetMemoryWin32HandleKHR = GET_DEV_PROC(vk, vkGetMemoryWin32HandleKHR); 899 - #endif 908 + vk->vkCreateImage = GET_DEV_PROC(vk, vkCreateImage); 909 + vk->vkDestroyImage = GET_DEV_PROC(vk, vkDestroyImage); 910 + vk->vkBindImageMemory = GET_DEV_PROC(vk, vkBindImageMemory); 900 911 901 - vk->vkCreateBuffer = GET_DEV_PROC(vk, vkCreateBuffer); 902 - vk->vkDestroyBuffer = GET_DEV_PROC(vk, vkDestroyBuffer); 903 - vk->vkBindBufferMemory = GET_DEV_PROC(vk, vkBindBufferMemory); 904 912 vk->vkGetBufferMemoryRequirements = GET_DEV_PROC(vk, vkGetBufferMemoryRequirements); 905 - vk->vkFlushMappedMemoryRanges = GET_DEV_PROC(vk, vkFlushMappedMemoryRanges); 906 - vk->vkCreateImage = GET_DEV_PROC(vk, vkCreateImage); 907 - vk->vkGetImageMemoryRequirements = GET_DEV_PROC(vk, vkGetImageMemoryRequirements); 908 - // because we use Vulkan API Version 1.0.x, we can only get the KHR version of this function 909 - vk->vkGetImageMemoryRequirements2 = GET_DEV_PROC(vk, vkGetImageMemoryRequirements2KHR); 910 - vk->vkGetImageSubresourceLayout = GET_DEV_PROC(vk, vkGetImageSubresourceLayout); 911 - vk->vkBindImageMemory = GET_DEV_PROC(vk, vkBindImageMemory); 912 - vk->vkDestroyImage = GET_DEV_PROC(vk, vkDestroyImage); 913 - vk->vkCreateImageView = GET_DEV_PROC(vk, vkCreateImageView); 914 - vk->vkDestroyImageView = GET_DEV_PROC(vk, vkDestroyImageView); 915 - vk->vkCreateSampler = GET_DEV_PROC(vk, vkCreateSampler); 916 - vk->vkDestroySampler = GET_DEV_PROC(vk, vkDestroySampler); 917 - vk->vkCreateShaderModule = GET_DEV_PROC(vk, vkCreateShaderModule); 918 - vk->vkDestroyShaderModule = GET_DEV_PROC(vk, vkDestroyShaderModule); 919 - vk->vkCreateCommandPool = GET_DEV_PROC(vk, vkCreateCommandPool); 920 - vk->vkDestroyCommandPool = GET_DEV_PROC(vk, vkDestroyCommandPool); 921 - vk->vkAllocateCommandBuffers = GET_DEV_PROC(vk, vkAllocateCommandBuffers); 922 - vk->vkBeginCommandBuffer = GET_DEV_PROC(vk, vkBeginCommandBuffer); 923 - vk->vkCmdPipelineBarrier = GET_DEV_PROC(vk, vkCmdPipelineBarrier); 924 - vk->vkCmdBeginRenderPass = GET_DEV_PROC(vk, vkCmdBeginRenderPass); 925 - vk->vkCmdSetScissor = GET_DEV_PROC(vk, vkCmdSetScissor); 926 - vk->vkCmdSetViewport = GET_DEV_PROC(vk, vkCmdSetViewport); 927 - vk->vkCmdClearColorImage = GET_DEV_PROC(vk, vkCmdClearColorImage); 928 - vk->vkCmdEndRenderPass = GET_DEV_PROC(vk, vkCmdEndRenderPass); 929 - vk->vkCmdBindDescriptorSets = GET_DEV_PROC(vk, vkCmdBindDescriptorSets); 930 - vk->vkCmdBindPipeline = GET_DEV_PROC(vk, vkCmdBindPipeline); 931 - vk->vkCmdBindVertexBuffers = GET_DEV_PROC(vk, vkCmdBindVertexBuffers); 932 - vk->vkCmdBindIndexBuffer = GET_DEV_PROC(vk, vkCmdBindIndexBuffer); 933 - vk->vkCmdDraw = GET_DEV_PROC(vk, vkCmdDraw); 934 - vk->vkCmdDrawIndexed = GET_DEV_PROC(vk, vkCmdDrawIndexed); 935 - vk->vkCmdDispatch = GET_DEV_PROC(vk, vkCmdDispatch); 936 - vk->vkCmdCopyBuffer = GET_DEV_PROC(vk, vkCmdCopyBuffer); 937 - vk->vkCmdCopyBufferToImage = GET_DEV_PROC(vk, vkCmdCopyBufferToImage); 938 - vk->vkCmdCopyImage = GET_DEV_PROC(vk, vkCmdCopyImage); 939 - vk->vkCmdCopyImageToBuffer = GET_DEV_PROC(vk, vkCmdCopyImageToBuffer); 940 - vk->vkEndCommandBuffer = GET_DEV_PROC(vk, vkEndCommandBuffer); 941 - vk->vkFreeCommandBuffers = GET_DEV_PROC(vk, vkFreeCommandBuffers); 942 - vk->vkCreateRenderPass = GET_DEV_PROC(vk, vkCreateRenderPass); 943 - vk->vkDestroyRenderPass = GET_DEV_PROC(vk, vkDestroyRenderPass); 944 - vk->vkCreateFramebuffer = GET_DEV_PROC(vk, vkCreateFramebuffer); 945 - vk->vkDestroyFramebuffer = GET_DEV_PROC(vk, vkDestroyFramebuffer); 946 - vk->vkCreatePipelineCache = GET_DEV_PROC(vk, vkCreatePipelineCache); 947 - vk->vkDestroyPipelineCache = GET_DEV_PROC(vk, vkDestroyPipelineCache); 948 - vk->vkResetDescriptorPool = GET_DEV_PROC(vk, vkResetDescriptorPool); 949 - vk->vkCreateDescriptorPool = GET_DEV_PROC(vk, vkCreateDescriptorPool); 950 - vk->vkDestroyDescriptorPool = GET_DEV_PROC(vk, vkDestroyDescriptorPool); 951 - vk->vkAllocateDescriptorSets = GET_DEV_PROC(vk, vkAllocateDescriptorSets); 952 - vk->vkFreeDescriptorSets = GET_DEV_PROC(vk, vkFreeDescriptorSets); 953 - vk->vkCreateComputePipelines = GET_DEV_PROC(vk, vkCreateComputePipelines); 954 - vk->vkCreateGraphicsPipelines = GET_DEV_PROC(vk, vkCreateGraphicsPipelines); 955 - vk->vkDestroyPipeline = GET_DEV_PROC(vk, vkDestroyPipeline); 956 - vk->vkCreatePipelineLayout = GET_DEV_PROC(vk, vkCreatePipelineLayout); 957 - vk->vkDestroyPipelineLayout = GET_DEV_PROC(vk, vkDestroyPipelineLayout); 958 - vk->vkCreateDescriptorSetLayout = GET_DEV_PROC(vk, vkCreateDescriptorSetLayout); 959 - vk->vkUpdateDescriptorSets = GET_DEV_PROC(vk, vkUpdateDescriptorSets); 960 - vk->vkDestroyDescriptorSetLayout = GET_DEV_PROC(vk, vkDestroyDescriptorSetLayout); 961 - vk->vkGetDeviceQueue = GET_DEV_PROC(vk, vkGetDeviceQueue); 962 - vk->vkQueueSubmit = GET_DEV_PROC(vk, vkQueueSubmit); 963 - vk->vkQueueWaitIdle = GET_DEV_PROC(vk, vkQueueWaitIdle); 964 - vk->vkCreateSemaphore = GET_DEV_PROC(vk, vkCreateSemaphore); 965 - #ifdef VK_KHR_timeline_semaphore 966 - vk->vkSignalSemaphore = GET_DEV_PROC(vk, vkSignalSemaphoreKHR); 967 - #endif 968 - vk->vkDestroySemaphore = GET_DEV_PROC(vk, vkDestroySemaphore); 969 - vk->vkCreateFence = GET_DEV_PROC(vk, vkCreateFence); 970 - vk->vkWaitForFences = GET_DEV_PROC(vk, vkWaitForFences); 971 - vk->vkGetFenceStatus = GET_DEV_PROC(vk, vkGetFenceStatus); 972 - vk->vkDestroyFence = GET_DEV_PROC(vk, vkDestroyFence); 973 - vk->vkResetFences = GET_DEV_PROC(vk, vkResetFences); 974 - vk->vkCreateSwapchainKHR = GET_DEV_PROC(vk, vkCreateSwapchainKHR); 975 - vk->vkDestroySwapchainKHR = GET_DEV_PROC(vk, vkDestroySwapchainKHR); 976 - vk->vkGetSwapchainImagesKHR = GET_DEV_PROC(vk, vkGetSwapchainImagesKHR); 977 - vk->vkAcquireNextImageKHR = GET_DEV_PROC(vk, vkAcquireNextImageKHR); 978 - vk->vkQueuePresentKHR = GET_DEV_PROC(vk, vkQueuePresentKHR); 913 + vk->vkFlushMappedMemoryRanges = GET_DEV_PROC(vk, vkFlushMappedMemoryRanges); 914 + vk->vkGetImageMemoryRequirements = GET_DEV_PROC(vk, vkGetImageMemoryRequirements); 915 + vk->vkGetImageMemoryRequirements2KHR = GET_DEV_PROC(vk, vkGetImageMemoryRequirements2KHR); 916 + vk->vkGetImageSubresourceLayout = GET_DEV_PROC(vk, vkGetImageSubresourceLayout); 917 + 918 + vk->vkCreateImageView = GET_DEV_PROC(vk, vkCreateImageView); 919 + vk->vkDestroyImageView = GET_DEV_PROC(vk, vkDestroyImageView); 920 + 921 + vk->vkCreateSampler = GET_DEV_PROC(vk, vkCreateSampler); 922 + vk->vkDestroySampler = GET_DEV_PROC(vk, vkDestroySampler); 923 + 924 + vk->vkCreateShaderModule = GET_DEV_PROC(vk, vkCreateShaderModule); 925 + vk->vkDestroyShaderModule = GET_DEV_PROC(vk, vkDestroyShaderModule); 926 + 927 + vk->vkCreateCommandPool = GET_DEV_PROC(vk, vkCreateCommandPool); 928 + vk->vkDestroyCommandPool = GET_DEV_PROC(vk, vkDestroyCommandPool); 979 929 980 - #ifdef VK_USE_PLATFORM_WIN32_KHR 930 + vk->vkAllocateCommandBuffers = GET_DEV_PROC(vk, vkAllocateCommandBuffers); 931 + vk->vkBeginCommandBuffer = GET_DEV_PROC(vk, vkBeginCommandBuffer); 932 + vk->vkCmdPipelineBarrier = GET_DEV_PROC(vk, vkCmdPipelineBarrier); 933 + vk->vkCmdBeginRenderPass = GET_DEV_PROC(vk, vkCmdBeginRenderPass); 934 + vk->vkCmdSetScissor = GET_DEV_PROC(vk, vkCmdSetScissor); 935 + vk->vkCmdSetViewport = GET_DEV_PROC(vk, vkCmdSetViewport); 936 + vk->vkCmdClearColorImage = GET_DEV_PROC(vk, vkCmdClearColorImage); 937 + vk->vkCmdEndRenderPass = GET_DEV_PROC(vk, vkCmdEndRenderPass); 938 + vk->vkCmdBindDescriptorSets = GET_DEV_PROC(vk, vkCmdBindDescriptorSets); 939 + vk->vkCmdBindPipeline = GET_DEV_PROC(vk, vkCmdBindPipeline); 940 + vk->vkCmdBindVertexBuffers = GET_DEV_PROC(vk, vkCmdBindVertexBuffers); 941 + vk->vkCmdBindIndexBuffer = GET_DEV_PROC(vk, vkCmdBindIndexBuffer); 942 + vk->vkCmdDraw = GET_DEV_PROC(vk, vkCmdDraw); 943 + vk->vkCmdDrawIndexed = GET_DEV_PROC(vk, vkCmdDrawIndexed); 944 + vk->vkCmdDispatch = GET_DEV_PROC(vk, vkCmdDispatch); 945 + vk->vkCmdCopyBuffer = GET_DEV_PROC(vk, vkCmdCopyBuffer); 946 + vk->vkCmdCopyBufferToImage = GET_DEV_PROC(vk, vkCmdCopyBufferToImage); 947 + vk->vkCmdCopyImage = GET_DEV_PROC(vk, vkCmdCopyImage); 948 + vk->vkCmdCopyImageToBuffer = GET_DEV_PROC(vk, vkCmdCopyImageToBuffer); 949 + vk->vkEndCommandBuffer = GET_DEV_PROC(vk, vkEndCommandBuffer); 950 + vk->vkFreeCommandBuffers = GET_DEV_PROC(vk, vkFreeCommandBuffers); 951 + 952 + vk->vkCreateRenderPass = GET_DEV_PROC(vk, vkCreateRenderPass); 953 + vk->vkDestroyRenderPass = GET_DEV_PROC(vk, vkDestroyRenderPass); 954 + 955 + vk->vkCreateFramebuffer = GET_DEV_PROC(vk, vkCreateFramebuffer); 956 + vk->vkDestroyFramebuffer = GET_DEV_PROC(vk, vkDestroyFramebuffer); 957 + 958 + vk->vkCreatePipelineCache = GET_DEV_PROC(vk, vkCreatePipelineCache); 959 + vk->vkDestroyPipelineCache = GET_DEV_PROC(vk, vkDestroyPipelineCache); 960 + 961 + vk->vkResetDescriptorPool = GET_DEV_PROC(vk, vkResetDescriptorPool); 962 + vk->vkCreateDescriptorPool = GET_DEV_PROC(vk, vkCreateDescriptorPool); 963 + vk->vkDestroyDescriptorPool = GET_DEV_PROC(vk, vkDestroyDescriptorPool); 964 + 965 + vk->vkAllocateDescriptorSets = GET_DEV_PROC(vk, vkAllocateDescriptorSets); 966 + vk->vkFreeDescriptorSets = GET_DEV_PROC(vk, vkFreeDescriptorSets); 967 + 968 + vk->vkCreateComputePipelines = GET_DEV_PROC(vk, vkCreateComputePipelines); 969 + vk->vkCreateGraphicsPipelines = GET_DEV_PROC(vk, vkCreateGraphicsPipelines); 970 + vk->vkDestroyPipeline = GET_DEV_PROC(vk, vkDestroyPipeline); 971 + 972 + vk->vkCreatePipelineLayout = GET_DEV_PROC(vk, vkCreatePipelineLayout); 973 + vk->vkDestroyPipelineLayout = GET_DEV_PROC(vk, vkDestroyPipelineLayout); 974 + 975 + vk->vkCreateDescriptorSetLayout = GET_DEV_PROC(vk, vkCreateDescriptorSetLayout); 976 + vk->vkUpdateDescriptorSets = GET_DEV_PROC(vk, vkUpdateDescriptorSets); 977 + vk->vkDestroyDescriptorSetLayout = GET_DEV_PROC(vk, vkDestroyDescriptorSetLayout); 978 + 979 + vk->vkGetDeviceQueue = GET_DEV_PROC(vk, vkGetDeviceQueue); 980 + vk->vkQueueSubmit = GET_DEV_PROC(vk, vkQueueSubmit); 981 + vk->vkQueueWaitIdle = GET_DEV_PROC(vk, vkQueueWaitIdle); 982 + 983 + vk->vkCreateSemaphore = GET_DEV_PROC(vk, vkCreateSemaphore); 984 + #if defined(VK_KHR_timeline_semaphore) 985 + vk->vkSignalSemaphoreKHR = GET_DEV_PROC(vk, vkSignalSemaphoreKHR); 986 + #endif // defined(VK_KHR_timeline_semaphore) 987 + 988 + vk->vkDestroySemaphore = GET_DEV_PROC(vk, vkDestroySemaphore); 989 + 990 + vk->vkCreateFence = GET_DEV_PROC(vk, vkCreateFence); 991 + vk->vkWaitForFences = GET_DEV_PROC(vk, vkWaitForFences); 992 + vk->vkGetFenceStatus = GET_DEV_PROC(vk, vkGetFenceStatus); 993 + vk->vkDestroyFence = GET_DEV_PROC(vk, vkDestroyFence); 994 + vk->vkResetFences = GET_DEV_PROC(vk, vkResetFences); 995 + 996 + vk->vkCreateSwapchainKHR = GET_DEV_PROC(vk, vkCreateSwapchainKHR); 997 + vk->vkDestroySwapchainKHR = GET_DEV_PROC(vk, vkDestroySwapchainKHR); 998 + vk->vkGetSwapchainImagesKHR = GET_DEV_PROC(vk, vkGetSwapchainImagesKHR); 999 + vk->vkAcquireNextImageKHR = GET_DEV_PROC(vk, vkAcquireNextImageKHR); 1000 + vk->vkQueuePresentKHR = GET_DEV_PROC(vk, vkQueuePresentKHR); 1001 + 1002 + #if defined(VK_USE_PLATFORM_WIN32_KHR) 1003 + vk->vkGetMemoryWin32HandleKHR = GET_DEV_PROC(vk, vkGetMemoryWin32HandleKHR); 981 1004 vk->vkImportSemaphoreWin32HandleKHR = GET_DEV_PROC(vk, vkImportSemaphoreWin32HandleKHR); 982 - vk->vkImportFenceWin32HandleKHR = GET_DEV_PROC(vk, vkImportFenceWin32HandleKHR); 983 - #else 984 - vk->vkImportSemaphoreFdKHR = GET_DEV_PROC(vk, vkImportSemaphoreFdKHR); 985 - vk->vkGetSemaphoreFdKHR = GET_DEV_PROC(vk, vkGetSemaphoreFdKHR); 1005 + vk->vkImportFenceWin32HandleKHR = GET_DEV_PROC(vk, vkImportFenceWin32HandleKHR); 1006 + #endif // defined(VK_USE_PLATFORM_WIN32_KHR) 986 1007 987 - vk->vkImportFenceFdKHR = GET_DEV_PROC(vk, vkImportFenceFdKHR); 988 - vk->vkGetFenceFdKHR = GET_DEV_PROC(vk, vkGetFenceFdKHR); 989 - #endif 1008 + #if !defined(VK_USE_PLATFORM_WIN32_KHR) 1009 + vk->vkGetMemoryFdKHR = GET_DEV_PROC(vk, vkGetMemoryFdKHR); 990 1010 991 - vk->vkGetPastPresentationTimingGOOGLE = GET_DEV_PROC(vk, vkGetPastPresentationTimingGOOGLE); 1011 + vk->vkImportSemaphoreFdKHR = GET_DEV_PROC(vk, vkImportSemaphoreFdKHR); 1012 + vk->vkGetSemaphoreFdKHR = GET_DEV_PROC(vk, vkGetSemaphoreFdKHR); 992 1013 993 - // clang-format on 1014 + vk->vkImportFenceFdKHR = GET_DEV_PROC(vk, vkImportFenceFdKHR); 1015 + vk->vkGetFenceFdKHR = GET_DEV_PROC(vk, vkGetFenceFdKHR); 1016 + #endif // !defined(VK_USE_PLATFORM_WIN32_KHR) 1017 + 1018 + #if defined(VK_USE_PLATFORM_ANDROID_KHR) 1019 + vk->vkGetMemoryAndroidHardwareBufferANDROID = GET_DEV_PROC(vk, vkGetMemoryAndroidHardwareBufferANDROID); 1020 + vk->vkGetAndroidHardwareBufferPropertiesANDROID = GET_DEV_PROC(vk, vkGetAndroidHardwareBufferPropertiesANDROID); 1021 + 1022 + #endif // defined(VK_USE_PLATFORM_ANDROID_KHR) 1023 + 1024 + vk->vkGetPastPresentationTimingGOOGLE = GET_DEV_PROC(vk, vkGetPastPresentationTimingGOOGLE); 1025 + // end of GENERATED device loader code - do not modify - used by scripts 994 1026 995 1027 return VK_SUCCESS; 996 1028 }
+80 -67
src/xrt/auxiliary/vk/vk_helpers.h
··· 62 62 63 63 struct os_mutex cmd_pool_mutex; 64 64 65 - // clang-format off 66 65 // Loader functions 67 66 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; 68 67 PFN_vkCreateInstance vkCreateInstance; 69 68 70 - // Instance functions. 69 + // beginning of GENERATED instance loader code - do not modify - used by scripts 71 70 PFN_vkDestroyInstance vkDestroyInstance; 71 + PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; 72 72 PFN_vkCreateDevice vkCreateDevice; 73 + PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; 74 + 73 75 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; 74 76 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; 77 + 75 78 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; 76 - PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; 79 + PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; 80 + PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; 81 + PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; 82 + PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; 83 + PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; 84 + PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; 85 + PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; 86 + PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; 87 + PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; 88 + PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; 77 89 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; 78 - #ifdef VK_USE_PLATFORM_DISPLAY_KHR 90 + PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; 91 + 92 + #if defined(VK_USE_PLATFORM_DISPLAY_KHR) 79 93 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; 80 - #endif 94 + PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; 95 + PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; 96 + PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; 97 + PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; 98 + PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; 81 99 82 - #ifdef VK_USE_PLATFORM_XCB_KHR 100 + #endif // defined(VK_USE_PLATFORM_DISPLAY_KHR) 101 + 102 + #if defined(VK_USE_PLATFORM_XCB_KHR) 83 103 PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; 84 - #endif 104 + 105 + #endif // defined(VK_USE_PLATFORM_XCB_KHR) 85 106 86 - #ifdef VK_USE_PLATFORM_WAYLAND_KHR 107 + #if defined(VK_USE_PLATFORM_WAYLAND_KHR) 87 108 PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; 88 - #ifdef VK_EXT_acquire_drm_display 109 + 110 + #endif // defined(VK_USE_PLATFORM_WAYLAND_KHR) 111 + 112 + #if defined(VK_USE_PLATFORM_WAYLAND_KHR) && defined(VK_EXT_acquire_drm_display) 89 113 PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT; 90 114 PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT; 91 - #endif 92 - #endif 115 + 116 + #endif // defined(VK_USE_PLATFORM_WAYLAND_KHR) && defined(VK_EXT_acquire_drm_display) 93 117 94 - #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT 118 + #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) 119 + PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; 95 120 PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; 96 - PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; 97 - #endif 121 + 122 + #endif // defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) 98 123 99 - #ifdef VK_USE_PLATFORM_ANDROID_KHR 124 + #if defined(VK_USE_PLATFORM_ANDROID_KHR) 100 125 PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; 101 - #endif 126 + 127 + #endif // defined(VK_USE_PLATFORM_ANDROID_KHR) 102 128 103 - #ifdef VK_USE_PLATFORM_WIN32_KHR 129 + #if defined(VK_USE_PLATFORM_WIN32_KHR) 104 130 PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; 105 - #endif 106 - 107 - // Physical device functions. 108 - PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; 109 - PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; 110 - PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; 111 - PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; 112 - PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; 131 + #endif // defined(VK_USE_PLATFORM_WIN32_KHR) 132 + // end of GENERATED instance loader code - do not modify - used by scripts 113 133 114 - PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; 115 - PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; 116 - PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; 117 - PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; 118 - 119 - PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; 120 - 121 - PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; 122 - 123 - #ifdef VK_USE_PLATFORM_DISPLAY_KHR 124 - PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; 125 - PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; 126 - PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; 127 - PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; 128 - PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; 129 - #endif 130 - 131 - // Device functions. 132 - PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; 134 + // beginning of GENERATED device loader code - do not modify - used by scripts 133 135 PFN_vkDestroyDevice vkDestroyDevice; 134 136 PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 135 - 136 137 PFN_vkAllocateMemory vkAllocateMemory; 137 138 PFN_vkFreeMemory vkFreeMemory; 138 139 PFN_vkMapMemory vkMapMemory; 139 140 PFN_vkUnmapMemory vkUnmapMemory; 140 - PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; 141 - 142 - #ifdef VK_USE_PLATFORM_ANDROID_KHR 143 - PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; 144 - PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; 145 - #endif 146 - 147 - #ifdef VK_USE_PLATFORM_WIN32_KHR 148 - PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; 149 - #endif 150 141 151 142 PFN_vkCreateBuffer vkCreateBuffer; 152 143 PFN_vkDestroyBuffer vkDestroyBuffer; 153 144 PFN_vkBindBufferMemory vkBindBufferMemory; 154 - PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 155 - PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 156 145 157 146 PFN_vkCreateImage vkCreateImage; 147 + PFN_vkDestroyImage vkDestroyImage; 148 + PFN_vkBindImageMemory vkBindImageMemory; 149 + 150 + PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 151 + PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 158 152 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 159 - PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; 153 + PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; 160 154 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 161 - PFN_vkBindImageMemory vkBindImageMemory; 162 - PFN_vkDestroyImage vkDestroyImage; 155 + 163 156 PFN_vkCreateImageView vkCreateImageView; 164 157 PFN_vkDestroyImageView vkDestroyImageView; 165 158 ··· 171 164 172 165 PFN_vkCreateCommandPool vkCreateCommandPool; 173 166 PFN_vkDestroyCommandPool vkDestroyCommandPool; 167 + 174 168 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 175 169 PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 176 170 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; ··· 195 189 196 190 PFN_vkCreateRenderPass vkCreateRenderPass; 197 191 PFN_vkDestroyRenderPass vkDestroyRenderPass; 192 + 198 193 PFN_vkCreateFramebuffer vkCreateFramebuffer; 199 194 PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 195 + 200 196 PFN_vkCreatePipelineCache vkCreatePipelineCache; 201 197 PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 198 + 202 199 PFN_vkResetDescriptorPool vkResetDescriptorPool; 203 200 PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 204 201 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 202 + 205 203 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 206 204 PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 205 + 207 206 PFN_vkCreateComputePipelines vkCreateComputePipelines; 208 207 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 209 208 PFN_vkDestroyPipeline vkDestroyPipeline; 209 + 210 210 PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 211 211 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 212 + 212 213 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 213 214 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 214 215 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; ··· 218 219 PFN_vkQueueWaitIdle vkQueueWaitIdle; 219 220 220 221 PFN_vkCreateSemaphore vkCreateSemaphore; 221 - #ifdef VK_KHR_timeline_semaphore 222 - PFN_vkSignalSemaphoreKHR vkSignalSemaphore; 223 - #endif 222 + #if defined(VK_KHR_timeline_semaphore) 223 + PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; 224 + #endif // defined(VK_KHR_timeline_semaphore) 225 + 224 226 PFN_vkDestroySemaphore vkDestroySemaphore; 225 227 226 228 PFN_vkCreateFence vkCreateFence; ··· 235 237 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 236 238 PFN_vkQueuePresentKHR vkQueuePresentKHR; 237 239 238 - #ifdef VK_USE_PLATFORM_WIN32_KHR 240 + #if defined(VK_USE_PLATFORM_WIN32_KHR) 241 + PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; 239 242 PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; 240 243 PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; 241 - #else 244 + #endif // defined(VK_USE_PLATFORM_WIN32_KHR) 245 + 246 + #if !defined(VK_USE_PLATFORM_WIN32_KHR) 247 + PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; 248 + 242 249 PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; 243 250 PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; 244 251 245 252 PFN_vkImportFenceFdKHR vkImportFenceFdKHR; 246 253 PFN_vkGetFenceFdKHR vkGetFenceFdKHR; 247 - #endif 254 + #endif // !defined(VK_USE_PLATFORM_WIN32_KHR) 255 + 256 + #if defined(VK_USE_PLATFORM_ANDROID_KHR) 257 + PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; 258 + PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; 259 + 260 + #endif // defined(VK_USE_PLATFORM_ANDROID_KHR) 248 261 249 262 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 250 - // clang-format on 263 + // end of GENERATED device loader code - do not modify - used by scripts 251 264 }; 252 265 253 266 struct vk_buffer
+1 -1
src/xrt/auxiliary/vk/vk_image_allocator.c
··· 216 216 .sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, 217 217 .pNext = &memory_dedicated_requirements, 218 218 }; 219 - vk->vkGetImageMemoryRequirements2(vk->device, &memory_requirements_info, &memory_requirements); 219 + vk->vkGetImageMemoryRequirements2KHR(vk->device, &memory_requirements_info, &memory_requirements); 220 220 221 221 /* on tegra we must not use dedicated allocation when it is only preferred to avoid black textures and driver 222 222 * errors when blitting from opengl interop textures.