Update Vulkan loader and headers to sdk-1.2.131.2
(Headers are actually sdk-1.2.131.1, they did not get a re-release.) Also synced VMA 2.3.0 again, fixing unwanted clang-formatting of thirdparty code.
This commit is contained in:
parent
7579a792be
commit
214bc9e5a1
18 changed files with 37443 additions and 39869 deletions
7
thirdparty/README.md
vendored
7
thirdparty/README.md
vendored
|
@ -539,7 +539,7 @@ folder.
|
|||
## vulkan
|
||||
|
||||
- Upstream: https://github.com/KhronosGroup/Vulkan-Loader
|
||||
- Version: 1.1.127
|
||||
- Version: sdk-1.2.131.2
|
||||
- License: Apache 2.0
|
||||
|
||||
Unless there is a specific reason to package a more recent version, please stick
|
||||
|
@ -555,10 +555,11 @@ Files extracted from upstream source:
|
|||
`loader/` folder
|
||||
- `LICENSE.txt`
|
||||
|
||||
`vk_enum_string_helper.h` is taken from the match `Vulkan-ValidationLayers` SDK
|
||||
release: https://github.com/KhronosGroup/Vulkan-Loader/tree/master/loader/generated
|
||||
`vk_enum_string_helper.h` is taken from the matching `Vulkan-ValidationLayers`
|
||||
SDK release: https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/layers/generated/vk_enum_string_helper.h
|
||||
|
||||
`vk_mem_alloc.h` is taken from https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
|
||||
Version: 2.3.0
|
||||
|
||||
|
||||
## wslay
|
||||
|
|
43013
thirdparty/vulkan/include/vulkan/vulkan.hpp
vendored
43013
thirdparty/vulkan/include/vulkan/vulkan.hpp
vendored
File diff suppressed because it is too large
Load diff
1678
thirdparty/vulkan/include/vulkan/vulkan_core.h
vendored
1678
thirdparty/vulkan/include/vulkan/vulkan_core.h
vendored
File diff suppressed because it is too large
Load diff
19
thirdparty/vulkan/loader/extension_manual.c
vendored
19
thirdparty/vulkan/loader/extension_manual.c
vendored
|
@ -441,3 +441,22 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDeviceGroupSurfacePresentModes2EXT(
|
|||
}
|
||||
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
|
||||
// ---- VK_EXT_tooling_info extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t* pToolCount,
|
||||
VkPhysicalDeviceToolPropertiesEXT* pToolProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->GetPhysicalDeviceToolPropertiesEXT(unwrapped_phys_dev, pToolCount, pToolProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolPropertiesEXT(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t* pToolCount,
|
||||
VkPhysicalDeviceToolPropertiesEXT* pToolProperties) {
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
|
12
thirdparty/vulkan/loader/extension_manual.h
vendored
12
thirdparty/vulkan/loader/extension_manual.h
vendored
|
@ -104,3 +104,15 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDeviceGroupSurfacePresentModes2EXT(
|
|||
VkDevice device,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
||||
VkDeviceGroupPresentModeFlagsKHR* pModes);
|
||||
|
||||
// ---- VK_EXT_tooling_info extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t* pToolCount,
|
||||
VkPhysicalDeviceToolPropertiesEXT* pToolProperties);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolPropertiesEXT(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t* pToolCount,
|
||||
VkPhysicalDeviceToolPropertiesEXT* pToolProperties);
|
||||
|
|
21
thirdparty/vulkan/loader/gpa_helper.h
vendored
21
thirdparty/vulkan/loader/gpa_helper.h
vendored
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
*
|
||||
* Copyright (c) 2015 The Khronos Group Inc.
|
||||
* Copyright (c) 2015 Valve Corporation
|
||||
* Copyright (c) 2015 LunarG, Inc.
|
||||
* Copyright (c) 2015-18, 2020 The Khronos Group Inc.
|
||||
* Copyright (c) 2015-18, 2020 Valve Corporation
|
||||
* Copyright (c) 2015-18, 2020 LunarG, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -190,6 +190,21 @@ static inline void *trampolineGetProcAddr(struct loader_instance *inst, const ch
|
|||
if (!strcmp(funcName, "vkGetImageSparseMemoryRequirements2")) return vkGetImageSparseMemoryRequirements2;
|
||||
if (!strcmp(funcName, "vkGetBufferMemoryRequirements2")) return vkGetBufferMemoryRequirements2;
|
||||
|
||||
// Core 1.2 functions
|
||||
if (!strcmp(funcName, "vkCreateRenderPass2")) return vkCreateRenderPass2;
|
||||
if (!strcmp(funcName, "vkCmdBeginRenderPass2")) return vkCmdBeginRenderPass2;
|
||||
if (!strcmp(funcName, "vkCmdNextSubpass2")) return vkCmdNextSubpass2;
|
||||
if (!strcmp(funcName, "vkCmdEndRenderPass2")) return vkCmdEndRenderPass2;
|
||||
if (!strcmp(funcName, "vkCmdDrawIndirectCount")) return vkCmdDrawIndirectCount;
|
||||
if (!strcmp(funcName, "vkCmdDrawIndexedIndirectCount")) return vkCmdDrawIndexedIndirectCount;
|
||||
if (!strcmp(funcName, "vkGetSemaphoreCounterValue")) return vkGetSemaphoreCounterValue;
|
||||
if (!strcmp(funcName, "vkWaitSemaphores")) return vkWaitSemaphores;
|
||||
if (!strcmp(funcName, "vkSignalSemaphore")) return vkSignalSemaphore;
|
||||
if (!strcmp(funcName, "vkGetBufferDeviceAddress")) return vkGetBufferDeviceAddress;
|
||||
if (!strcmp(funcName, "vkGetBufferOpaqueCaptureAddress")) return vkGetBufferOpaqueCaptureAddress;
|
||||
if (!strcmp(funcName, "vkGetDeviceMemoryOpaqueCaptureAddress")) return vkGetDeviceMemoryOpaqueCaptureAddress;
|
||||
if (!strcmp(funcName, "vkResetQueryPool")) return vkResetQueryPool;
|
||||
|
||||
// Instance extensions
|
||||
void *addr;
|
||||
if (debug_utils_InstanceGpa(inst, funcName, &addr)) return addr;
|
||||
|
|
167
thirdparty/vulkan/loader/loader.c
vendored
167
thirdparty/vulkan/loader/loader.c
vendored
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
*
|
||||
* Copyright (c) 2014-2019 The Khronos Group Inc.
|
||||
* Copyright (c) 2014-2019 Valve Corporation
|
||||
* Copyright (c) 2014-2019 LunarG, Inc.
|
||||
* Copyright (c) 2014-2020 The Khronos Group Inc.
|
||||
* Copyright (c) 2014-2020 Valve Corporation
|
||||
* Copyright (c) 2014-2020 LunarG, Inc.
|
||||
* Copyright (C) 2015 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
@ -126,7 +126,7 @@ LOADER_PLATFORM_THREAD_ONCE_DECLARATION(once_init);
|
|||
|
||||
// This loader supports Vulkan API version 1.1
|
||||
uint32_t loader_major_version = 1;
|
||||
uint32_t loader_minor_version = 1;
|
||||
uint32_t loader_minor_version = 2;
|
||||
|
||||
void *loader_instance_heap_alloc(const struct loader_instance *instance, size_t size, VkSystemAllocationScope alloc_scope) {
|
||||
void *pMemory = NULL;
|
||||
|
@ -252,6 +252,7 @@ static inline char *loader_getenv(const char *name, const struct loader_instance
|
|||
}
|
||||
|
||||
static inline char *loader_secure_getenv(const char *name, const struct loader_instance *inst) {
|
||||
char *out;
|
||||
#if defined(__APPLE__)
|
||||
// Apple does not appear to have a secure getenv implementation.
|
||||
// The main difference between secure getenv and getenv is that secure getenv
|
||||
|
@ -263,19 +264,21 @@ static inline char *loader_secure_getenv(const char *name, const struct loader_i
|
|||
return IsHighIntegrity() ? NULL : loader_getenv(name, inst);
|
||||
#else
|
||||
// Linux
|
||||
#ifdef HAVE_SECURE_GETENV
|
||||
#if defined(HAVE_SECURE_GETENV) && !defined(USE_UNSAFE_FILE_SEARCH)
|
||||
(void)inst;
|
||||
return secure_getenv(name);
|
||||
#elif defined(HAVE___SECURE_GETENV)
|
||||
out = secure_getenv(name);
|
||||
#elif defined(HAVE___SECURE_GETENV) && !defined(USE_UNSAFE_FILE_SEARCH)
|
||||
(void)inst;
|
||||
return __secure_getenv(name);
|
||||
out = __secure_getenv(name);
|
||||
#else
|
||||
#pragma message( \
|
||||
"Warning: Falling back to non-secure getenv for environmental lookups! Consider" \
|
||||
" updating to a different libc.")
|
||||
return loader_getenv(name, inst);
|
||||
out = loader_getenv(name, inst);
|
||||
#endif
|
||||
#endif
|
||||
if (out == NULL) {
|
||||
loader_log(inst, LOADER_INFO_BIT, 0,
|
||||
"Loader is running with elevated permissions. Environment variable %s will be ignored.", name);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
static inline void loader_free_getenv(char *val, const struct loader_instance *inst) {
|
||||
|
@ -335,9 +338,13 @@ static inline char *loader_getenv(const char *name, const struct loader_instance
|
|||
}
|
||||
|
||||
static inline char *loader_secure_getenv(const char *name, const struct loader_instance *inst) {
|
||||
#if !defined(USE_UNSAFE_FILE_SEARCH)
|
||||
if (IsHighIntegrity()) {
|
||||
loader_log(inst, LOADER_INFO_BIT, 0,
|
||||
"Loader is running with elevated permissions. Environment variable %s will be ignored.", name);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
return loader_getenv(name, inst);
|
||||
}
|
||||
|
@ -578,7 +585,7 @@ static bool loaderAddJsonEntry(const struct loader_instance *inst,
|
|||
//
|
||||
// This function looks for filename in given device handle, filename is then added to return list
|
||||
// function return true if filename was appended to reg_data list
|
||||
// If error occures result is updated with failure reason
|
||||
// If error occurs result is updated with failure reason
|
||||
bool loaderGetDeviceRegistryEntry(const struct loader_instance *inst, char **reg_data, PDWORD total_size, DEVINST dev_id,
|
||||
LPCSTR value_name, VkResult *result) {
|
||||
HKEY hkrKey = INVALID_HANDLE_VALUE;
|
||||
|
@ -855,7 +862,6 @@ VkResult loaderGetRegistryFiles(const struct loader_instance *inst, char *locati
|
|||
char name[2048];
|
||||
char *loc = location;
|
||||
char *next;
|
||||
DWORD idx;
|
||||
DWORD name_size = sizeof(name);
|
||||
DWORD value;
|
||||
DWORD value_size = sizeof(value);
|
||||
|
@ -885,9 +891,9 @@ VkResult loaderGetRegistryFiles(const struct loader_instance *inst, char *locati
|
|||
access_flags = KEY_QUERY_VALUE;
|
||||
rtn_value = RegOpenKeyEx(hive, loc, 0, access_flags, &key);
|
||||
if (ERROR_SUCCESS == rtn_value) {
|
||||
idx = 0;
|
||||
while ((rtn_value = RegEnumValue(key, idx++, name, &name_size, NULL, NULL, (LPBYTE)&value, &value_size)) ==
|
||||
ERROR_SUCCESS) {
|
||||
for (DWORD idx = 0;
|
||||
(rtn_value = RegEnumValue(key, idx++, name, &name_size, NULL, NULL, (LPBYTE)&value, &value_size)) == ERROR_SUCCESS;
|
||||
name_size = sizeof(name), value_size = sizeof(value)) {
|
||||
if (value_size == sizeof(value) && value == 0) {
|
||||
if (NULL == *reg_data) {
|
||||
*reg_data = loader_instance_heap_alloc(inst, *reg_data_size, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
|
||||
|
@ -960,7 +966,7 @@ VkResult loaderGetRegistryFiles(const struct loader_instance *inst, char *locati
|
|||
|
||||
if (!found_gpu) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"Dropping driver %s as no corresponduing DXGI adapter was found", name);
|
||||
"Dropping driver %s as no corresponding DXGI adapter was found", name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -972,7 +978,7 @@ VkResult loaderGetRegistryFiles(const struct loader_instance *inst, char *locati
|
|||
found = true;
|
||||
} else {
|
||||
// At this point the reg_data variable contains other JSON paths, likely from the PNP/device section
|
||||
// of the registry that we want to have precendence over this non-device specific section of the registry.
|
||||
// of the registry that we want to have precedence over this non-device specific section of the registry.
|
||||
// To make sure we avoid enumerating old JSON files/drivers that might be present in the non-device specific
|
||||
// area of the registry when a newer device specific JSON file is present, do a check before adding.
|
||||
// Find the file name, without path, of the JSON file found in the non-device specific registry location.
|
||||
|
@ -999,8 +1005,6 @@ VkResult loaderGetRegistryFiles(const struct loader_instance *inst, char *locati
|
|||
}
|
||||
}
|
||||
}
|
||||
name_size = sizeof(name);
|
||||
value_size = sizeof(value);
|
||||
}
|
||||
RegCloseKey(key);
|
||||
}
|
||||
|
@ -2045,7 +2049,7 @@ out:
|
|||
return res;
|
||||
}
|
||||
|
||||
struct loader_icd_term *loader_get_icd_and_device(const VkDevice device, struct loader_device **found_dev, uint32_t *icd_index) {
|
||||
struct loader_icd_term *loader_get_icd_and_device(const void *device, struct loader_device **found_dev, uint32_t *icd_index) {
|
||||
*found_dev = NULL;
|
||||
for (struct loader_instance *inst = loader.instances; inst; inst = inst->next) {
|
||||
uint32_t index = 0;
|
||||
|
@ -2423,7 +2427,7 @@ static void loader_debug_init(void) {
|
|||
}
|
||||
|
||||
void loader_initialize(void) {
|
||||
// initialize mutexs
|
||||
// initialize mutexes
|
||||
loader_platform_thread_create_mutex(&loader_lock);
|
||||
loader_platform_thread_create_mutex(&loader_json_lock);
|
||||
|
||||
|
@ -2450,7 +2454,7 @@ struct loader_data_files {
|
|||
};
|
||||
|
||||
void loader_release() {
|
||||
// release mutexs
|
||||
// release mutexes
|
||||
loader_platform_thread_delete_mutex(&loader_lock);
|
||||
loader_platform_thread_delete_mutex(&loader_json_lock);
|
||||
}
|
||||
|
@ -2578,60 +2582,6 @@ out:
|
|||
return res;
|
||||
}
|
||||
|
||||
const char *std_validation_str = "VK_LAYER_LUNARG_standard_validation";
|
||||
|
||||
// Adds the legacy VK_LAYER_LUNARG_standard_validation as a meta-layer if it
|
||||
// fails to find it in the list already. This is usually an indication that a
|
||||
// newer loader is being used with an older layer set.
|
||||
static bool loaderAddLegacyStandardValidationLayer(const struct loader_instance *inst,
|
||||
struct loader_layer_list *layer_instance_list) {
|
||||
uint32_t i;
|
||||
bool success = true;
|
||||
struct loader_layer_properties *props = loaderGetNextLayerPropertySlot(inst, layer_instance_list);
|
||||
const char std_validation_names[6][VK_MAX_EXTENSION_NAME_SIZE] = {
|
||||
"VK_LAYER_GOOGLE_threading", "VK_LAYER_LUNARG_parameter_validation", "VK_LAYER_LUNARG_object_tracker",
|
||||
"VK_LAYER_LUNARG_core_validation", "VK_LAYER_GOOGLE_unique_objects"};
|
||||
uint32_t layer_count = sizeof(std_validation_names) / sizeof(std_validation_names[0]);
|
||||
|
||||
loader_log(inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
|
||||
"Adding VK_LAYER_LUNARG_standard_validation using the loader legacy path. This is"
|
||||
" not an error.");
|
||||
|
||||
if (NULL == props) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
memset(props, 0, sizeof(struct loader_layer_properties));
|
||||
props->type_flags = VK_LAYER_TYPE_FLAG_INSTANCE_LAYER | VK_LAYER_TYPE_FLAG_EXPLICIT_LAYER | VK_LAYER_TYPE_FLAG_META_LAYER;
|
||||
strncpy(props->info.description, "LunarG Standard Validation Layer", sizeof(props->info.description));
|
||||
props->info.implementationVersion = 1;
|
||||
strncpy(props->info.layerName, std_validation_str, sizeof(props->info.layerName));
|
||||
props->info.specVersion = VK_MAKE_VERSION(1, 0, VK_HEADER_VERSION);
|
||||
|
||||
props->component_layer_names =
|
||||
loader_instance_heap_alloc(inst, sizeof(char[MAX_STRING_SIZE]) * layer_count, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
|
||||
if (NULL == props->component_layer_names) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"Failed to allocate space for legacy VK_LAYER_LUNARG_standard_validation"
|
||||
" meta-layer component_layers information.");
|
||||
success = false;
|
||||
goto out;
|
||||
}
|
||||
for (i = 0; i < layer_count; i++) {
|
||||
strncpy(props->component_layer_names[i], std_validation_names[i], MAX_STRING_SIZE - 1);
|
||||
props->component_layer_names[i][MAX_STRING_SIZE - 1] = '\0';
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
if (!success && NULL != props && NULL != props->component_layer_names) {
|
||||
loader_instance_heap_free(inst, props->component_layer_names);
|
||||
props->component_layer_names = NULL;
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
// Verify that all component layers in a meta-layer are valid.
|
||||
static bool verifyMetaLayerComponentLayers(const struct loader_instance *inst, struct loader_layer_properties *prop,
|
||||
struct loader_layer_list *instance_layers) {
|
||||
|
@ -3201,7 +3151,7 @@ static VkResult loaderReadLayerJson(const struct loader_instance *inst, struct l
|
|||
if (version.major > 1 || version.minor >= 1) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"Layer \"%s\" using deprecated \'vkGetInstanceProcAddr\' tag which was deprecated starting with JSON "
|
||||
"file version 1.1.0. The new vkNegotiateLayerInterfaceVersion function is preferred, though for "
|
||||
"file version 1.1.0. The new vkNegotiateLoaderLayerInterfaceVersion function is preferred, though for "
|
||||
"compatibility reasons it may be desirable to continue using the deprecated tag.",
|
||||
name);
|
||||
}
|
||||
|
@ -3212,7 +3162,7 @@ static VkResult loaderReadLayerJson(const struct loader_instance *inst, struct l
|
|||
if (version.major > 1 || version.minor >= 1) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"Layer \"%s\" using deprecated \'vkGetDeviceProcAddr\' tag which was deprecated starting with JSON "
|
||||
"file version 1.1.0. The new vkNegotiateLayerInterfaceVersion function is preferred, though for "
|
||||
"file version 1.1.0. The new vkNegotiateLoaderLayerInterfaceVersion function is preferred, though for "
|
||||
"compatibility reasons it may be desirable to continue using the deprecated tag.",
|
||||
name);
|
||||
}
|
||||
|
@ -3949,7 +3899,7 @@ out:
|
|||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
// Read manifest JSON files uing the Windows driver interface
|
||||
// Read manifest JSON files using the Windows driver interface
|
||||
static VkResult ReadManifestsFromD3DAdapters(const struct loader_instance *inst, char **reg_data, PDWORD reg_data_size,
|
||||
const wchar_t *value_name) {
|
||||
VkResult result = VK_INCOMPLETE;
|
||||
|
@ -3994,7 +3944,7 @@ static VkResult ReadManifestsFromD3DAdapters(const struct loader_instance *inst,
|
|||
.value_type = REG_MULTI_SZ,
|
||||
.physical_adapter_index = 0,
|
||||
};
|
||||
wcsncpy(filename_info.value_name, value_name, sizeof(filename_info.value_name) / sizeof(DWORD));
|
||||
wcsncpy(filename_info.value_name, value_name, sizeof(filename_info.value_name) / sizeof(WCHAR));
|
||||
LoaderQueryAdapterInfo query_info = {
|
||||
.handle = adapters.adapters[i].handle,
|
||||
.type = LOADER_QUERY_TYPE_REGISTRY,
|
||||
|
@ -4603,23 +4553,6 @@ void loaderScanForLayers(struct loader_instance *inst, struct loader_layer_list
|
|||
}
|
||||
}
|
||||
|
||||
// See if "VK_LAYER_LUNARG_standard_validation" already in list.
|
||||
bool found_std_val = false;
|
||||
for (uint32_t i = 0; i < instance_layers->count; i++) {
|
||||
struct loader_layer_properties *props = &instance_layers->list[i];
|
||||
if (strcmp(props->info.layerName, std_validation_str) == 0) {
|
||||
found_std_val = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If we didn't find the VK_LAYER_LUNARG_standard_validation meta-layer in
|
||||
// the list, then we need to add it manually. This is likely because we're
|
||||
// dealing with a new loader, but an old layer folder.
|
||||
if (!found_std_val && !loaderAddLegacyStandardValidationLayer(inst, instance_layers)) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
// Verify any meta-layers in the list are valid and all the component layers are
|
||||
// actually present in the available layer list
|
||||
VerifyAllMetaLayers(inst, instance_layers, &override_layer_valid);
|
||||
|
@ -4853,6 +4786,32 @@ static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL loader_gpa_instance_internal(VkI
|
|||
return (PFN_vkVoidFunction)terminator_CreateDevice;
|
||||
}
|
||||
|
||||
// The VK_EXT_debug_utils functions need a special case here so the terminators can still be found from vkGetInstanceProcAddr
|
||||
if (!strcmp(pName, "vkSetDebugUtilsObjectNameEXT")) {
|
||||
return (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectNameEXT;
|
||||
}
|
||||
if (!strcmp(pName, "vkSetDebugUtilsObjectTagEXT")) {
|
||||
return (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectTagEXT;
|
||||
}
|
||||
if (!strcmp(pName, "vkQueueBeginDebugUtilsLabelEXT")) {
|
||||
return (PFN_vkVoidFunction)terminator_QueueBeginDebugUtilsLabelEXT;
|
||||
}
|
||||
if (!strcmp(pName, "vkQueueEndDebugUtilsLabelEXT")) {
|
||||
return (PFN_vkVoidFunction)terminator_QueueEndDebugUtilsLabelEXT;
|
||||
}
|
||||
if (!strcmp(pName, "vkQueueInsertDebugUtilsLabelEXT")) {
|
||||
return (PFN_vkVoidFunction)terminator_QueueInsertDebugUtilsLabelEXT;
|
||||
}
|
||||
if (!strcmp(pName, "vkCmdBeginDebugUtilsLabelEXT")) {
|
||||
return (PFN_vkVoidFunction)terminator_CmdBeginDebugUtilsLabelEXT;
|
||||
}
|
||||
if (!strcmp(pName, "vkCmdEndDebugUtilsLabelEXT")) {
|
||||
return (PFN_vkVoidFunction)terminator_CmdEndDebugUtilsLabelEXT;
|
||||
}
|
||||
if (!strcmp(pName, "vkCmdInsertDebugUtilsLabelEXT")) {
|
||||
return (PFN_vkVoidFunction)terminator_CmdInsertDebugUtilsLabelEXT;
|
||||
}
|
||||
|
||||
// inst is not wrapped
|
||||
if (inst == VK_NULL_HANDLE) {
|
||||
return NULL;
|
||||
|
@ -5510,8 +5469,6 @@ VKAPI_ATTR VkResult VKAPI_CALL loader_layer_create_device(VkInstance instance, V
|
|||
struct loader_device *dev = NULL;
|
||||
struct loader_instance *inst = NULL;
|
||||
|
||||
assert(pCreateInfo->queueCreateInfoCount >= 1);
|
||||
|
||||
if (instance != NULL) {
|
||||
inst = loader_get_instance(instance);
|
||||
internal_device = physicalDevice;
|
||||
|
@ -6187,7 +6144,7 @@ VkResult loader_validate_device_extensions(struct loader_instance *this_instance
|
|||
}
|
||||
|
||||
// Terminator functions for the Instance chain
|
||||
// All named terminator_<Vulakn API name>
|
||||
// All named terminator_<Vulkan API name>
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateInstance(const VkInstanceCreateInfo *pCreateInfo,
|
||||
const VkAllocationCallbacks *pAllocator, VkInstance *pInstance) {
|
||||
struct loader_icd_term *icd_term;
|
||||
|
@ -7204,6 +7161,10 @@ VkStringErrorFlags vk_string_validate(const int max_length, const char *utf8) {
|
|||
int num_char_bytes = 0;
|
||||
int i, j;
|
||||
|
||||
if (utf8 == NULL) {
|
||||
return VK_STRING_ERROR_NULL_PTR;
|
||||
}
|
||||
|
||||
for (i = 0; i <= max_length; i++) {
|
||||
if (utf8[i] == 0) {
|
||||
break;
|
||||
|
@ -7369,7 +7330,7 @@ out:
|
|||
return result;
|
||||
}
|
||||
|
||||
#if defined(_WIN32) && defined(LOADER_DYNAMIC_LIB)
|
||||
#if defined(_WIN32)
|
||||
BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved) {
|
||||
switch (reason) {
|
||||
case DLL_PROCESS_ATTACH:
|
||||
|
|
6
thirdparty/vulkan/loader/loader.h
vendored
6
thirdparty/vulkan/loader/loader.h
vendored
|
@ -67,6 +67,7 @@ typedef enum VkStringErrorFlagBits {
|
|||
VK_STRING_ERROR_NONE = 0x00000000,
|
||||
VK_STRING_ERROR_LENGTH = 0x00000001,
|
||||
VK_STRING_ERROR_BAD_DATA = 0x00000002,
|
||||
VK_STRING_ERROR_NULL_PTR = 0x00000004,
|
||||
} VkStringErrorFlagBits;
|
||||
typedef VkFlags VkStringErrorFlags;
|
||||
|
||||
|
@ -419,9 +420,6 @@ static inline void loader_init_dispatch(void *obj, const void *data) {
|
|||
// Global variables used across files
|
||||
extern struct loader_struct loader;
|
||||
extern THREAD_LOCAL_DECL struct loader_instance *tls_instance;
|
||||
#if defined(_WIN32) && !defined(LOADER_DYNAMIC_LIB)
|
||||
extern LOADER_PLATFORM_THREAD_ONCE_DEFINITION(once_init);
|
||||
#endif
|
||||
extern loader_platform_thread_mutex loader_lock;
|
||||
extern loader_platform_thread_mutex loader_json_lock;
|
||||
|
||||
|
@ -480,7 +478,7 @@ void loaderScanForImplicitLayers(struct loader_instance *inst, struct loader_lay
|
|||
bool loaderImplicitLayerIsEnabled(const struct loader_instance *inst, const struct loader_layer_properties *prop);
|
||||
VkResult loader_get_icd_loader_instance_extensions(const struct loader_instance *inst, struct loader_icd_tramp_list *icd_tramp_list,
|
||||
struct loader_extension_list *inst_exts);
|
||||
struct loader_icd_term *loader_get_icd_and_device(const VkDevice device, struct loader_device **found_dev, uint32_t *icd_index);
|
||||
struct loader_icd_term *loader_get_icd_and_device(const void *device, struct loader_device **found_dev, uint32_t *icd_index);
|
||||
void loader_init_dispatch_dev_ext(struct loader_instance *inst, struct loader_device *dev);
|
||||
void *loader_dev_ext_gpa(struct loader_instance *inst, const char *funcName);
|
||||
void *loader_get_dev_ext_trampoline(uint32_t index);
|
||||
|
|
113
thirdparty/vulkan/loader/trampoline.c
vendored
113
thirdparty/vulkan/loader/trampoline.c
vendored
|
@ -135,6 +135,12 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionPropert
|
|||
}
|
||||
|
||||
loader_platform_dl_handle layer_lib = loader_platform_open_library(layers.list[i].lib_name);
|
||||
if (layer_lib == NULL) {
|
||||
loader_log(NULL, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0, "%s: Unable to load implicit layer library \"%s\"", __FUNCTION__,
|
||||
layers.list[i].lib_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
libs[lib_count++] = layer_lib;
|
||||
void *pfn = loader_platform_get_proc_address(layer_lib,
|
||||
layers.list[i].pre_instance_functions.enumerate_instance_extension_properties);
|
||||
|
@ -223,6 +229,12 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
|
|||
}
|
||||
|
||||
loader_platform_dl_handle layer_lib = loader_platform_open_library(layers.list[i].lib_name);
|
||||
if (layer_lib == NULL) {
|
||||
loader_log(NULL, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0, "%s: Unable to load implicit layer library \"%s\"", __FUNCTION__,
|
||||
layers.list[i].lib_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
libs[lib_count++] = layer_lib;
|
||||
void *pfn =
|
||||
loader_platform_get_proc_address(layer_lib, layers.list[i].pre_instance_functions.enumerate_instance_layer_properties);
|
||||
|
@ -311,6 +323,12 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(uint32_t
|
|||
}
|
||||
|
||||
loader_platform_dl_handle layer_lib = loader_platform_open_library(layers.list[i].lib_name);
|
||||
if (layer_lib == NULL) {
|
||||
loader_log(NULL, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0, "%s: Unable to load implicit layer library \"%s\"", __FUNCTION__,
|
||||
layers.list[i].lib_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
libs[lib_count++] = layer_lib;
|
||||
void *pfn = loader_platform_get_proc_address(layer_lib,
|
||||
layers.list[i].pre_instance_functions.enumerate_instance_version);
|
||||
|
@ -2478,3 +2496,98 @@ LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(VkDev
|
|||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
disp->UpdateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
|
||||
}
|
||||
|
||||
// ---- Vulkan core 1.2 trampolines
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->CreateRenderPass2(device, pCreateInfo, pAllocator, pRenderPass);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,
|
||||
const VkRenderPassBeginInfo* pRenderPassBegin,
|
||||
const VkSubpassBeginInfo* pSubpassBeginInfo)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
disp->CmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(VkCommandBuffer commandBuffer,
|
||||
const VkSubpassBeginInfo* pSubpassBeginInfo,
|
||||
const VkSubpassEndInfo* pSubpassEndInfo)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
disp->CmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
disp->CmdEndRenderPass2(commandBuffer, pSubpassEndInfo);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
|
||||
VkBuffer countBuffer, VkDeviceSize countBufferOffset,
|
||||
uint32_t maxDrawCount, uint32_t stride)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
disp->CmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer,
|
||||
VkDeviceSize offset, VkBuffer countBuffer,
|
||||
VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
|
||||
uint32_t stride)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
disp->CmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->GetSemaphoreCounterValue(device, semaphore, pValue);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo,
|
||||
uint64_t timeout)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->WaitSemaphores(device, pWaitInfo, timeout);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->SignalSemaphore(device, pSignalInfo);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(VkDevice device,
|
||||
const VkBufferDeviceAddressInfo* pInfo)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->GetBufferDeviceAddress(device, pInfo);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(VkDevice device,
|
||||
const VkBufferDeviceAddressInfo* pInfo)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->GetBufferOpaqueCaptureAddress(device, pInfo);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,
|
||||
const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->GetDeviceMemoryOpaqueCaptureAddress(device, pInfo);
|
||||
}
|
||||
|
||||
LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery,
|
||||
uint32_t queryCount)
|
||||
{
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
disp->ResetQueryPool(device, queryPool, firstQuery, queryCount);
|
||||
}
|
||||
|
|
885
thirdparty/vulkan/loader/unknown_ext_chain_gas.S
vendored
885
thirdparty/vulkan/loader/unknown_ext_chain_gas.S
vendored
|
@ -1,885 +0,0 @@
|
|||
#
|
||||
# Copyright (c) 2017 The Khronos Group Inc.
|
||||
# Copyright (c) 2017 Valve Corporation
|
||||
# Copyright (c) 2017 LunarG, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# Author: Lenny Komow <lenny@lunarg.com>
|
||||
#
|
||||
|
||||
# This code is used to pass on device (including physical device) extensions through the call chain. It must do this without
|
||||
# creating a stack frame, because the actual parameters of the call are not known. Since the first parameter is known to be a
|
||||
# VkPhysicalDevice or a dispatchable object it can unwrap the object, possibly overwriting the wrapped physical device, and then
|
||||
# jump to the next function in the call chain
|
||||
|
||||
#ifdef HAVE_CET_H
|
||||
#include <cet.h>
|
||||
#else
|
||||
#define _CET_ENDBR
|
||||
#endif
|
||||
|
||||
.intel_syntax noprefix
|
||||
.include "gen_defines.asm"
|
||||
|
||||
.ifdef X86_64
|
||||
|
||||
.macro PhysDevExtTramp num
|
||||
.global vkPhysDevExtTramp\num
|
||||
vkPhysDevExtTramp\num:
|
||||
_CET_ENDBR
|
||||
mov rax, [rdi]
|
||||
mov rdi, [rdi + PHYS_DEV_OFFSET_PHYS_DEV_TRAMP]
|
||||
jmp [rax + (PHYS_DEV_OFFSET_INST_DISPATCH + (PTR_SIZE * \num))]
|
||||
.endm
|
||||
|
||||
.macro PhysDevExtTermin num
|
||||
.global vkPhysDevExtTermin\num
|
||||
vkPhysDevExtTermin\num:
|
||||
_CET_ENDBR
|
||||
mov rax, [rdi + ICD_TERM_OFFSET_PHYS_DEV_TERM] # Store the loader_icd_term* in rax
|
||||
cmp qword ptr [rax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num))], 0 # Check if the next function in the chain is NULL
|
||||
je terminError\num # Go to the error section if it is NULL
|
||||
mov rdi, [rdi + PHYS_DEV_OFFSET_PHYS_DEV_TERM] # Load the unwrapped VkPhysicalDevice into the first arg
|
||||
jmp [rax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num))] # Jump to the next function in the chain
|
||||
terminError\num:
|
||||
sub rsp, 56 # Create the stack frame
|
||||
mov rdi, [rax + INSTANCE_OFFSET_ICD_TERM] # Load the loader_instance into rdi (first arg)
|
||||
mov r8, [rdi + (HASH_OFFSET_INSTANCE + (HASH_SIZE * \num) + FUNC_NAME_OFFSET_HASH)] # Load the func name into r8 (fifth arg)
|
||||
lea rcx, termin_error_string@GOTPCREL # Load the error string into rcx (fourth arg)
|
||||
xor edx, edx # Set rdx to zero (third arg)
|
||||
lea esi, [rdx + VK_DEBUG_REPORT_ERROR_BIT_EXT] # Write the error logging bit to rsi (second arg)
|
||||
call loader_log # Log the error message before we crash
|
||||
add rsp, 56 # Clean up the stack frame
|
||||
mov rax, 0
|
||||
jmp rax # Crash intentionally by jumping to address zero
|
||||
.endm
|
||||
|
||||
.macro DevExtTramp num
|
||||
.global vkdev_ext\num
|
||||
vkdev_ext\num:
|
||||
_CET_ENDBR
|
||||
mov rax, [rdi] # Dereference the handle to get the dispatch table
|
||||
jmp [rax + (EXT_OFFSET_DEVICE_DISPATCH + (PTR_SIZE * \num))] # Jump to the appropriate call chain
|
||||
.endm
|
||||
|
||||
.else
|
||||
|
||||
.macro PhysDevExtTramp num
|
||||
.global vkPhysDevExtTramp\num
|
||||
vkPhysDevExtTramp\num:
|
||||
_CET_ENDBR
|
||||
mov eax, [esp + 4] # Load the wrapped VkPhysicalDevice into eax
|
||||
mov ecx, [eax + PHYS_DEV_OFFSET_PHYS_DEV_TRAMP] # Load the unwrapped VkPhysicalDevice into ecx
|
||||
mov [esp + 4], ecx # Overwrite the wrapped VkPhysicalDevice with the unwrapped one (on the stack)
|
||||
mov eax, [eax] # Dereference the wrapped VkPhysicalDevice to get the dispatch table in eax
|
||||
jmp [eax + (PHYS_DEV_OFFSET_INST_DISPATCH + (PTR_SIZE * \num))] # Dereference the wrapped VkPhysicalDevice to get the dispatch table in eax
|
||||
.endm
|
||||
|
||||
.macro PhysDevExtTermin num
|
||||
.global vkPhysDevExtTermin\num
|
||||
vkPhysDevExtTermin\num:
|
||||
_CET_ENDBR
|
||||
mov ecx, [esp + 4] # Move the wrapped VkPhysicalDevice into ecx
|
||||
mov eax, [ecx + ICD_TERM_OFFSET_PHYS_DEV_TERM] # Store the loader_icd_term* in eax
|
||||
cmp dword ptr [eax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num))], 0 # Check if the next function in the chain is NULL
|
||||
je terminError\num # Go to the error section if it is NULL
|
||||
mov ecx, [ecx + PHYS_DEV_OFFSET_PHYS_DEV_TERM] # Unwrap the VkPhysicalDevice in ecx
|
||||
mov [esp + 4], ecx # Copy the unwrapped VkPhysicalDevice into the first arg
|
||||
jmp [eax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num))] # Jump to the next function in the chain
|
||||
terminError\num:
|
||||
mov eax, [eax + INSTANCE_OFFSET_ICD_TERM] # Load the loader_instance into eax
|
||||
push [eax + (HASH_OFFSET_INSTANCE + (HASH_SIZE * \num) + FUNC_NAME_OFFSET_HASH)] # Push the func name (fifth arg)
|
||||
push offset termin_error_string@GOT # Push the error string (fourth arg)
|
||||
push 0 # Push zero (third arg)
|
||||
push VK_DEBUG_REPORT_ERROR_BIT_EXT # Push the error logging bit (second arg)
|
||||
push eax # Push the loader_instance (first arg)
|
||||
call loader_log # Log the error message before we crash
|
||||
add esp, 20 # Clean up the args
|
||||
mov eax, 0
|
||||
jmp eax # Crash intentionally by jumping to address zero
|
||||
.endm
|
||||
|
||||
.macro DevExtTramp num
|
||||
.global vkdev_ext\num
|
||||
vkdev_ext\num:
|
||||
_CET_ENDBR
|
||||
mov eax, [esp + 4] # Dereference the handle to get the dispatch table
|
||||
jmp [eax + (EXT_OFFSET_DEVICE_DISPATCH + (PTR_SIZE * \num))] # Jump to the appropriate call chain
|
||||
.endm
|
||||
|
||||
.endif
|
||||
|
||||
#if defined(__ELF__)
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
|
||||
.data
|
||||
|
||||
termin_error_string:
|
||||
.string "Extension %s not supported for this physical device"
|
||||
|
||||
.text
|
||||
|
||||
PhysDevExtTramp 0
|
||||
PhysDevExtTramp 1
|
||||
PhysDevExtTramp 2
|
||||
PhysDevExtTramp 3
|
||||
PhysDevExtTramp 4
|
||||
PhysDevExtTramp 5
|
||||
PhysDevExtTramp 6
|
||||
PhysDevExtTramp 7
|
||||
PhysDevExtTramp 8
|
||||
PhysDevExtTramp 9
|
||||
PhysDevExtTramp 10
|
||||
PhysDevExtTramp 11
|
||||
PhysDevExtTramp 12
|
||||
PhysDevExtTramp 13
|
||||
PhysDevExtTramp 14
|
||||
PhysDevExtTramp 15
|
||||
PhysDevExtTramp 16
|
||||
PhysDevExtTramp 17
|
||||
PhysDevExtTramp 18
|
||||
PhysDevExtTramp 19
|
||||
PhysDevExtTramp 20
|
||||
PhysDevExtTramp 21
|
||||
PhysDevExtTramp 22
|
||||
PhysDevExtTramp 23
|
||||
PhysDevExtTramp 24
|
||||
PhysDevExtTramp 25
|
||||
PhysDevExtTramp 26
|
||||
PhysDevExtTramp 27
|
||||
PhysDevExtTramp 28
|
||||
PhysDevExtTramp 29
|
||||
PhysDevExtTramp 30
|
||||
PhysDevExtTramp 31
|
||||
PhysDevExtTramp 32
|
||||
PhysDevExtTramp 33
|
||||
PhysDevExtTramp 34
|
||||
PhysDevExtTramp 35
|
||||
PhysDevExtTramp 36
|
||||
PhysDevExtTramp 37
|
||||
PhysDevExtTramp 38
|
||||
PhysDevExtTramp 39
|
||||
PhysDevExtTramp 40
|
||||
PhysDevExtTramp 41
|
||||
PhysDevExtTramp 42
|
||||
PhysDevExtTramp 43
|
||||
PhysDevExtTramp 44
|
||||
PhysDevExtTramp 45
|
||||
PhysDevExtTramp 46
|
||||
PhysDevExtTramp 47
|
||||
PhysDevExtTramp 48
|
||||
PhysDevExtTramp 49
|
||||
PhysDevExtTramp 50
|
||||
PhysDevExtTramp 51
|
||||
PhysDevExtTramp 52
|
||||
PhysDevExtTramp 53
|
||||
PhysDevExtTramp 54
|
||||
PhysDevExtTramp 55
|
||||
PhysDevExtTramp 56
|
||||
PhysDevExtTramp 57
|
||||
PhysDevExtTramp 58
|
||||
PhysDevExtTramp 59
|
||||
PhysDevExtTramp 60
|
||||
PhysDevExtTramp 61
|
||||
PhysDevExtTramp 62
|
||||
PhysDevExtTramp 63
|
||||
PhysDevExtTramp 64
|
||||
PhysDevExtTramp 65
|
||||
PhysDevExtTramp 66
|
||||
PhysDevExtTramp 67
|
||||
PhysDevExtTramp 68
|
||||
PhysDevExtTramp 69
|
||||
PhysDevExtTramp 70
|
||||
PhysDevExtTramp 71
|
||||
PhysDevExtTramp 72
|
||||
PhysDevExtTramp 73
|
||||
PhysDevExtTramp 74
|
||||
PhysDevExtTramp 75
|
||||
PhysDevExtTramp 76
|
||||
PhysDevExtTramp 77
|
||||
PhysDevExtTramp 78
|
||||
PhysDevExtTramp 79
|
||||
PhysDevExtTramp 80
|
||||
PhysDevExtTramp 81
|
||||
PhysDevExtTramp 82
|
||||
PhysDevExtTramp 83
|
||||
PhysDevExtTramp 84
|
||||
PhysDevExtTramp 85
|
||||
PhysDevExtTramp 86
|
||||
PhysDevExtTramp 87
|
||||
PhysDevExtTramp 88
|
||||
PhysDevExtTramp 89
|
||||
PhysDevExtTramp 90
|
||||
PhysDevExtTramp 91
|
||||
PhysDevExtTramp 92
|
||||
PhysDevExtTramp 93
|
||||
PhysDevExtTramp 94
|
||||
PhysDevExtTramp 95
|
||||
PhysDevExtTramp 96
|
||||
PhysDevExtTramp 97
|
||||
PhysDevExtTramp 98
|
||||
PhysDevExtTramp 99
|
||||
PhysDevExtTramp 100
|
||||
PhysDevExtTramp 101
|
||||
PhysDevExtTramp 102
|
||||
PhysDevExtTramp 103
|
||||
PhysDevExtTramp 104
|
||||
PhysDevExtTramp 105
|
||||
PhysDevExtTramp 106
|
||||
PhysDevExtTramp 107
|
||||
PhysDevExtTramp 108
|
||||
PhysDevExtTramp 109
|
||||
PhysDevExtTramp 110
|
||||
PhysDevExtTramp 111
|
||||
PhysDevExtTramp 112
|
||||
PhysDevExtTramp 113
|
||||
PhysDevExtTramp 114
|
||||
PhysDevExtTramp 115
|
||||
PhysDevExtTramp 116
|
||||
PhysDevExtTramp 117
|
||||
PhysDevExtTramp 118
|
||||
PhysDevExtTramp 119
|
||||
PhysDevExtTramp 120
|
||||
PhysDevExtTramp 121
|
||||
PhysDevExtTramp 122
|
||||
PhysDevExtTramp 123
|
||||
PhysDevExtTramp 124
|
||||
PhysDevExtTramp 125
|
||||
PhysDevExtTramp 126
|
||||
PhysDevExtTramp 127
|
||||
PhysDevExtTramp 128
|
||||
PhysDevExtTramp 129
|
||||
PhysDevExtTramp 130
|
||||
PhysDevExtTramp 131
|
||||
PhysDevExtTramp 132
|
||||
PhysDevExtTramp 133
|
||||
PhysDevExtTramp 134
|
||||
PhysDevExtTramp 135
|
||||
PhysDevExtTramp 136
|
||||
PhysDevExtTramp 137
|
||||
PhysDevExtTramp 138
|
||||
PhysDevExtTramp 139
|
||||
PhysDevExtTramp 140
|
||||
PhysDevExtTramp 141
|
||||
PhysDevExtTramp 142
|
||||
PhysDevExtTramp 143
|
||||
PhysDevExtTramp 144
|
||||
PhysDevExtTramp 145
|
||||
PhysDevExtTramp 146
|
||||
PhysDevExtTramp 147
|
||||
PhysDevExtTramp 148
|
||||
PhysDevExtTramp 149
|
||||
PhysDevExtTramp 150
|
||||
PhysDevExtTramp 151
|
||||
PhysDevExtTramp 152
|
||||
PhysDevExtTramp 153
|
||||
PhysDevExtTramp 154
|
||||
PhysDevExtTramp 155
|
||||
PhysDevExtTramp 156
|
||||
PhysDevExtTramp 157
|
||||
PhysDevExtTramp 158
|
||||
PhysDevExtTramp 159
|
||||
PhysDevExtTramp 160
|
||||
PhysDevExtTramp 161
|
||||
PhysDevExtTramp 162
|
||||
PhysDevExtTramp 163
|
||||
PhysDevExtTramp 164
|
||||
PhysDevExtTramp 165
|
||||
PhysDevExtTramp 166
|
||||
PhysDevExtTramp 167
|
||||
PhysDevExtTramp 168
|
||||
PhysDevExtTramp 169
|
||||
PhysDevExtTramp 170
|
||||
PhysDevExtTramp 171
|
||||
PhysDevExtTramp 172
|
||||
PhysDevExtTramp 173
|
||||
PhysDevExtTramp 174
|
||||
PhysDevExtTramp 175
|
||||
PhysDevExtTramp 176
|
||||
PhysDevExtTramp 177
|
||||
PhysDevExtTramp 178
|
||||
PhysDevExtTramp 179
|
||||
PhysDevExtTramp 180
|
||||
PhysDevExtTramp 181
|
||||
PhysDevExtTramp 182
|
||||
PhysDevExtTramp 183
|
||||
PhysDevExtTramp 184
|
||||
PhysDevExtTramp 185
|
||||
PhysDevExtTramp 186
|
||||
PhysDevExtTramp 187
|
||||
PhysDevExtTramp 188
|
||||
PhysDevExtTramp 189
|
||||
PhysDevExtTramp 190
|
||||
PhysDevExtTramp 191
|
||||
PhysDevExtTramp 192
|
||||
PhysDevExtTramp 193
|
||||
PhysDevExtTramp 194
|
||||
PhysDevExtTramp 195
|
||||
PhysDevExtTramp 196
|
||||
PhysDevExtTramp 197
|
||||
PhysDevExtTramp 198
|
||||
PhysDevExtTramp 199
|
||||
PhysDevExtTramp 200
|
||||
PhysDevExtTramp 201
|
||||
PhysDevExtTramp 202
|
||||
PhysDevExtTramp 203
|
||||
PhysDevExtTramp 204
|
||||
PhysDevExtTramp 205
|
||||
PhysDevExtTramp 206
|
||||
PhysDevExtTramp 207
|
||||
PhysDevExtTramp 208
|
||||
PhysDevExtTramp 209
|
||||
PhysDevExtTramp 210
|
||||
PhysDevExtTramp 211
|
||||
PhysDevExtTramp 212
|
||||
PhysDevExtTramp 213
|
||||
PhysDevExtTramp 214
|
||||
PhysDevExtTramp 215
|
||||
PhysDevExtTramp 216
|
||||
PhysDevExtTramp 217
|
||||
PhysDevExtTramp 218
|
||||
PhysDevExtTramp 219
|
||||
PhysDevExtTramp 220
|
||||
PhysDevExtTramp 221
|
||||
PhysDevExtTramp 222
|
||||
PhysDevExtTramp 223
|
||||
PhysDevExtTramp 224
|
||||
PhysDevExtTramp 225
|
||||
PhysDevExtTramp 226
|
||||
PhysDevExtTramp 227
|
||||
PhysDevExtTramp 228
|
||||
PhysDevExtTramp 229
|
||||
PhysDevExtTramp 230
|
||||
PhysDevExtTramp 231
|
||||
PhysDevExtTramp 232
|
||||
PhysDevExtTramp 233
|
||||
PhysDevExtTramp 234
|
||||
PhysDevExtTramp 235
|
||||
PhysDevExtTramp 236
|
||||
PhysDevExtTramp 237
|
||||
PhysDevExtTramp 238
|
||||
PhysDevExtTramp 239
|
||||
PhysDevExtTramp 240
|
||||
PhysDevExtTramp 241
|
||||
PhysDevExtTramp 242
|
||||
PhysDevExtTramp 243
|
||||
PhysDevExtTramp 244
|
||||
PhysDevExtTramp 245
|
||||
PhysDevExtTramp 246
|
||||
PhysDevExtTramp 247
|
||||
PhysDevExtTramp 248
|
||||
PhysDevExtTramp 249
|
||||
|
||||
PhysDevExtTermin 0
|
||||
PhysDevExtTermin 1
|
||||
PhysDevExtTermin 2
|
||||
PhysDevExtTermin 3
|
||||
PhysDevExtTermin 4
|
||||
PhysDevExtTermin 5
|
||||
PhysDevExtTermin 6
|
||||
PhysDevExtTermin 7
|
||||
PhysDevExtTermin 8
|
||||
PhysDevExtTermin 9
|
||||
PhysDevExtTermin 10
|
||||
PhysDevExtTermin 11
|
||||
PhysDevExtTermin 12
|
||||
PhysDevExtTermin 13
|
||||
PhysDevExtTermin 14
|
||||
PhysDevExtTermin 15
|
||||
PhysDevExtTermin 16
|
||||
PhysDevExtTermin 17
|
||||
PhysDevExtTermin 18
|
||||
PhysDevExtTermin 19
|
||||
PhysDevExtTermin 20
|
||||
PhysDevExtTermin 21
|
||||
PhysDevExtTermin 22
|
||||
PhysDevExtTermin 23
|
||||
PhysDevExtTermin 24
|
||||
PhysDevExtTermin 25
|
||||
PhysDevExtTermin 26
|
||||
PhysDevExtTermin 27
|
||||
PhysDevExtTermin 28
|
||||
PhysDevExtTermin 29
|
||||
PhysDevExtTermin 30
|
||||
PhysDevExtTermin 31
|
||||
PhysDevExtTermin 32
|
||||
PhysDevExtTermin 33
|
||||
PhysDevExtTermin 34
|
||||
PhysDevExtTermin 35
|
||||
PhysDevExtTermin 36
|
||||
PhysDevExtTermin 37
|
||||
PhysDevExtTermin 38
|
||||
PhysDevExtTermin 39
|
||||
PhysDevExtTermin 40
|
||||
PhysDevExtTermin 41
|
||||
PhysDevExtTermin 42
|
||||
PhysDevExtTermin 43
|
||||
PhysDevExtTermin 44
|
||||
PhysDevExtTermin 45
|
||||
PhysDevExtTermin 46
|
||||
PhysDevExtTermin 47
|
||||
PhysDevExtTermin 48
|
||||
PhysDevExtTermin 49
|
||||
PhysDevExtTermin 50
|
||||
PhysDevExtTermin 51
|
||||
PhysDevExtTermin 52
|
||||
PhysDevExtTermin 53
|
||||
PhysDevExtTermin 54
|
||||
PhysDevExtTermin 55
|
||||
PhysDevExtTermin 56
|
||||
PhysDevExtTermin 57
|
||||
PhysDevExtTermin 58
|
||||
PhysDevExtTermin 59
|
||||
PhysDevExtTermin 60
|
||||
PhysDevExtTermin 61
|
||||
PhysDevExtTermin 62
|
||||
PhysDevExtTermin 63
|
||||
PhysDevExtTermin 64
|
||||
PhysDevExtTermin 65
|
||||
PhysDevExtTermin 66
|
||||
PhysDevExtTermin 67
|
||||
PhysDevExtTermin 68
|
||||
PhysDevExtTermin 69
|
||||
PhysDevExtTermin 70
|
||||
PhysDevExtTermin 71
|
||||
PhysDevExtTermin 72
|
||||
PhysDevExtTermin 73
|
||||
PhysDevExtTermin 74
|
||||
PhysDevExtTermin 75
|
||||
PhysDevExtTermin 76
|
||||
PhysDevExtTermin 77
|
||||
PhysDevExtTermin 78
|
||||
PhysDevExtTermin 79
|
||||
PhysDevExtTermin 80
|
||||
PhysDevExtTermin 81
|
||||
PhysDevExtTermin 82
|
||||
PhysDevExtTermin 83
|
||||
PhysDevExtTermin 84
|
||||
PhysDevExtTermin 85
|
||||
PhysDevExtTermin 86
|
||||
PhysDevExtTermin 87
|
||||
PhysDevExtTermin 88
|
||||
PhysDevExtTermin 89
|
||||
PhysDevExtTermin 90
|
||||
PhysDevExtTermin 91
|
||||
PhysDevExtTermin 92
|
||||
PhysDevExtTermin 93
|
||||
PhysDevExtTermin 94
|
||||
PhysDevExtTermin 95
|
||||
PhysDevExtTermin 96
|
||||
PhysDevExtTermin 97
|
||||
PhysDevExtTermin 98
|
||||
PhysDevExtTermin 99
|
||||
PhysDevExtTermin 100
|
||||
PhysDevExtTermin 101
|
||||
PhysDevExtTermin 102
|
||||
PhysDevExtTermin 103
|
||||
PhysDevExtTermin 104
|
||||
PhysDevExtTermin 105
|
||||
PhysDevExtTermin 106
|
||||
PhysDevExtTermin 107
|
||||
PhysDevExtTermin 108
|
||||
PhysDevExtTermin 109
|
||||
PhysDevExtTermin 110
|
||||
PhysDevExtTermin 111
|
||||
PhysDevExtTermin 112
|
||||
PhysDevExtTermin 113
|
||||
PhysDevExtTermin 114
|
||||
PhysDevExtTermin 115
|
||||
PhysDevExtTermin 116
|
||||
PhysDevExtTermin 117
|
||||
PhysDevExtTermin 118
|
||||
PhysDevExtTermin 119
|
||||
PhysDevExtTermin 120
|
||||
PhysDevExtTermin 121
|
||||
PhysDevExtTermin 122
|
||||
PhysDevExtTermin 123
|
||||
PhysDevExtTermin 124
|
||||
PhysDevExtTermin 125
|
||||
PhysDevExtTermin 126
|
||||
PhysDevExtTermin 127
|
||||
PhysDevExtTermin 128
|
||||
PhysDevExtTermin 129
|
||||
PhysDevExtTermin 130
|
||||
PhysDevExtTermin 131
|
||||
PhysDevExtTermin 132
|
||||
PhysDevExtTermin 133
|
||||
PhysDevExtTermin 134
|
||||
PhysDevExtTermin 135
|
||||
PhysDevExtTermin 136
|
||||
PhysDevExtTermin 137
|
||||
PhysDevExtTermin 138
|
||||
PhysDevExtTermin 139
|
||||
PhysDevExtTermin 140
|
||||
PhysDevExtTermin 141
|
||||
PhysDevExtTermin 142
|
||||
PhysDevExtTermin 143
|
||||
PhysDevExtTermin 144
|
||||
PhysDevExtTermin 145
|
||||
PhysDevExtTermin 146
|
||||
PhysDevExtTermin 147
|
||||
PhysDevExtTermin 148
|
||||
PhysDevExtTermin 149
|
||||
PhysDevExtTermin 150
|
||||
PhysDevExtTermin 151
|
||||
PhysDevExtTermin 152
|
||||
PhysDevExtTermin 153
|
||||
PhysDevExtTermin 154
|
||||
PhysDevExtTermin 155
|
||||
PhysDevExtTermin 156
|
||||
PhysDevExtTermin 157
|
||||
PhysDevExtTermin 158
|
||||
PhysDevExtTermin 159
|
||||
PhysDevExtTermin 160
|
||||
PhysDevExtTermin 161
|
||||
PhysDevExtTermin 162
|
||||
PhysDevExtTermin 163
|
||||
PhysDevExtTermin 164
|
||||
PhysDevExtTermin 165
|
||||
PhysDevExtTermin 166
|
||||
PhysDevExtTermin 167
|
||||
PhysDevExtTermin 168
|
||||
PhysDevExtTermin 169
|
||||
PhysDevExtTermin 170
|
||||
PhysDevExtTermin 171
|
||||
PhysDevExtTermin 172
|
||||
PhysDevExtTermin 173
|
||||
PhysDevExtTermin 174
|
||||
PhysDevExtTermin 175
|
||||
PhysDevExtTermin 176
|
||||
PhysDevExtTermin 177
|
||||
PhysDevExtTermin 178
|
||||
PhysDevExtTermin 179
|
||||
PhysDevExtTermin 180
|
||||
PhysDevExtTermin 181
|
||||
PhysDevExtTermin 182
|
||||
PhysDevExtTermin 183
|
||||
PhysDevExtTermin 184
|
||||
PhysDevExtTermin 185
|
||||
PhysDevExtTermin 186
|
||||
PhysDevExtTermin 187
|
||||
PhysDevExtTermin 188
|
||||
PhysDevExtTermin 189
|
||||
PhysDevExtTermin 190
|
||||
PhysDevExtTermin 191
|
||||
PhysDevExtTermin 192
|
||||
PhysDevExtTermin 193
|
||||
PhysDevExtTermin 194
|
||||
PhysDevExtTermin 195
|
||||
PhysDevExtTermin 196
|
||||
PhysDevExtTermin 197
|
||||
PhysDevExtTermin 198
|
||||
PhysDevExtTermin 199
|
||||
PhysDevExtTermin 200
|
||||
PhysDevExtTermin 201
|
||||
PhysDevExtTermin 202
|
||||
PhysDevExtTermin 203
|
||||
PhysDevExtTermin 204
|
||||
PhysDevExtTermin 205
|
||||
PhysDevExtTermin 206
|
||||
PhysDevExtTermin 207
|
||||
PhysDevExtTermin 208
|
||||
PhysDevExtTermin 209
|
||||
PhysDevExtTermin 210
|
||||
PhysDevExtTermin 211
|
||||
PhysDevExtTermin 212
|
||||
PhysDevExtTermin 213
|
||||
PhysDevExtTermin 214
|
||||
PhysDevExtTermin 215
|
||||
PhysDevExtTermin 216
|
||||
PhysDevExtTermin 217
|
||||
PhysDevExtTermin 218
|
||||
PhysDevExtTermin 219
|
||||
PhysDevExtTermin 220
|
||||
PhysDevExtTermin 221
|
||||
PhysDevExtTermin 222
|
||||
PhysDevExtTermin 223
|
||||
PhysDevExtTermin 224
|
||||
PhysDevExtTermin 225
|
||||
PhysDevExtTermin 226
|
||||
PhysDevExtTermin 227
|
||||
PhysDevExtTermin 228
|
||||
PhysDevExtTermin 229
|
||||
PhysDevExtTermin 230
|
||||
PhysDevExtTermin 231
|
||||
PhysDevExtTermin 232
|
||||
PhysDevExtTermin 233
|
||||
PhysDevExtTermin 234
|
||||
PhysDevExtTermin 235
|
||||
PhysDevExtTermin 236
|
||||
PhysDevExtTermin 237
|
||||
PhysDevExtTermin 238
|
||||
PhysDevExtTermin 239
|
||||
PhysDevExtTermin 240
|
||||
PhysDevExtTermin 241
|
||||
PhysDevExtTermin 242
|
||||
PhysDevExtTermin 243
|
||||
PhysDevExtTermin 244
|
||||
PhysDevExtTermin 245
|
||||
PhysDevExtTermin 246
|
||||
PhysDevExtTermin 247
|
||||
PhysDevExtTermin 248
|
||||
PhysDevExtTermin 249
|
||||
|
||||
DevExtTramp 0
|
||||
DevExtTramp 1
|
||||
DevExtTramp 2
|
||||
DevExtTramp 3
|
||||
DevExtTramp 4
|
||||
DevExtTramp 5
|
||||
DevExtTramp 6
|
||||
DevExtTramp 7
|
||||
DevExtTramp 8
|
||||
DevExtTramp 9
|
||||
DevExtTramp 10
|
||||
DevExtTramp 11
|
||||
DevExtTramp 12
|
||||
DevExtTramp 13
|
||||
DevExtTramp 14
|
||||
DevExtTramp 15
|
||||
DevExtTramp 16
|
||||
DevExtTramp 17
|
||||
DevExtTramp 18
|
||||
DevExtTramp 19
|
||||
DevExtTramp 20
|
||||
DevExtTramp 21
|
||||
DevExtTramp 22
|
||||
DevExtTramp 23
|
||||
DevExtTramp 24
|
||||
DevExtTramp 25
|
||||
DevExtTramp 26
|
||||
DevExtTramp 27
|
||||
DevExtTramp 28
|
||||
DevExtTramp 29
|
||||
DevExtTramp 30
|
||||
DevExtTramp 31
|
||||
DevExtTramp 32
|
||||
DevExtTramp 33
|
||||
DevExtTramp 34
|
||||
DevExtTramp 35
|
||||
DevExtTramp 36
|
||||
DevExtTramp 37
|
||||
DevExtTramp 38
|
||||
DevExtTramp 39
|
||||
DevExtTramp 40
|
||||
DevExtTramp 41
|
||||
DevExtTramp 42
|
||||
DevExtTramp 43
|
||||
DevExtTramp 44
|
||||
DevExtTramp 45
|
||||
DevExtTramp 46
|
||||
DevExtTramp 47
|
||||
DevExtTramp 48
|
||||
DevExtTramp 49
|
||||
DevExtTramp 50
|
||||
DevExtTramp 51
|
||||
DevExtTramp 52
|
||||
DevExtTramp 53
|
||||
DevExtTramp 54
|
||||
DevExtTramp 55
|
||||
DevExtTramp 56
|
||||
DevExtTramp 57
|
||||
DevExtTramp 58
|
||||
DevExtTramp 59
|
||||
DevExtTramp 60
|
||||
DevExtTramp 61
|
||||
DevExtTramp 62
|
||||
DevExtTramp 63
|
||||
DevExtTramp 64
|
||||
DevExtTramp 65
|
||||
DevExtTramp 66
|
||||
DevExtTramp 67
|
||||
DevExtTramp 68
|
||||
DevExtTramp 69
|
||||
DevExtTramp 70
|
||||
DevExtTramp 71
|
||||
DevExtTramp 72
|
||||
DevExtTramp 73
|
||||
DevExtTramp 74
|
||||
DevExtTramp 75
|
||||
DevExtTramp 76
|
||||
DevExtTramp 77
|
||||
DevExtTramp 78
|
||||
DevExtTramp 79
|
||||
DevExtTramp 80
|
||||
DevExtTramp 81
|
||||
DevExtTramp 82
|
||||
DevExtTramp 83
|
||||
DevExtTramp 84
|
||||
DevExtTramp 85
|
||||
DevExtTramp 86
|
||||
DevExtTramp 87
|
||||
DevExtTramp 88
|
||||
DevExtTramp 89
|
||||
DevExtTramp 90
|
||||
DevExtTramp 91
|
||||
DevExtTramp 92
|
||||
DevExtTramp 93
|
||||
DevExtTramp 94
|
||||
DevExtTramp 95
|
||||
DevExtTramp 96
|
||||
DevExtTramp 97
|
||||
DevExtTramp 98
|
||||
DevExtTramp 99
|
||||
DevExtTramp 100
|
||||
DevExtTramp 101
|
||||
DevExtTramp 102
|
||||
DevExtTramp 103
|
||||
DevExtTramp 104
|
||||
DevExtTramp 105
|
||||
DevExtTramp 106
|
||||
DevExtTramp 107
|
||||
DevExtTramp 108
|
||||
DevExtTramp 109
|
||||
DevExtTramp 110
|
||||
DevExtTramp 111
|
||||
DevExtTramp 112
|
||||
DevExtTramp 113
|
||||
DevExtTramp 114
|
||||
DevExtTramp 115
|
||||
DevExtTramp 116
|
||||
DevExtTramp 117
|
||||
DevExtTramp 118
|
||||
DevExtTramp 119
|
||||
DevExtTramp 120
|
||||
DevExtTramp 121
|
||||
DevExtTramp 122
|
||||
DevExtTramp 123
|
||||
DevExtTramp 124
|
||||
DevExtTramp 125
|
||||
DevExtTramp 126
|
||||
DevExtTramp 127
|
||||
DevExtTramp 128
|
||||
DevExtTramp 129
|
||||
DevExtTramp 130
|
||||
DevExtTramp 131
|
||||
DevExtTramp 132
|
||||
DevExtTramp 133
|
||||
DevExtTramp 134
|
||||
DevExtTramp 135
|
||||
DevExtTramp 136
|
||||
DevExtTramp 137
|
||||
DevExtTramp 138
|
||||
DevExtTramp 139
|
||||
DevExtTramp 140
|
||||
DevExtTramp 141
|
||||
DevExtTramp 142
|
||||
DevExtTramp 143
|
||||
DevExtTramp 144
|
||||
DevExtTramp 145
|
||||
DevExtTramp 146
|
||||
DevExtTramp 147
|
||||
DevExtTramp 148
|
||||
DevExtTramp 149
|
||||
DevExtTramp 150
|
||||
DevExtTramp 151
|
||||
DevExtTramp 152
|
||||
DevExtTramp 153
|
||||
DevExtTramp 154
|
||||
DevExtTramp 155
|
||||
DevExtTramp 156
|
||||
DevExtTramp 157
|
||||
DevExtTramp 158
|
||||
DevExtTramp 159
|
||||
DevExtTramp 160
|
||||
DevExtTramp 161
|
||||
DevExtTramp 162
|
||||
DevExtTramp 163
|
||||
DevExtTramp 164
|
||||
DevExtTramp 165
|
||||
DevExtTramp 166
|
||||
DevExtTramp 167
|
||||
DevExtTramp 168
|
||||
DevExtTramp 169
|
||||
DevExtTramp 170
|
||||
DevExtTramp 171
|
||||
DevExtTramp 172
|
||||
DevExtTramp 173
|
||||
DevExtTramp 174
|
||||
DevExtTramp 175
|
||||
DevExtTramp 176
|
||||
DevExtTramp 177
|
||||
DevExtTramp 178
|
||||
DevExtTramp 179
|
||||
DevExtTramp 180
|
||||
DevExtTramp 181
|
||||
DevExtTramp 182
|
||||
DevExtTramp 183
|
||||
DevExtTramp 184
|
||||
DevExtTramp 185
|
||||
DevExtTramp 186
|
||||
DevExtTramp 187
|
||||
DevExtTramp 188
|
||||
DevExtTramp 189
|
||||
DevExtTramp 190
|
||||
DevExtTramp 191
|
||||
DevExtTramp 192
|
||||
DevExtTramp 193
|
||||
DevExtTramp 194
|
||||
DevExtTramp 195
|
||||
DevExtTramp 196
|
||||
DevExtTramp 197
|
||||
DevExtTramp 198
|
||||
DevExtTramp 199
|
||||
DevExtTramp 200
|
||||
DevExtTramp 201
|
||||
DevExtTramp 202
|
||||
DevExtTramp 203
|
||||
DevExtTramp 204
|
||||
DevExtTramp 205
|
||||
DevExtTramp 206
|
||||
DevExtTramp 207
|
||||
DevExtTramp 208
|
||||
DevExtTramp 209
|
||||
DevExtTramp 210
|
||||
DevExtTramp 211
|
||||
DevExtTramp 212
|
||||
DevExtTramp 213
|
||||
DevExtTramp 214
|
||||
DevExtTramp 215
|
||||
DevExtTramp 216
|
||||
DevExtTramp 217
|
||||
DevExtTramp 218
|
||||
DevExtTramp 219
|
||||
DevExtTramp 220
|
||||
DevExtTramp 221
|
||||
DevExtTramp 222
|
||||
DevExtTramp 223
|
||||
DevExtTramp 224
|
||||
DevExtTramp 225
|
||||
DevExtTramp 226
|
||||
DevExtTramp 227
|
||||
DevExtTramp 228
|
||||
DevExtTramp 229
|
||||
DevExtTramp 230
|
||||
DevExtTramp 231
|
||||
DevExtTramp 232
|
||||
DevExtTramp 233
|
||||
DevExtTramp 234
|
||||
DevExtTramp 235
|
||||
DevExtTramp 236
|
||||
DevExtTramp 237
|
||||
DevExtTramp 238
|
||||
DevExtTramp 239
|
||||
DevExtTramp 240
|
||||
DevExtTramp 241
|
||||
DevExtTramp 242
|
||||
DevExtTramp 243
|
||||
DevExtTramp 244
|
||||
DevExtTramp 245
|
||||
DevExtTramp 246
|
||||
DevExtTramp 247
|
||||
DevExtTramp 248
|
||||
DevExtTramp 249
|
883
thirdparty/vulkan/loader/unknown_ext_chain_masm.asm
vendored
883
thirdparty/vulkan/loader/unknown_ext_chain_masm.asm
vendored
|
@ -1,883 +0,0 @@
|
|||
;
|
||||
; Copyright (c) 2017 The Khronos Group Inc.
|
||||
; Copyright (c) 2017 Valve Corporation
|
||||
; Copyright (c) 2017 LunarG, Inc.
|
||||
;
|
||||
; Licensed under the Apache License, Version 2.0 (the "License");
|
||||
; you may not use this file except in compliance with the License.
|
||||
; You may obtain a copy of the License at
|
||||
;
|
||||
; http://www.apache.org/licenses/LICENSE-2.0
|
||||
;
|
||||
; Unless required by applicable law or agreed to in writing, software
|
||||
; distributed under the License is distributed on an "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
; See the License for the specific language governing permissions and
|
||||
; limitations under the License.
|
||||
;
|
||||
; Author: Lenny Komow <lenny@lunarg.com>
|
||||
;
|
||||
|
||||
; This code is used to pass on device (including physical device) extensions through the call chain. It must do this without
|
||||
; creating a stack frame, because the actual parameters of the call are not known. Since the first parameter is known to be a
|
||||
; VkPhysicalDevice or a dispatchable object it can unwrap the object, possibly overwriting the wrapped physical device, and then
|
||||
; jump to the next function in the call chain
|
||||
|
||||
; Codegen defines a number of values, chiefly offsets of members within structs and sizes of data types within gen_defines.asm.
|
||||
; Struct member offsets are defined in the format "XX_OFFSET_YY" where XX indicates the member within the struct and YY indicates
|
||||
; the struct type that it is a member of. Data type sizes are defined in the format "XX_SIZE" where XX indicates the data type.
|
||||
INCLUDE gen_defines.asm
|
||||
|
||||
; 64-bit values and macro
|
||||
IFDEF rax
|
||||
|
||||
PhysDevExtTramp macro num:req
|
||||
public vkPhysDevExtTramp&num&
|
||||
vkPhysDevExtTramp&num&:
|
||||
mov rax, qword ptr [rcx] ; Dereference the wrapped VkPhysicalDevice to get the dispatch table in rax
|
||||
mov rcx, qword ptr [rcx + PHYS_DEV_OFFSET_PHYS_DEV_TRAMP] ; Load the unwrapped VkPhysicalDevice into rcx
|
||||
jmp qword ptr [rax + (PHYS_DEV_OFFSET_INST_DISPATCH + (PTR_SIZE * num))] ; Jump to the next function in the chain, preserving the args in other registers
|
||||
endm
|
||||
|
||||
PhysDevExtTermin macro num
|
||||
public vkPhysDevExtTermin&num&
|
||||
vkPhysDevExtTermin&num&:
|
||||
mov rax, qword ptr [rcx + ICD_TERM_OFFSET_PHYS_DEV_TERM] ; Store the loader_icd_term* in rax
|
||||
cmp qword ptr [rax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * num))], 0 ; Check if the next function in the chain is NULL
|
||||
je terminError&num& ; Go to the error section if it is NULL
|
||||
mov rcx, qword ptr [rcx + PHYS_DEV_OFFSET_PHYS_DEV_TERM] ; Load the unwrapped VkPhysicalDevice into the first arg
|
||||
jmp qword ptr [rax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * num))] ; Jump to the next function in the chain
|
||||
terminError&num&:
|
||||
sub rsp, 56 ; Create the stack frame
|
||||
mov rcx, qword ptr [rax + INSTANCE_OFFSET_ICD_TERM] ; Load the loader_instance into rcx (first arg)
|
||||
mov rax, qword ptr [rcx + (HASH_OFFSET_INSTANCE + (HASH_SIZE * num) + FUNC_NAME_OFFSET_HASH)] ; Load the func name into rax
|
||||
lea r9, termin_error_string ; Load the error string into r9 (fourth arg)
|
||||
xor r8d, r8d ; Set r8 to zero (third arg)
|
||||
mov qword ptr [rsp + 32], rax ; Move the func name onto the stack (fifth arg)
|
||||
lea edx, [r8 + VK_DEBUG_REPORT_ERROR_BIT_EXT] ; Write the error logging bit to rdx (second arg)
|
||||
call loader_log ; Log the error message before we crash
|
||||
add rsp, 56 ; Clean up the stack frame
|
||||
mov rax, 0
|
||||
jmp rax ; Crash intentionally by jumping to address zero
|
||||
endm
|
||||
|
||||
DevExtTramp macro num
|
||||
public vkdev_ext&num&
|
||||
vkdev_ext&num&:
|
||||
mov rax, qword ptr [rcx] ; Dereference the handle to get the dispatch table
|
||||
jmp qword ptr [rax + (EXT_OFFSET_DEVICE_DISPATCH + (PTR_SIZE * num))] ; Jump to the appropriate call chain
|
||||
endm
|
||||
|
||||
; 32-bit values and macro
|
||||
ELSE
|
||||
|
||||
PhysDevExtTramp macro num
|
||||
public _vkPhysDevExtTramp&num&@4
|
||||
_vkPhysDevExtTramp&num&@4:
|
||||
mov eax, dword ptr [esp + 4] ; Load the wrapped VkPhysicalDevice into eax
|
||||
mov ecx, [eax + PHYS_DEV_OFFSET_PHYS_DEV_TRAMP] ; Load the unwrapped VkPhysicalDevice into ecx
|
||||
mov [esp + 4], ecx ; Overwrite the wrapped VkPhysicalDevice with the unwrapped one (on the stack)
|
||||
mov eax, [eax] ; Dereference the wrapped VkPhysicalDevice to get the dispatch table in eax
|
||||
jmp dword ptr [eax + (PHYS_DEV_OFFSET_INST_DISPATCH + (PTR_SIZE * num))] ; Jump to the next function in the chain, preserving the args on the stack
|
||||
endm
|
||||
|
||||
PhysDevExtTermin macro num
|
||||
public _vkPhysDevExtTermin&num&@4
|
||||
_vkPhysDevExtTermin&num&@4:
|
||||
mov ecx, dword ptr [esp + 4] ; Move the wrapped VkPhysicalDevice into ecx
|
||||
mov eax, dword ptr [ecx + ICD_TERM_OFFSET_PHYS_DEV_TERM] ; Store the loader_icd_term* in eax
|
||||
cmp dword ptr [eax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * num))], 0 ; Check if the next function in the chain is NULL
|
||||
je terminError&num& ; Go to the error section if it is NULL
|
||||
mov ecx, dword ptr [ecx + PHYS_DEV_OFFSET_PHYS_DEV_TERM] ; Unwrap the VkPhysicalDevice in ecx
|
||||
mov dword ptr [esp + 4], ecx ; Copy the unwrapped VkPhysicalDevice into the first arg
|
||||
jmp dword ptr [eax + (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * num))] ; Jump to the next function in the chain
|
||||
terminError&num&:
|
||||
mov eax, dword ptr [eax + INSTANCE_OFFSET_ICD_TERM] ; Load the loader_instance into eax
|
||||
push dword ptr [eax + (HASH_OFFSET_INSTANCE + (HASH_SIZE * num) + FUNC_NAME_OFFSET_HASH)] ; Push the func name (fifth arg)
|
||||
push offset termin_error_string ; Push the error string (fourth arg)
|
||||
push 0 ; Push zero (third arg)
|
||||
push VK_DEBUG_REPORT_ERROR_BIT_EXT ; Push the error logging bit (second arg)
|
||||
push eax ; Push the loader_instance (first arg)
|
||||
call _loader_log ; Log the error message before we crash
|
||||
add esp, 20 ; Clean up the args
|
||||
mov eax, 0
|
||||
jmp eax ; Crash intentionally by jumping to address zero
|
||||
endm
|
||||
|
||||
DevExtTramp macro num
|
||||
public _vkdev_ext&num&@4
|
||||
_vkdev_ext&num&@4:
|
||||
mov eax, dword ptr [esp + 4] ; Dereference the handle to get the dispatch table
|
||||
jmp dword ptr [eax + (EXT_OFFSET_DEVICE_DISPATCH + (PTR_SIZE * num))] ; Jump to the appropriate call chain
|
||||
endm
|
||||
|
||||
; This is also needed for 32-bit only
|
||||
.model flat
|
||||
|
||||
ENDIF
|
||||
|
||||
.const
|
||||
termin_error_string db 'Extension %s not supported for this physical device', 0
|
||||
|
||||
.code
|
||||
|
||||
IFDEF rax
|
||||
extrn loader_log:near
|
||||
ELSE
|
||||
extrn _loader_log:near
|
||||
ENDIF
|
||||
|
||||
PhysDevExtTramp 0
|
||||
PhysDevExtTramp 1
|
||||
PhysDevExtTramp 2
|
||||
PhysDevExtTramp 3
|
||||
PhysDevExtTramp 4
|
||||
PhysDevExtTramp 5
|
||||
PhysDevExtTramp 6
|
||||
PhysDevExtTramp 7
|
||||
PhysDevExtTramp 8
|
||||
PhysDevExtTramp 9
|
||||
PhysDevExtTramp 10
|
||||
PhysDevExtTramp 11
|
||||
PhysDevExtTramp 12
|
||||
PhysDevExtTramp 13
|
||||
PhysDevExtTramp 14
|
||||
PhysDevExtTramp 15
|
||||
PhysDevExtTramp 16
|
||||
PhysDevExtTramp 17
|
||||
PhysDevExtTramp 18
|
||||
PhysDevExtTramp 19
|
||||
PhysDevExtTramp 20
|
||||
PhysDevExtTramp 21
|
||||
PhysDevExtTramp 22
|
||||
PhysDevExtTramp 23
|
||||
PhysDevExtTramp 24
|
||||
PhysDevExtTramp 25
|
||||
PhysDevExtTramp 26
|
||||
PhysDevExtTramp 27
|
||||
PhysDevExtTramp 28
|
||||
PhysDevExtTramp 29
|
||||
PhysDevExtTramp 30
|
||||
PhysDevExtTramp 31
|
||||
PhysDevExtTramp 32
|
||||
PhysDevExtTramp 33
|
||||
PhysDevExtTramp 34
|
||||
PhysDevExtTramp 35
|
||||
PhysDevExtTramp 36
|
||||
PhysDevExtTramp 37
|
||||
PhysDevExtTramp 38
|
||||
PhysDevExtTramp 39
|
||||
PhysDevExtTramp 40
|
||||
PhysDevExtTramp 41
|
||||
PhysDevExtTramp 42
|
||||
PhysDevExtTramp 43
|
||||
PhysDevExtTramp 44
|
||||
PhysDevExtTramp 45
|
||||
PhysDevExtTramp 46
|
||||
PhysDevExtTramp 47
|
||||
PhysDevExtTramp 48
|
||||
PhysDevExtTramp 49
|
||||
PhysDevExtTramp 50
|
||||
PhysDevExtTramp 51
|
||||
PhysDevExtTramp 52
|
||||
PhysDevExtTramp 53
|
||||
PhysDevExtTramp 54
|
||||
PhysDevExtTramp 55
|
||||
PhysDevExtTramp 56
|
||||
PhysDevExtTramp 57
|
||||
PhysDevExtTramp 58
|
||||
PhysDevExtTramp 59
|
||||
PhysDevExtTramp 60
|
||||
PhysDevExtTramp 61
|
||||
PhysDevExtTramp 62
|
||||
PhysDevExtTramp 63
|
||||
PhysDevExtTramp 64
|
||||
PhysDevExtTramp 65
|
||||
PhysDevExtTramp 66
|
||||
PhysDevExtTramp 67
|
||||
PhysDevExtTramp 68
|
||||
PhysDevExtTramp 69
|
||||
PhysDevExtTramp 70
|
||||
PhysDevExtTramp 71
|
||||
PhysDevExtTramp 72
|
||||
PhysDevExtTramp 73
|
||||
PhysDevExtTramp 74
|
||||
PhysDevExtTramp 75
|
||||
PhysDevExtTramp 76
|
||||
PhysDevExtTramp 77
|
||||
PhysDevExtTramp 78
|
||||
PhysDevExtTramp 79
|
||||
PhysDevExtTramp 80
|
||||
PhysDevExtTramp 81
|
||||
PhysDevExtTramp 82
|
||||
PhysDevExtTramp 83
|
||||
PhysDevExtTramp 84
|
||||
PhysDevExtTramp 85
|
||||
PhysDevExtTramp 86
|
||||
PhysDevExtTramp 87
|
||||
PhysDevExtTramp 88
|
||||
PhysDevExtTramp 89
|
||||
PhysDevExtTramp 90
|
||||
PhysDevExtTramp 91
|
||||
PhysDevExtTramp 92
|
||||
PhysDevExtTramp 93
|
||||
PhysDevExtTramp 94
|
||||
PhysDevExtTramp 95
|
||||
PhysDevExtTramp 96
|
||||
PhysDevExtTramp 97
|
||||
PhysDevExtTramp 98
|
||||
PhysDevExtTramp 99
|
||||
PhysDevExtTramp 100
|
||||
PhysDevExtTramp 101
|
||||
PhysDevExtTramp 102
|
||||
PhysDevExtTramp 103
|
||||
PhysDevExtTramp 104
|
||||
PhysDevExtTramp 105
|
||||
PhysDevExtTramp 106
|
||||
PhysDevExtTramp 107
|
||||
PhysDevExtTramp 108
|
||||
PhysDevExtTramp 109
|
||||
PhysDevExtTramp 110
|
||||
PhysDevExtTramp 111
|
||||
PhysDevExtTramp 112
|
||||
PhysDevExtTramp 113
|
||||
PhysDevExtTramp 114
|
||||
PhysDevExtTramp 115
|
||||
PhysDevExtTramp 116
|
||||
PhysDevExtTramp 117
|
||||
PhysDevExtTramp 118
|
||||
PhysDevExtTramp 119
|
||||
PhysDevExtTramp 120
|
||||
PhysDevExtTramp 121
|
||||
PhysDevExtTramp 122
|
||||
PhysDevExtTramp 123
|
||||
PhysDevExtTramp 124
|
||||
PhysDevExtTramp 125
|
||||
PhysDevExtTramp 126
|
||||
PhysDevExtTramp 127
|
||||
PhysDevExtTramp 128
|
||||
PhysDevExtTramp 129
|
||||
PhysDevExtTramp 130
|
||||
PhysDevExtTramp 131
|
||||
PhysDevExtTramp 132
|
||||
PhysDevExtTramp 133
|
||||
PhysDevExtTramp 134
|
||||
PhysDevExtTramp 135
|
||||
PhysDevExtTramp 136
|
||||
PhysDevExtTramp 137
|
||||
PhysDevExtTramp 138
|
||||
PhysDevExtTramp 139
|
||||
PhysDevExtTramp 140
|
||||
PhysDevExtTramp 141
|
||||
PhysDevExtTramp 142
|
||||
PhysDevExtTramp 143
|
||||
PhysDevExtTramp 144
|
||||
PhysDevExtTramp 145
|
||||
PhysDevExtTramp 146
|
||||
PhysDevExtTramp 147
|
||||
PhysDevExtTramp 148
|
||||
PhysDevExtTramp 149
|
||||
PhysDevExtTramp 150
|
||||
PhysDevExtTramp 151
|
||||
PhysDevExtTramp 152
|
||||
PhysDevExtTramp 153
|
||||
PhysDevExtTramp 154
|
||||
PhysDevExtTramp 155
|
||||
PhysDevExtTramp 156
|
||||
PhysDevExtTramp 157
|
||||
PhysDevExtTramp 158
|
||||
PhysDevExtTramp 159
|
||||
PhysDevExtTramp 160
|
||||
PhysDevExtTramp 161
|
||||
PhysDevExtTramp 162
|
||||
PhysDevExtTramp 163
|
||||
PhysDevExtTramp 164
|
||||
PhysDevExtTramp 165
|
||||
PhysDevExtTramp 166
|
||||
PhysDevExtTramp 167
|
||||
PhysDevExtTramp 168
|
||||
PhysDevExtTramp 169
|
||||
PhysDevExtTramp 170
|
||||
PhysDevExtTramp 171
|
||||
PhysDevExtTramp 172
|
||||
PhysDevExtTramp 173
|
||||
PhysDevExtTramp 174
|
||||
PhysDevExtTramp 175
|
||||
PhysDevExtTramp 176
|
||||
PhysDevExtTramp 177
|
||||
PhysDevExtTramp 178
|
||||
PhysDevExtTramp 179
|
||||
PhysDevExtTramp 180
|
||||
PhysDevExtTramp 181
|
||||
PhysDevExtTramp 182
|
||||
PhysDevExtTramp 183
|
||||
PhysDevExtTramp 184
|
||||
PhysDevExtTramp 185
|
||||
PhysDevExtTramp 186
|
||||
PhysDevExtTramp 187
|
||||
PhysDevExtTramp 188
|
||||
PhysDevExtTramp 189
|
||||
PhysDevExtTramp 190
|
||||
PhysDevExtTramp 191
|
||||
PhysDevExtTramp 192
|
||||
PhysDevExtTramp 193
|
||||
PhysDevExtTramp 194
|
||||
PhysDevExtTramp 195
|
||||
PhysDevExtTramp 196
|
||||
PhysDevExtTramp 197
|
||||
PhysDevExtTramp 198
|
||||
PhysDevExtTramp 199
|
||||
PhysDevExtTramp 200
|
||||
PhysDevExtTramp 201
|
||||
PhysDevExtTramp 202
|
||||
PhysDevExtTramp 203
|
||||
PhysDevExtTramp 204
|
||||
PhysDevExtTramp 205
|
||||
PhysDevExtTramp 206
|
||||
PhysDevExtTramp 207
|
||||
PhysDevExtTramp 208
|
||||
PhysDevExtTramp 209
|
||||
PhysDevExtTramp 210
|
||||
PhysDevExtTramp 211
|
||||
PhysDevExtTramp 212
|
||||
PhysDevExtTramp 213
|
||||
PhysDevExtTramp 214
|
||||
PhysDevExtTramp 215
|
||||
PhysDevExtTramp 216
|
||||
PhysDevExtTramp 217
|
||||
PhysDevExtTramp 218
|
||||
PhysDevExtTramp 219
|
||||
PhysDevExtTramp 220
|
||||
PhysDevExtTramp 221
|
||||
PhysDevExtTramp 222
|
||||
PhysDevExtTramp 223
|
||||
PhysDevExtTramp 224
|
||||
PhysDevExtTramp 225
|
||||
PhysDevExtTramp 226
|
||||
PhysDevExtTramp 227
|
||||
PhysDevExtTramp 228
|
||||
PhysDevExtTramp 229
|
||||
PhysDevExtTramp 230
|
||||
PhysDevExtTramp 231
|
||||
PhysDevExtTramp 232
|
||||
PhysDevExtTramp 233
|
||||
PhysDevExtTramp 234
|
||||
PhysDevExtTramp 235
|
||||
PhysDevExtTramp 236
|
||||
PhysDevExtTramp 237
|
||||
PhysDevExtTramp 238
|
||||
PhysDevExtTramp 239
|
||||
PhysDevExtTramp 240
|
||||
PhysDevExtTramp 241
|
||||
PhysDevExtTramp 242
|
||||
PhysDevExtTramp 243
|
||||
PhysDevExtTramp 244
|
||||
PhysDevExtTramp 245
|
||||
PhysDevExtTramp 246
|
||||
PhysDevExtTramp 247
|
||||
PhysDevExtTramp 248
|
||||
PhysDevExtTramp 249
|
||||
|
||||
PhysDevExtTermin 0
|
||||
PhysDevExtTermin 1
|
||||
PhysDevExtTermin 2
|
||||
PhysDevExtTermin 3
|
||||
PhysDevExtTermin 4
|
||||
PhysDevExtTermin 5
|
||||
PhysDevExtTermin 6
|
||||
PhysDevExtTermin 7
|
||||
PhysDevExtTermin 8
|
||||
PhysDevExtTermin 9
|
||||
PhysDevExtTermin 10
|
||||
PhysDevExtTermin 11
|
||||
PhysDevExtTermin 12
|
||||
PhysDevExtTermin 13
|
||||
PhysDevExtTermin 14
|
||||
PhysDevExtTermin 15
|
||||
PhysDevExtTermin 16
|
||||
PhysDevExtTermin 17
|
||||
PhysDevExtTermin 18
|
||||
PhysDevExtTermin 19
|
||||
PhysDevExtTermin 20
|
||||
PhysDevExtTermin 21
|
||||
PhysDevExtTermin 22
|
||||
PhysDevExtTermin 23
|
||||
PhysDevExtTermin 24
|
||||
PhysDevExtTermin 25
|
||||
PhysDevExtTermin 26
|
||||
PhysDevExtTermin 27
|
||||
PhysDevExtTermin 28
|
||||
PhysDevExtTermin 29
|
||||
PhysDevExtTermin 30
|
||||
PhysDevExtTermin 31
|
||||
PhysDevExtTermin 32
|
||||
PhysDevExtTermin 33
|
||||
PhysDevExtTermin 34
|
||||
PhysDevExtTermin 35
|
||||
PhysDevExtTermin 36
|
||||
PhysDevExtTermin 37
|
||||
PhysDevExtTermin 38
|
||||
PhysDevExtTermin 39
|
||||
PhysDevExtTermin 40
|
||||
PhysDevExtTermin 41
|
||||
PhysDevExtTermin 42
|
||||
PhysDevExtTermin 43
|
||||
PhysDevExtTermin 44
|
||||
PhysDevExtTermin 45
|
||||
PhysDevExtTermin 46
|
||||
PhysDevExtTermin 47
|
||||
PhysDevExtTermin 48
|
||||
PhysDevExtTermin 49
|
||||
PhysDevExtTermin 50
|
||||
PhysDevExtTermin 51
|
||||
PhysDevExtTermin 52
|
||||
PhysDevExtTermin 53
|
||||
PhysDevExtTermin 54
|
||||
PhysDevExtTermin 55
|
||||
PhysDevExtTermin 56
|
||||
PhysDevExtTermin 57
|
||||
PhysDevExtTermin 58
|
||||
PhysDevExtTermin 59
|
||||
PhysDevExtTermin 60
|
||||
PhysDevExtTermin 61
|
||||
PhysDevExtTermin 62
|
||||
PhysDevExtTermin 63
|
||||
PhysDevExtTermin 64
|
||||
PhysDevExtTermin 65
|
||||
PhysDevExtTermin 66
|
||||
PhysDevExtTermin 67
|
||||
PhysDevExtTermin 68
|
||||
PhysDevExtTermin 69
|
||||
PhysDevExtTermin 70
|
||||
PhysDevExtTermin 71
|
||||
PhysDevExtTermin 72
|
||||
PhysDevExtTermin 73
|
||||
PhysDevExtTermin 74
|
||||
PhysDevExtTermin 75
|
||||
PhysDevExtTermin 76
|
||||
PhysDevExtTermin 77
|
||||
PhysDevExtTermin 78
|
||||
PhysDevExtTermin 79
|
||||
PhysDevExtTermin 80
|
||||
PhysDevExtTermin 81
|
||||
PhysDevExtTermin 82
|
||||
PhysDevExtTermin 83
|
||||
PhysDevExtTermin 84
|
||||
PhysDevExtTermin 85
|
||||
PhysDevExtTermin 86
|
||||
PhysDevExtTermin 87
|
||||
PhysDevExtTermin 88
|
||||
PhysDevExtTermin 89
|
||||
PhysDevExtTermin 90
|
||||
PhysDevExtTermin 91
|
||||
PhysDevExtTermin 92
|
||||
PhysDevExtTermin 93
|
||||
PhysDevExtTermin 94
|
||||
PhysDevExtTermin 95
|
||||
PhysDevExtTermin 96
|
||||
PhysDevExtTermin 97
|
||||
PhysDevExtTermin 98
|
||||
PhysDevExtTermin 99
|
||||
PhysDevExtTermin 100
|
||||
PhysDevExtTermin 101
|
||||
PhysDevExtTermin 102
|
||||
PhysDevExtTermin 103
|
||||
PhysDevExtTermin 104
|
||||
PhysDevExtTermin 105
|
||||
PhysDevExtTermin 106
|
||||
PhysDevExtTermin 107
|
||||
PhysDevExtTermin 108
|
||||
PhysDevExtTermin 109
|
||||
PhysDevExtTermin 110
|
||||
PhysDevExtTermin 111
|
||||
PhysDevExtTermin 112
|
||||
PhysDevExtTermin 113
|
||||
PhysDevExtTermin 114
|
||||
PhysDevExtTermin 115
|
||||
PhysDevExtTermin 116
|
||||
PhysDevExtTermin 117
|
||||
PhysDevExtTermin 118
|
||||
PhysDevExtTermin 119
|
||||
PhysDevExtTermin 120
|
||||
PhysDevExtTermin 121
|
||||
PhysDevExtTermin 122
|
||||
PhysDevExtTermin 123
|
||||
PhysDevExtTermin 124
|
||||
PhysDevExtTermin 125
|
||||
PhysDevExtTermin 126
|
||||
PhysDevExtTermin 127
|
||||
PhysDevExtTermin 128
|
||||
PhysDevExtTermin 129
|
||||
PhysDevExtTermin 130
|
||||
PhysDevExtTermin 131
|
||||
PhysDevExtTermin 132
|
||||
PhysDevExtTermin 133
|
||||
PhysDevExtTermin 134
|
||||
PhysDevExtTermin 135
|
||||
PhysDevExtTermin 136
|
||||
PhysDevExtTermin 137
|
||||
PhysDevExtTermin 138
|
||||
PhysDevExtTermin 139
|
||||
PhysDevExtTermin 140
|
||||
PhysDevExtTermin 141
|
||||
PhysDevExtTermin 142
|
||||
PhysDevExtTermin 143
|
||||
PhysDevExtTermin 144
|
||||
PhysDevExtTermin 145
|
||||
PhysDevExtTermin 146
|
||||
PhysDevExtTermin 147
|
||||
PhysDevExtTermin 148
|
||||
PhysDevExtTermin 149
|
||||
PhysDevExtTermin 150
|
||||
PhysDevExtTermin 151
|
||||
PhysDevExtTermin 152
|
||||
PhysDevExtTermin 153
|
||||
PhysDevExtTermin 154
|
||||
PhysDevExtTermin 155
|
||||
PhysDevExtTermin 156
|
||||
PhysDevExtTermin 157
|
||||
PhysDevExtTermin 158
|
||||
PhysDevExtTermin 159
|
||||
PhysDevExtTermin 160
|
||||
PhysDevExtTermin 161
|
||||
PhysDevExtTermin 162
|
||||
PhysDevExtTermin 163
|
||||
PhysDevExtTermin 164
|
||||
PhysDevExtTermin 165
|
||||
PhysDevExtTermin 166
|
||||
PhysDevExtTermin 167
|
||||
PhysDevExtTermin 168
|
||||
PhysDevExtTermin 169
|
||||
PhysDevExtTermin 170
|
||||
PhysDevExtTermin 171
|
||||
PhysDevExtTermin 172
|
||||
PhysDevExtTermin 173
|
||||
PhysDevExtTermin 174
|
||||
PhysDevExtTermin 175
|
||||
PhysDevExtTermin 176
|
||||
PhysDevExtTermin 177
|
||||
PhysDevExtTermin 178
|
||||
PhysDevExtTermin 179
|
||||
PhysDevExtTermin 180
|
||||
PhysDevExtTermin 181
|
||||
PhysDevExtTermin 182
|
||||
PhysDevExtTermin 183
|
||||
PhysDevExtTermin 184
|
||||
PhysDevExtTermin 185
|
||||
PhysDevExtTermin 186
|
||||
PhysDevExtTermin 187
|
||||
PhysDevExtTermin 188
|
||||
PhysDevExtTermin 189
|
||||
PhysDevExtTermin 190
|
||||
PhysDevExtTermin 191
|
||||
PhysDevExtTermin 192
|
||||
PhysDevExtTermin 193
|
||||
PhysDevExtTermin 194
|
||||
PhysDevExtTermin 195
|
||||
PhysDevExtTermin 196
|
||||
PhysDevExtTermin 197
|
||||
PhysDevExtTermin 198
|
||||
PhysDevExtTermin 199
|
||||
PhysDevExtTermin 200
|
||||
PhysDevExtTermin 201
|
||||
PhysDevExtTermin 202
|
||||
PhysDevExtTermin 203
|
||||
PhysDevExtTermin 204
|
||||
PhysDevExtTermin 205
|
||||
PhysDevExtTermin 206
|
||||
PhysDevExtTermin 207
|
||||
PhysDevExtTermin 208
|
||||
PhysDevExtTermin 209
|
||||
PhysDevExtTermin 210
|
||||
PhysDevExtTermin 211
|
||||
PhysDevExtTermin 212
|
||||
PhysDevExtTermin 213
|
||||
PhysDevExtTermin 214
|
||||
PhysDevExtTermin 215
|
||||
PhysDevExtTermin 216
|
||||
PhysDevExtTermin 217
|
||||
PhysDevExtTermin 218
|
||||
PhysDevExtTermin 219
|
||||
PhysDevExtTermin 220
|
||||
PhysDevExtTermin 221
|
||||
PhysDevExtTermin 222
|
||||
PhysDevExtTermin 223
|
||||
PhysDevExtTermin 224
|
||||
PhysDevExtTermin 225
|
||||
PhysDevExtTermin 226
|
||||
PhysDevExtTermin 227
|
||||
PhysDevExtTermin 228
|
||||
PhysDevExtTermin 229
|
||||
PhysDevExtTermin 230
|
||||
PhysDevExtTermin 231
|
||||
PhysDevExtTermin 232
|
||||
PhysDevExtTermin 233
|
||||
PhysDevExtTermin 234
|
||||
PhysDevExtTermin 235
|
||||
PhysDevExtTermin 236
|
||||
PhysDevExtTermin 237
|
||||
PhysDevExtTermin 238
|
||||
PhysDevExtTermin 239
|
||||
PhysDevExtTermin 240
|
||||
PhysDevExtTermin 241
|
||||
PhysDevExtTermin 242
|
||||
PhysDevExtTermin 243
|
||||
PhysDevExtTermin 244
|
||||
PhysDevExtTermin 245
|
||||
PhysDevExtTermin 246
|
||||
PhysDevExtTermin 247
|
||||
PhysDevExtTermin 248
|
||||
PhysDevExtTermin 249
|
||||
|
||||
DevExtTramp 0
|
||||
DevExtTramp 1
|
||||
DevExtTramp 2
|
||||
DevExtTramp 3
|
||||
DevExtTramp 4
|
||||
DevExtTramp 5
|
||||
DevExtTramp 6
|
||||
DevExtTramp 7
|
||||
DevExtTramp 8
|
||||
DevExtTramp 9
|
||||
DevExtTramp 10
|
||||
DevExtTramp 11
|
||||
DevExtTramp 12
|
||||
DevExtTramp 13
|
||||
DevExtTramp 14
|
||||
DevExtTramp 15
|
||||
DevExtTramp 16
|
||||
DevExtTramp 17
|
||||
DevExtTramp 18
|
||||
DevExtTramp 19
|
||||
DevExtTramp 20
|
||||
DevExtTramp 21
|
||||
DevExtTramp 22
|
||||
DevExtTramp 23
|
||||
DevExtTramp 24
|
||||
DevExtTramp 25
|
||||
DevExtTramp 26
|
||||
DevExtTramp 27
|
||||
DevExtTramp 28
|
||||
DevExtTramp 29
|
||||
DevExtTramp 30
|
||||
DevExtTramp 31
|
||||
DevExtTramp 32
|
||||
DevExtTramp 33
|
||||
DevExtTramp 34
|
||||
DevExtTramp 35
|
||||
DevExtTramp 36
|
||||
DevExtTramp 37
|
||||
DevExtTramp 38
|
||||
DevExtTramp 39
|
||||
DevExtTramp 40
|
||||
DevExtTramp 41
|
||||
DevExtTramp 42
|
||||
DevExtTramp 43
|
||||
DevExtTramp 44
|
||||
DevExtTramp 45
|
||||
DevExtTramp 46
|
||||
DevExtTramp 47
|
||||
DevExtTramp 48
|
||||
DevExtTramp 49
|
||||
DevExtTramp 50
|
||||
DevExtTramp 51
|
||||
DevExtTramp 52
|
||||
DevExtTramp 53
|
||||
DevExtTramp 54
|
||||
DevExtTramp 55
|
||||
DevExtTramp 56
|
||||
DevExtTramp 57
|
||||
DevExtTramp 58
|
||||
DevExtTramp 59
|
||||
DevExtTramp 60
|
||||
DevExtTramp 61
|
||||
DevExtTramp 62
|
||||
DevExtTramp 63
|
||||
DevExtTramp 64
|
||||
DevExtTramp 65
|
||||
DevExtTramp 66
|
||||
DevExtTramp 67
|
||||
DevExtTramp 68
|
||||
DevExtTramp 69
|
||||
DevExtTramp 70
|
||||
DevExtTramp 71
|
||||
DevExtTramp 72
|
||||
DevExtTramp 73
|
||||
DevExtTramp 74
|
||||
DevExtTramp 75
|
||||
DevExtTramp 76
|
||||
DevExtTramp 77
|
||||
DevExtTramp 78
|
||||
DevExtTramp 79
|
||||
DevExtTramp 80
|
||||
DevExtTramp 81
|
||||
DevExtTramp 82
|
||||
DevExtTramp 83
|
||||
DevExtTramp 84
|
||||
DevExtTramp 85
|
||||
DevExtTramp 86
|
||||
DevExtTramp 87
|
||||
DevExtTramp 88
|
||||
DevExtTramp 89
|
||||
DevExtTramp 90
|
||||
DevExtTramp 91
|
||||
DevExtTramp 92
|
||||
DevExtTramp 93
|
||||
DevExtTramp 94
|
||||
DevExtTramp 95
|
||||
DevExtTramp 96
|
||||
DevExtTramp 97
|
||||
DevExtTramp 98
|
||||
DevExtTramp 99
|
||||
DevExtTramp 100
|
||||
DevExtTramp 101
|
||||
DevExtTramp 102
|
||||
DevExtTramp 103
|
||||
DevExtTramp 104
|
||||
DevExtTramp 105
|
||||
DevExtTramp 106
|
||||
DevExtTramp 107
|
||||
DevExtTramp 108
|
||||
DevExtTramp 109
|
||||
DevExtTramp 110
|
||||
DevExtTramp 111
|
||||
DevExtTramp 112
|
||||
DevExtTramp 113
|
||||
DevExtTramp 114
|
||||
DevExtTramp 115
|
||||
DevExtTramp 116
|
||||
DevExtTramp 117
|
||||
DevExtTramp 118
|
||||
DevExtTramp 119
|
||||
DevExtTramp 120
|
||||
DevExtTramp 121
|
||||
DevExtTramp 122
|
||||
DevExtTramp 123
|
||||
DevExtTramp 124
|
||||
DevExtTramp 125
|
||||
DevExtTramp 126
|
||||
DevExtTramp 127
|
||||
DevExtTramp 128
|
||||
DevExtTramp 129
|
||||
DevExtTramp 130
|
||||
DevExtTramp 131
|
||||
DevExtTramp 132
|
||||
DevExtTramp 133
|
||||
DevExtTramp 134
|
||||
DevExtTramp 135
|
||||
DevExtTramp 136
|
||||
DevExtTramp 137
|
||||
DevExtTramp 138
|
||||
DevExtTramp 139
|
||||
DevExtTramp 140
|
||||
DevExtTramp 141
|
||||
DevExtTramp 142
|
||||
DevExtTramp 143
|
||||
DevExtTramp 144
|
||||
DevExtTramp 145
|
||||
DevExtTramp 146
|
||||
DevExtTramp 147
|
||||
DevExtTramp 148
|
||||
DevExtTramp 149
|
||||
DevExtTramp 150
|
||||
DevExtTramp 151
|
||||
DevExtTramp 152
|
||||
DevExtTramp 153
|
||||
DevExtTramp 154
|
||||
DevExtTramp 155
|
||||
DevExtTramp 156
|
||||
DevExtTramp 157
|
||||
DevExtTramp 158
|
||||
DevExtTramp 159
|
||||
DevExtTramp 160
|
||||
DevExtTramp 161
|
||||
DevExtTramp 162
|
||||
DevExtTramp 163
|
||||
DevExtTramp 164
|
||||
DevExtTramp 165
|
||||
DevExtTramp 166
|
||||
DevExtTramp 167
|
||||
DevExtTramp 168
|
||||
DevExtTramp 169
|
||||
DevExtTramp 170
|
||||
DevExtTramp 171
|
||||
DevExtTramp 172
|
||||
DevExtTramp 173
|
||||
DevExtTramp 174
|
||||
DevExtTramp 175
|
||||
DevExtTramp 176
|
||||
DevExtTramp 177
|
||||
DevExtTramp 178
|
||||
DevExtTramp 179
|
||||
DevExtTramp 180
|
||||
DevExtTramp 181
|
||||
DevExtTramp 182
|
||||
DevExtTramp 183
|
||||
DevExtTramp 184
|
||||
DevExtTramp 185
|
||||
DevExtTramp 186
|
||||
DevExtTramp 187
|
||||
DevExtTramp 188
|
||||
DevExtTramp 189
|
||||
DevExtTramp 190
|
||||
DevExtTramp 191
|
||||
DevExtTramp 192
|
||||
DevExtTramp 193
|
||||
DevExtTramp 194
|
||||
DevExtTramp 195
|
||||
DevExtTramp 196
|
||||
DevExtTramp 197
|
||||
DevExtTramp 198
|
||||
DevExtTramp 199
|
||||
DevExtTramp 200
|
||||
DevExtTramp 201
|
||||
DevExtTramp 202
|
||||
DevExtTramp 203
|
||||
DevExtTramp 204
|
||||
DevExtTramp 205
|
||||
DevExtTramp 206
|
||||
DevExtTramp 207
|
||||
DevExtTramp 208
|
||||
DevExtTramp 209
|
||||
DevExtTramp 210
|
||||
DevExtTramp 211
|
||||
DevExtTramp 212
|
||||
DevExtTramp 213
|
||||
DevExtTramp 214
|
||||
DevExtTramp 215
|
||||
DevExtTramp 216
|
||||
DevExtTramp 217
|
||||
DevExtTramp 218
|
||||
DevExtTramp 219
|
||||
DevExtTramp 220
|
||||
DevExtTramp 221
|
||||
DevExtTramp 222
|
||||
DevExtTramp 223
|
||||
DevExtTramp 224
|
||||
DevExtTramp 225
|
||||
DevExtTramp 226
|
||||
DevExtTramp 227
|
||||
DevExtTramp 228
|
||||
DevExtTramp 229
|
||||
DevExtTramp 230
|
||||
DevExtTramp 231
|
||||
DevExtTramp 232
|
||||
DevExtTramp 233
|
||||
DevExtTramp 234
|
||||
DevExtTramp 235
|
||||
DevExtTramp 236
|
||||
DevExtTramp 237
|
||||
DevExtTramp 238
|
||||
DevExtTramp 239
|
||||
DevExtTramp 240
|
||||
DevExtTramp 241
|
||||
DevExtTramp 242
|
||||
DevExtTramp 243
|
||||
DevExtTramp 244
|
||||
DevExtTramp 245
|
||||
DevExtTramp 246
|
||||
DevExtTramp 247
|
||||
DevExtTramp 248
|
||||
DevExtTramp 249
|
||||
|
||||
end
|
|
@ -63,10 +63,10 @@ static VKAPI_ATTR void VKAPI_CALL StubCmdPushDescriptorSetWithTemplateKHR(VkComm
|
|||
static VKAPI_ATTR VkResult VKAPI_CALL StubCreateDescriptorUpdateTemplateKHR(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubDestroyDescriptorUpdateTemplateKHR(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubUpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) { };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubCreateRenderPass2KHR(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubCmdNextSubpass2KHR(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo) { };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubCreateRenderPass2KHR(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubCmdNextSubpass2KHR(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) { };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubGetSwapchainStatusKHR(VkDevice device, VkSwapchainKHR swapchain) { return VK_SUCCESS; };
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubImportFenceWin32HandleKHR(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) { return VK_SUCCESS; };
|
||||
|
@ -76,6 +76,8 @@ static VKAPI_ATTR VkResult VKAPI_CALL StubGetFenceWin32HandleKHR(VkDevice device
|
|||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubImportFenceFdKHR(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubGetFenceFdKHR(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubAcquireProfilingLockKHR(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubReleaseProfilingLockKHR(VkDevice device) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubGetImageMemoryRequirements2KHR(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubGetBufferMemoryRequirements2KHR(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubGetImageSparseMemoryRequirements2KHR(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { };
|
||||
|
@ -87,8 +89,11 @@ static VKAPI_ATTR void VKAPI_CALL StubGetDescriptorSetLayoutSupportKHR(VkDevice
|
|||
static VKAPI_ATTR void VKAPI_CALL StubCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubGetSemaphoreCounterValueKHR(VkDevice device, VkSemaphore semaphore, uint64_t* pValue) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubWaitSemaphoresKHR(VkDevice device, const VkSemaphoreWaitInfoKHR* pWaitInfo, uint64_t timeout) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubSignalSemaphoreKHR(VkDevice device, const VkSemaphoreSignalInfoKHR* pSignalInfo) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubWaitSemaphoresKHR(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubSignalSemaphoreKHR(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubGetBufferDeviceAddressKHR(VkDevice device, const VkBufferDeviceAddressInfo* pInfo) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubGetBufferOpaqueCaptureAddressKHR(VkDevice device, const VkBufferDeviceAddressInfo* pInfo) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubGetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) { };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubGetPipelineExecutablePropertiesKHR(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubGetPipelineExecutableStatisticsKHR(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) { return VK_SUCCESS; };
|
||||
|
@ -175,7 +180,7 @@ static VKAPI_ATTR VkResult VKAPI_CALL StubReleasePerformanceConfigurationINTEL(V
|
|||
static VKAPI_ATTR VkResult VKAPI_CALL StubQueueSetPerformanceConfigurationINTEL(VkQueue queue, VkPerformanceConfigurationINTEL configuration) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubGetPerformanceParameterINTEL(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue) { return VK_SUCCESS; };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubSetLocalDimmingAMD(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubGetBufferDeviceAddressEXT(VkDevice device, const VkBufferDeviceAddressInfoEXT* pInfo) { };
|
||||
static VKAPI_ATTR void VKAPI_CALL StubGetBufferDeviceAddressEXT(VkDevice device, const VkBufferDeviceAddressInfo* pInfo) { };
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
static VKAPI_ATTR VkResult VKAPI_CALL StubAcquireFullScreenExclusiveModeEXT(VkDevice device, VkSwapchainKHR swapchain) { return VK_SUCCESS; };
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
|
@ -330,6 +335,19 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp
|
|||
table->DestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate) gpa(device, "vkDestroyDescriptorUpdateTemplate");
|
||||
table->UpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate) gpa(device, "vkUpdateDescriptorSetWithTemplate");
|
||||
table->GetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport) gpa(device, "vkGetDescriptorSetLayoutSupport");
|
||||
table->CmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount) gpa(device, "vkCmdDrawIndirectCount");
|
||||
table->CmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount) gpa(device, "vkCmdDrawIndexedIndirectCount");
|
||||
table->CreateRenderPass2 = (PFN_vkCreateRenderPass2) gpa(device, "vkCreateRenderPass2");
|
||||
table->CmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2) gpa(device, "vkCmdBeginRenderPass2");
|
||||
table->CmdNextSubpass2 = (PFN_vkCmdNextSubpass2) gpa(device, "vkCmdNextSubpass2");
|
||||
table->CmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2) gpa(device, "vkCmdEndRenderPass2");
|
||||
table->ResetQueryPool = (PFN_vkResetQueryPool) gpa(device, "vkResetQueryPool");
|
||||
table->GetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue) gpa(device, "vkGetSemaphoreCounterValue");
|
||||
table->WaitSemaphores = (PFN_vkWaitSemaphores) gpa(device, "vkWaitSemaphores");
|
||||
table->SignalSemaphore = (PFN_vkSignalSemaphore) gpa(device, "vkSignalSemaphore");
|
||||
table->GetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress) gpa(device, "vkGetBufferDeviceAddress");
|
||||
table->GetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress) gpa(device, "vkGetBufferOpaqueCaptureAddress");
|
||||
table->GetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress) gpa(device, "vkGetDeviceMemoryOpaqueCaptureAddress");
|
||||
table->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR) gpa(device, "vkCreateSwapchainKHR");
|
||||
if (table->CreateSwapchainKHR == nullptr) { table->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)StubCreateSwapchainKHR; }
|
||||
table->DestroySwapchainKHR = (PFN_vkDestroySwapchainKHR) gpa(device, "vkDestroySwapchainKHR");
|
||||
|
@ -412,6 +430,10 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp
|
|||
if (table->ImportFenceFdKHR == nullptr) { table->ImportFenceFdKHR = (PFN_vkImportFenceFdKHR)StubImportFenceFdKHR; }
|
||||
table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR) gpa(device, "vkGetFenceFdKHR");
|
||||
if (table->GetFenceFdKHR == nullptr) { table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR)StubGetFenceFdKHR; }
|
||||
table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR) gpa(device, "vkAcquireProfilingLockKHR");
|
||||
if (table->AcquireProfilingLockKHR == nullptr) { table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)StubAcquireProfilingLockKHR; }
|
||||
table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR) gpa(device, "vkReleaseProfilingLockKHR");
|
||||
if (table->ReleaseProfilingLockKHR == nullptr) { table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)StubReleaseProfilingLockKHR; }
|
||||
table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR) gpa(device, "vkGetImageMemoryRequirements2KHR");
|
||||
if (table->GetImageMemoryRequirements2KHR == nullptr) { table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)StubGetImageMemoryRequirements2KHR; }
|
||||
table->GetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR) gpa(device, "vkGetBufferMemoryRequirements2KHR");
|
||||
|
@ -438,6 +460,12 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp
|
|||
if (table->WaitSemaphoresKHR == nullptr) { table->WaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)StubWaitSemaphoresKHR; }
|
||||
table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR) gpa(device, "vkSignalSemaphoreKHR");
|
||||
if (table->SignalSemaphoreKHR == nullptr) { table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)StubSignalSemaphoreKHR; }
|
||||
table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR) gpa(device, "vkGetBufferDeviceAddressKHR");
|
||||
if (table->GetBufferDeviceAddressKHR == nullptr) { table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)StubGetBufferDeviceAddressKHR; }
|
||||
table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR) gpa(device, "vkGetBufferOpaqueCaptureAddressKHR");
|
||||
if (table->GetBufferOpaqueCaptureAddressKHR == nullptr) { table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)StubGetBufferOpaqueCaptureAddressKHR; }
|
||||
table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR) gpa(device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
|
||||
if (table->GetDeviceMemoryOpaqueCaptureAddressKHR == nullptr) { table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)StubGetDeviceMemoryOpaqueCaptureAddressKHR; }
|
||||
table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR) gpa(device, "vkGetPipelineExecutablePropertiesKHR");
|
||||
if (table->GetPipelineExecutablePropertiesKHR == nullptr) { table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)StubGetPipelineExecutablePropertiesKHR; }
|
||||
table->GetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR) gpa(device, "vkGetPipelineExecutableStatisticsKHR");
|
||||
|
@ -710,6 +738,8 @@ static inline void layer_init_instance_dispatch_table(VkInstance instance, VkLay
|
|||
table->GetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR) gpa(instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
|
||||
table->GetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR) gpa(instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
|
||||
table->GetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR) gpa(instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
|
||||
table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) gpa(instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
|
||||
table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) gpa(instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
|
||||
table->GetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR) gpa(instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
|
||||
table->GetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR) gpa(instance, "vkGetPhysicalDeviceSurfaceFormats2KHR");
|
||||
table->GetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR) gpa(instance, "vkGetPhysicalDeviceDisplayProperties2KHR");
|
||||
|
@ -752,6 +782,7 @@ static inline void layer_init_instance_dispatch_table(VkInstance instance, VkLay
|
|||
#ifdef VK_USE_PLATFORM_METAL_EXT
|
||||
table->CreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT) gpa(instance, "vkCreateMetalSurfaceEXT");
|
||||
#endif // VK_USE_PLATFORM_METAL_EXT
|
||||
table->GetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT) gpa(instance, "vkGetPhysicalDeviceToolPropertiesEXT");
|
||||
table->GetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV) gpa(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
|
||||
table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) gpa(instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
|
|
|
@ -140,6 +140,10 @@ typedef struct VkLayerInstanceDispatchTable_ {
|
|||
// ---- VK_KHR_external_fence_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR GetPhysicalDeviceExternalFencePropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
|
||||
PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR;
|
||||
PFN_vkGetPhysicalDeviceSurfaceFormats2KHR GetPhysicalDeviceSurfaceFormats2KHR;
|
||||
|
@ -216,6 +220,9 @@ typedef struct VkLayerInstanceDispatchTable_ {
|
|||
PFN_vkCreateMetalSurfaceEXT CreateMetalSurfaceEXT;
|
||||
#endif // VK_USE_PLATFORM_METAL_EXT
|
||||
|
||||
// ---- VK_EXT_tooling_info extension commands
|
||||
PFN_vkGetPhysicalDeviceToolPropertiesEXT GetPhysicalDeviceToolPropertiesEXT;
|
||||
|
||||
// ---- VK_NV_cooperative_matrix extension commands
|
||||
PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV GetPhysicalDeviceCooperativeMatrixPropertiesNV;
|
||||
|
||||
|
@ -375,6 +382,21 @@ typedef struct VkLayerDispatchTable_ {
|
|||
PFN_vkUpdateDescriptorSetWithTemplate UpdateDescriptorSetWithTemplate;
|
||||
PFN_vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport;
|
||||
|
||||
// ---- Core 1_2 commands
|
||||
PFN_vkCmdDrawIndirectCount CmdDrawIndirectCount;
|
||||
PFN_vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount;
|
||||
PFN_vkCreateRenderPass2 CreateRenderPass2;
|
||||
PFN_vkCmdBeginRenderPass2 CmdBeginRenderPass2;
|
||||
PFN_vkCmdNextSubpass2 CmdNextSubpass2;
|
||||
PFN_vkCmdEndRenderPass2 CmdEndRenderPass2;
|
||||
PFN_vkResetQueryPool ResetQueryPool;
|
||||
PFN_vkGetSemaphoreCounterValue GetSemaphoreCounterValue;
|
||||
PFN_vkWaitSemaphores WaitSemaphores;
|
||||
PFN_vkSignalSemaphore SignalSemaphore;
|
||||
PFN_vkGetBufferDeviceAddress GetBufferDeviceAddress;
|
||||
PFN_vkGetBufferOpaqueCaptureAddress GetBufferOpaqueCaptureAddress;
|
||||
PFN_vkGetDeviceMemoryOpaqueCaptureAddress GetDeviceMemoryOpaqueCaptureAddress;
|
||||
|
||||
// ---- VK_KHR_swapchain extension commands
|
||||
PFN_vkCreateSwapchainKHR CreateSwapchainKHR;
|
||||
PFN_vkDestroySwapchainKHR DestroySwapchainKHR;
|
||||
|
@ -450,6 +472,10 @@ typedef struct VkLayerDispatchTable_ {
|
|||
PFN_vkImportFenceFdKHR ImportFenceFdKHR;
|
||||
PFN_vkGetFenceFdKHR GetFenceFdKHR;
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
PFN_vkAcquireProfilingLockKHR AcquireProfilingLockKHR;
|
||||
PFN_vkReleaseProfilingLockKHR ReleaseProfilingLockKHR;
|
||||
|
||||
// ---- VK_KHR_get_memory_requirements2 extension commands
|
||||
PFN_vkGetImageMemoryRequirements2KHR GetImageMemoryRequirements2KHR;
|
||||
PFN_vkGetBufferMemoryRequirements2KHR GetBufferMemoryRequirements2KHR;
|
||||
|
@ -475,6 +501,11 @@ typedef struct VkLayerDispatchTable_ {
|
|||
PFN_vkWaitSemaphoresKHR WaitSemaphoresKHR;
|
||||
PFN_vkSignalSemaphoreKHR SignalSemaphoreKHR;
|
||||
|
||||
// ---- VK_KHR_buffer_device_address extension commands
|
||||
PFN_vkGetBufferDeviceAddressKHR GetBufferDeviceAddressKHR;
|
||||
PFN_vkGetBufferOpaqueCaptureAddressKHR GetBufferOpaqueCaptureAddressKHR;
|
||||
PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR GetDeviceMemoryOpaqueCaptureAddressKHR;
|
||||
|
||||
// ---- VK_KHR_pipeline_executable_properties extension commands
|
||||
PFN_vkGetPipelineExecutablePropertiesKHR GetPipelineExecutablePropertiesKHR;
|
||||
PFN_vkGetPipelineExecutableStatisticsKHR GetPipelineExecutableStatisticsKHR;
|
||||
|
|
314
thirdparty/vulkan/loader/vk_loader_extensions.c
vendored
314
thirdparty/vulkan/loader/vk_loader_extensions.c
vendored
|
@ -172,6 +172,10 @@ VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_icd_term *icd_t
|
|||
// ---- VK_KHR_external_fence_capabilities extension commands
|
||||
LOOKUP_GIPA(GetPhysicalDeviceExternalFencePropertiesKHR, false);
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, false);
|
||||
LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, false);
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2KHR, false);
|
||||
LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormats2KHR, false);
|
||||
|
@ -234,6 +238,12 @@ VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_icd_term *icd_t
|
|||
// ---- VK_EXT_debug_utils extension commands
|
||||
LOOKUP_GIPA(SetDebugUtilsObjectNameEXT, false);
|
||||
LOOKUP_GIPA(SetDebugUtilsObjectTagEXT, false);
|
||||
LOOKUP_GIPA(QueueBeginDebugUtilsLabelEXT, false);
|
||||
LOOKUP_GIPA(QueueEndDebugUtilsLabelEXT, false);
|
||||
LOOKUP_GIPA(QueueInsertDebugUtilsLabelEXT, false);
|
||||
LOOKUP_GIPA(CmdBeginDebugUtilsLabelEXT, false);
|
||||
LOOKUP_GIPA(CmdEndDebugUtilsLabelEXT, false);
|
||||
LOOKUP_GIPA(CmdInsertDebugUtilsLabelEXT, false);
|
||||
LOOKUP_GIPA(CreateDebugUtilsMessengerEXT, false);
|
||||
LOOKUP_GIPA(DestroyDebugUtilsMessengerEXT, false);
|
||||
LOOKUP_GIPA(SubmitDebugUtilsMessageEXT, false);
|
||||
|
@ -254,6 +264,9 @@ VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_icd_term *icd_t
|
|||
LOOKUP_GIPA(CreateMetalSurfaceEXT, false);
|
||||
#endif // VK_USE_PLATFORM_METAL_EXT
|
||||
|
||||
// ---- VK_EXT_tooling_info extension commands
|
||||
LOOKUP_GIPA(GetPhysicalDeviceToolPropertiesEXT, false);
|
||||
|
||||
// ---- VK_NV_cooperative_matrix extension commands
|
||||
LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesNV, false);
|
||||
|
||||
|
@ -422,6 +435,21 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_dispatch_table(struct loader_dev_d
|
|||
table->DestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)gpa(dev, "vkDestroyDescriptorUpdateTemplate");
|
||||
table->UpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)gpa(dev, "vkUpdateDescriptorSetWithTemplate");
|
||||
table->GetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)gpa(dev, "vkGetDescriptorSetLayoutSupport");
|
||||
|
||||
// ---- Core 1_2 commands
|
||||
table->CmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)gpa(dev, "vkCmdDrawIndirectCount");
|
||||
table->CmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)gpa(dev, "vkCmdDrawIndexedIndirectCount");
|
||||
table->CreateRenderPass2 = (PFN_vkCreateRenderPass2)gpa(dev, "vkCreateRenderPass2");
|
||||
table->CmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)gpa(dev, "vkCmdBeginRenderPass2");
|
||||
table->CmdNextSubpass2 = (PFN_vkCmdNextSubpass2)gpa(dev, "vkCmdNextSubpass2");
|
||||
table->CmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)gpa(dev, "vkCmdEndRenderPass2");
|
||||
table->ResetQueryPool = (PFN_vkResetQueryPool)gpa(dev, "vkResetQueryPool");
|
||||
table->GetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)gpa(dev, "vkGetSemaphoreCounterValue");
|
||||
table->WaitSemaphores = (PFN_vkWaitSemaphores)gpa(dev, "vkWaitSemaphores");
|
||||
table->SignalSemaphore = (PFN_vkSignalSemaphore)gpa(dev, "vkSignalSemaphore");
|
||||
table->GetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)gpa(dev, "vkGetBufferDeviceAddress");
|
||||
table->GetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)gpa(dev, "vkGetBufferOpaqueCaptureAddress");
|
||||
table->GetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)gpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddress");
|
||||
}
|
||||
|
||||
// Init Device function pointer dispatch table with extension commands
|
||||
|
@ -507,6 +535,10 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
|
|||
table->ImportFenceFdKHR = (PFN_vkImportFenceFdKHR)gdpa(dev, "vkImportFenceFdKHR");
|
||||
table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR)gdpa(dev, "vkGetFenceFdKHR");
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)gdpa(dev, "vkAcquireProfilingLockKHR");
|
||||
table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)gdpa(dev, "vkReleaseProfilingLockKHR");
|
||||
|
||||
// ---- VK_KHR_get_memory_requirements2 extension commands
|
||||
table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)gdpa(dev, "vkGetImageMemoryRequirements2KHR");
|
||||
table->GetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)gdpa(dev, "vkGetBufferMemoryRequirements2KHR");
|
||||
|
@ -532,6 +564,11 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
|
|||
table->WaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)gdpa(dev, "vkWaitSemaphoresKHR");
|
||||
table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)gdpa(dev, "vkSignalSemaphoreKHR");
|
||||
|
||||
// ---- VK_KHR_buffer_device_address extension commands
|
||||
table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)gdpa(dev, "vkGetBufferDeviceAddressKHR");
|
||||
table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)gdpa(dev, "vkGetBufferOpaqueCaptureAddressKHR");
|
||||
table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)gdpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
|
||||
|
||||
// ---- VK_KHR_pipeline_executable_properties extension commands
|
||||
table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)gdpa(dev, "vkGetPipelineExecutablePropertiesKHR");
|
||||
table->GetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)gdpa(dev, "vkGetPipelineExecutableStatisticsKHR");
|
||||
|
@ -818,6 +855,10 @@ VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayer
|
|||
// ---- VK_KHR_external_fence_capabilities extension commands
|
||||
table->GetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
|
||||
table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
table->GetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
|
||||
table->GetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormats2KHR");
|
||||
|
@ -894,6 +935,9 @@ VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayer
|
|||
table->CreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)gpa(inst, "vkCreateMetalSurfaceEXT");
|
||||
#endif // VK_USE_PLATFORM_METAL_EXT
|
||||
|
||||
// ---- VK_EXT_tooling_info extension commands
|
||||
table->GetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)gpa(inst, "vkGetPhysicalDeviceToolPropertiesEXT");
|
||||
|
||||
// ---- VK_NV_cooperative_matrix extension commands
|
||||
table->GetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
|
||||
|
||||
|
@ -1056,6 +1100,21 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
|
|||
if (!strcmp(name, "UpdateDescriptorSetWithTemplate")) return (void *)table->UpdateDescriptorSetWithTemplate;
|
||||
if (!strcmp(name, "GetDescriptorSetLayoutSupport")) return (void *)table->GetDescriptorSetLayoutSupport;
|
||||
|
||||
// ---- Core 1_2 commands
|
||||
if (!strcmp(name, "CmdDrawIndirectCount")) return (void *)table->CmdDrawIndirectCount;
|
||||
if (!strcmp(name, "CmdDrawIndexedIndirectCount")) return (void *)table->CmdDrawIndexedIndirectCount;
|
||||
if (!strcmp(name, "CreateRenderPass2")) return (void *)table->CreateRenderPass2;
|
||||
if (!strcmp(name, "CmdBeginRenderPass2")) return (void *)table->CmdBeginRenderPass2;
|
||||
if (!strcmp(name, "CmdNextSubpass2")) return (void *)table->CmdNextSubpass2;
|
||||
if (!strcmp(name, "CmdEndRenderPass2")) return (void *)table->CmdEndRenderPass2;
|
||||
if (!strcmp(name, "ResetQueryPool")) return (void *)table->ResetQueryPool;
|
||||
if (!strcmp(name, "GetSemaphoreCounterValue")) return (void *)table->GetSemaphoreCounterValue;
|
||||
if (!strcmp(name, "WaitSemaphores")) return (void *)table->WaitSemaphores;
|
||||
if (!strcmp(name, "SignalSemaphore")) return (void *)table->SignalSemaphore;
|
||||
if (!strcmp(name, "GetBufferDeviceAddress")) return (void *)table->GetBufferDeviceAddress;
|
||||
if (!strcmp(name, "GetBufferOpaqueCaptureAddress")) return (void *)table->GetBufferOpaqueCaptureAddress;
|
||||
if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddress")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddress;
|
||||
|
||||
// ---- VK_KHR_swapchain extension commands
|
||||
if (!strcmp(name, "CreateSwapchainKHR")) return (void *)table->CreateSwapchainKHR;
|
||||
if (!strcmp(name, "DestroySwapchainKHR")) return (void *)table->DestroySwapchainKHR;
|
||||
|
@ -1131,6 +1190,10 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
|
|||
if (!strcmp(name, "ImportFenceFdKHR")) return (void *)table->ImportFenceFdKHR;
|
||||
if (!strcmp(name, "GetFenceFdKHR")) return (void *)table->GetFenceFdKHR;
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
if (!strcmp(name, "AcquireProfilingLockKHR")) return (void *)table->AcquireProfilingLockKHR;
|
||||
if (!strcmp(name, "ReleaseProfilingLockKHR")) return (void *)table->ReleaseProfilingLockKHR;
|
||||
|
||||
// ---- VK_KHR_get_memory_requirements2 extension commands
|
||||
if (!strcmp(name, "GetImageMemoryRequirements2KHR")) return (void *)table->GetImageMemoryRequirements2KHR;
|
||||
if (!strcmp(name, "GetBufferMemoryRequirements2KHR")) return (void *)table->GetBufferMemoryRequirements2KHR;
|
||||
|
@ -1156,6 +1219,11 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
|
|||
if (!strcmp(name, "WaitSemaphoresKHR")) return (void *)table->WaitSemaphoresKHR;
|
||||
if (!strcmp(name, "SignalSemaphoreKHR")) return (void *)table->SignalSemaphoreKHR;
|
||||
|
||||
// ---- VK_KHR_buffer_device_address extension commands
|
||||
if (!strcmp(name, "GetBufferDeviceAddressKHR")) return (void *)table->GetBufferDeviceAddressKHR;
|
||||
if (!strcmp(name, "GetBufferOpaqueCaptureAddressKHR")) return (void *)table->GetBufferOpaqueCaptureAddressKHR;
|
||||
if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddressKHR")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddressKHR;
|
||||
|
||||
// ---- VK_KHR_pipeline_executable_properties extension commands
|
||||
if (!strcmp(name, "GetPipelineExecutablePropertiesKHR")) return (void *)table->GetPipelineExecutablePropertiesKHR;
|
||||
if (!strcmp(name, "GetPipelineExecutableStatisticsKHR")) return (void *)table->GetPipelineExecutableStatisticsKHR;
|
||||
|
@ -1446,6 +1514,10 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerI
|
|||
// ---- VK_KHR_external_fence_capabilities extension commands
|
||||
if (!strcmp(name, "GetPhysicalDeviceExternalFencePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalFencePropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
|
||||
if (!strcmp(name, "GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) return (void *)table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2KHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2KHR;
|
||||
if (!strcmp(name, "GetPhysicalDeviceSurfaceFormats2KHR")) return (void *)table->GetPhysicalDeviceSurfaceFormats2KHR;
|
||||
|
@ -1522,6 +1594,9 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerI
|
|||
if (!strcmp(name, "CreateMetalSurfaceEXT")) return (void *)table->CreateMetalSurfaceEXT;
|
||||
#endif // VK_USE_PLATFORM_METAL_EXT
|
||||
|
||||
// ---- VK_EXT_tooling_info extension commands
|
||||
if (!strcmp(name, "GetPhysicalDeviceToolPropertiesEXT")) return (void *)table->GetPhysicalDeviceToolPropertiesEXT;
|
||||
|
||||
// ---- VK_NV_cooperative_matrix extension commands
|
||||
if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesNV;
|
||||
|
||||
|
@ -1725,7 +1800,7 @@ VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSetWithTemplateKHR(
|
|||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR(
|
||||
VkDevice device,
|
||||
const VkRenderPassCreateInfo2KHR* pCreateInfo,
|
||||
const VkRenderPassCreateInfo2* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkRenderPass* pRenderPass) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
|
@ -1735,22 +1810,22 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR(
|
|||
VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkRenderPassBeginInfo* pRenderPassBegin,
|
||||
const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
|
||||
const VkSubpassBeginInfo* pSubpassBeginInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
disp->CmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
|
||||
const VkSubpassEndInfoKHR* pSubpassEndInfo) {
|
||||
const VkSubpassBeginInfo* pSubpassBeginInfo,
|
||||
const VkSubpassEndInfo* pSubpassEndInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
disp->CmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkSubpassEndInfoKHR* pSubpassEndInfo) {
|
||||
const VkSubpassEndInfo* pSubpassEndInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
disp->CmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
|
||||
}
|
||||
|
@ -1806,6 +1881,72 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR(
|
|||
}
|
||||
|
||||
|
||||
// ---- VK_KHR_performance_query extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex,
|
||||
uint32_t* pCounterCount,
|
||||
VkPerformanceCounterKHR* pCounters,
|
||||
VkPerformanceCounterDescriptionKHR* pCounterDescriptions) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex,
|
||||
uint32_t* pCounterCount,
|
||||
VkPerformanceCounterKHR* pCounters,
|
||||
VkPerformanceCounterDescriptionKHR* pCounterDescriptions) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
|
||||
}
|
||||
return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
|
||||
uint32_t* pNumPasses) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(unwrapped_phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
|
||||
uint32_t* pNumPasses) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
|
||||
}
|
||||
icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(phys_dev_term->phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR(
|
||||
VkDevice device,
|
||||
const VkAcquireProfilingLockInfoKHR* pInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->AcquireProfilingLockKHR(device, pInfo);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR(
|
||||
VkDevice device) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
disp->ReleaseProfilingLockKHR(device);
|
||||
}
|
||||
|
||||
|
||||
// ---- VK_KHR_get_memory_requirements2 extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR(
|
||||
|
@ -1923,7 +2064,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR(
|
|||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR(
|
||||
VkDevice device,
|
||||
const VkSemaphoreWaitInfoKHR* pWaitInfo,
|
||||
const VkSemaphoreWaitInfo* pWaitInfo,
|
||||
uint64_t timeout) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->WaitSemaphoresKHR(device, pWaitInfo, timeout);
|
||||
|
@ -1931,12 +2072,36 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR(
|
|||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR(
|
||||
VkDevice device,
|
||||
const VkSemaphoreSignalInfoKHR* pSignalInfo) {
|
||||
const VkSemaphoreSignalInfo* pSignalInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->SignalSemaphoreKHR(device, pSignalInfo);
|
||||
}
|
||||
|
||||
|
||||
// ---- VK_KHR_buffer_device_address extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR(
|
||||
VkDevice device,
|
||||
const VkBufferDeviceAddressInfo* pInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->GetBufferDeviceAddressKHR(device, pInfo);
|
||||
}
|
||||
|
||||
VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR(
|
||||
VkDevice device,
|
||||
const VkBufferDeviceAddressInfo* pInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->GetBufferOpaqueCaptureAddressKHR(device, pInfo);
|
||||
}
|
||||
|
||||
VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR(
|
||||
VkDevice device,
|
||||
const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->GetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo);
|
||||
}
|
||||
|
||||
|
||||
// ---- VK_KHR_pipeline_executable_properties extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR(
|
||||
|
@ -2552,7 +2717,18 @@ VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT(
|
|||
const VkDebugUtilsLabelEXT* pLabelInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
|
||||
if (disp->QueueBeginDebugUtilsLabelEXT != NULL) {
|
||||
disp->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
|
||||
disp->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_QueueBeginDebugUtilsLabelEXT(
|
||||
VkQueue queue,
|
||||
const VkDebugUtilsLabelEXT* pLabelInfo) {
|
||||
uint32_t icd_index = 0;
|
||||
struct loader_device *dev;
|
||||
struct loader_icd_term *icd_term = loader_get_icd_and_device(queue, &dev, &icd_index);
|
||||
if (NULL != icd_term && NULL != icd_term->dispatch.QueueBeginDebugUtilsLabelEXT) {
|
||||
icd_term->dispatch.QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2560,7 +2736,17 @@ VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT(
|
|||
VkQueue queue) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
|
||||
if (disp->QueueEndDebugUtilsLabelEXT != NULL) {
|
||||
disp->QueueEndDebugUtilsLabelEXT(queue);
|
||||
disp->QueueEndDebugUtilsLabelEXT(queue);
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_QueueEndDebugUtilsLabelEXT(
|
||||
VkQueue queue) {
|
||||
uint32_t icd_index = 0;
|
||||
struct loader_device *dev;
|
||||
struct loader_icd_term *icd_term = loader_get_icd_and_device(queue, &dev, &icd_index);
|
||||
if (NULL != icd_term && NULL != icd_term->dispatch.QueueEndDebugUtilsLabelEXT) {
|
||||
icd_term->dispatch.QueueEndDebugUtilsLabelEXT(queue);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2569,7 +2755,18 @@ VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT(
|
|||
const VkDebugUtilsLabelEXT* pLabelInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
|
||||
if (disp->QueueInsertDebugUtilsLabelEXT != NULL) {
|
||||
disp->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
|
||||
disp->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_QueueInsertDebugUtilsLabelEXT(
|
||||
VkQueue queue,
|
||||
const VkDebugUtilsLabelEXT* pLabelInfo) {
|
||||
uint32_t icd_index = 0;
|
||||
struct loader_device *dev;
|
||||
struct loader_icd_term *icd_term = loader_get_icd_and_device(queue, &dev, &icd_index);
|
||||
if (NULL != icd_term && NULL != icd_term->dispatch.QueueInsertDebugUtilsLabelEXT) {
|
||||
icd_term->dispatch.QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2578,7 +2775,18 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT(
|
|||
const VkDebugUtilsLabelEXT* pLabelInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
if (disp->CmdBeginDebugUtilsLabelEXT != NULL) {
|
||||
disp->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
|
||||
disp->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_CmdBeginDebugUtilsLabelEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkDebugUtilsLabelEXT* pLabelInfo) {
|
||||
uint32_t icd_index = 0;
|
||||
struct loader_device *dev;
|
||||
struct loader_icd_term *icd_term = loader_get_icd_and_device(commandBuffer, &dev, &icd_index);
|
||||
if (NULL != icd_term && NULL != icd_term->dispatch.CmdBeginDebugUtilsLabelEXT) {
|
||||
icd_term->dispatch.CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2586,7 +2794,17 @@ VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT(
|
|||
VkCommandBuffer commandBuffer) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
if (disp->CmdEndDebugUtilsLabelEXT != NULL) {
|
||||
disp->CmdEndDebugUtilsLabelEXT(commandBuffer);
|
||||
disp->CmdEndDebugUtilsLabelEXT(commandBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_CmdEndDebugUtilsLabelEXT(
|
||||
VkCommandBuffer commandBuffer) {
|
||||
uint32_t icd_index = 0;
|
||||
struct loader_device *dev;
|
||||
struct loader_icd_term *icd_term = loader_get_icd_and_device(commandBuffer, &dev, &icd_index);
|
||||
if (NULL != icd_term && NULL != icd_term->dispatch.CmdEndDebugUtilsLabelEXT) {
|
||||
icd_term->dispatch.CmdEndDebugUtilsLabelEXT(commandBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2595,7 +2813,18 @@ VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT(
|
|||
const VkDebugUtilsLabelEXT* pLabelInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
|
||||
if (disp->CmdInsertDebugUtilsLabelEXT != NULL) {
|
||||
disp->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
|
||||
disp->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_CmdInsertDebugUtilsLabelEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkDebugUtilsLabelEXT* pLabelInfo) {
|
||||
uint32_t icd_index = 0;
|
||||
struct loader_device *dev;
|
||||
struct loader_icd_term *icd_term = loader_get_icd_and_device(commandBuffer, &dev, &icd_index);
|
||||
if (NULL != icd_term && NULL != icd_term->dispatch.CmdInsertDebugUtilsLabelEXT) {
|
||||
icd_term->dispatch.CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3091,7 +3320,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateImagePipeSurfaceFUCHSIA(
|
|||
|
||||
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT(
|
||||
VkDevice device,
|
||||
const VkBufferDeviceAddressInfoEXT* pInfo) {
|
||||
const VkBufferDeviceAddressInfo* pInfo) {
|
||||
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
|
||||
return disp->GetBufferDeviceAddressEXT(device, pInfo);
|
||||
}
|
||||
|
@ -3413,6 +3642,24 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
|
|||
return true;
|
||||
}
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR", name)) {
|
||||
*addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
|
||||
return true;
|
||||
}
|
||||
if (!strcmp("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", name)) {
|
||||
*addr = (void *)GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
|
||||
return true;
|
||||
}
|
||||
if (!strcmp("vkAcquireProfilingLockKHR", name)) {
|
||||
*addr = (void *)AcquireProfilingLockKHR;
|
||||
return true;
|
||||
}
|
||||
if (!strcmp("vkReleaseProfilingLockKHR", name)) {
|
||||
*addr = (void *)ReleaseProfilingLockKHR;
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
if (!strcmp("vkGetPhysicalDeviceSurfaceCapabilities2KHR", name)) {
|
||||
*addr = (ptr_instance->enabled_known_extensions.khr_get_surface_capabilities2 == 1)
|
||||
|
@ -3491,6 +3738,20 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
|
|||
return true;
|
||||
}
|
||||
|
||||
// ---- VK_KHR_buffer_device_address extension commands
|
||||
if (!strcmp("vkGetBufferDeviceAddressKHR", name)) {
|
||||
*addr = (void *)GetBufferDeviceAddressKHR;
|
||||
return true;
|
||||
}
|
||||
if (!strcmp("vkGetBufferOpaqueCaptureAddressKHR", name)) {
|
||||
*addr = (void *)GetBufferOpaqueCaptureAddressKHR;
|
||||
return true;
|
||||
}
|
||||
if (!strcmp("vkGetDeviceMemoryOpaqueCaptureAddressKHR", name)) {
|
||||
*addr = (void *)GetDeviceMemoryOpaqueCaptureAddressKHR;
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---- VK_KHR_pipeline_executable_properties extension commands
|
||||
if (!strcmp("vkGetPipelineExecutablePropertiesKHR", name)) {
|
||||
*addr = (void *)GetPipelineExecutablePropertiesKHR;
|
||||
|
@ -4013,6 +4274,12 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
|
|||
return true;
|
||||
}
|
||||
|
||||
// ---- VK_EXT_tooling_info extension commands
|
||||
if (!strcmp("vkGetPhysicalDeviceToolPropertiesEXT", name)) {
|
||||
*addr = (void *)GetPhysicalDeviceToolPropertiesEXT;
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---- VK_NV_cooperative_matrix extension commands
|
||||
if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", name)) {
|
||||
*addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesNV;
|
||||
|
@ -4173,6 +4440,18 @@ PFN_vkVoidFunction get_extension_device_proc_terminator(struct loader_device *de
|
|||
addr = (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectNameEXT;
|
||||
} else if(!strcmp(pName, "vkSetDebugUtilsObjectTagEXT")) {
|
||||
addr = (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectTagEXT;
|
||||
} else if(!strcmp(pName, "vkQueueBeginDebugUtilsLabelEXT")) {
|
||||
addr = (PFN_vkVoidFunction)terminator_QueueBeginDebugUtilsLabelEXT;
|
||||
} else if(!strcmp(pName, "vkQueueEndDebugUtilsLabelEXT")) {
|
||||
addr = (PFN_vkVoidFunction)terminator_QueueEndDebugUtilsLabelEXT;
|
||||
} else if(!strcmp(pName, "vkQueueInsertDebugUtilsLabelEXT")) {
|
||||
addr = (PFN_vkVoidFunction)terminator_QueueInsertDebugUtilsLabelEXT;
|
||||
} else if(!strcmp(pName, "vkCmdBeginDebugUtilsLabelEXT")) {
|
||||
addr = (PFN_vkVoidFunction)terminator_CmdBeginDebugUtilsLabelEXT;
|
||||
} else if(!strcmp(pName, "vkCmdEndDebugUtilsLabelEXT")) {
|
||||
addr = (PFN_vkVoidFunction)terminator_CmdEndDebugUtilsLabelEXT;
|
||||
} else if(!strcmp(pName, "vkCmdInsertDebugUtilsLabelEXT")) {
|
||||
addr = (PFN_vkVoidFunction)terminator_CmdInsertDebugUtilsLabelEXT;
|
||||
}
|
||||
}
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
|
@ -4296,6 +4575,10 @@ const VkLayerInstanceDispatchTable instance_disp = {
|
|||
// ---- VK_KHR_external_fence_capabilities extension commands
|
||||
.GetPhysicalDeviceExternalFencePropertiesKHR = terminator_GetPhysicalDeviceExternalFenceProperties,
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
|
||||
.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
.GetPhysicalDeviceSurfaceCapabilities2KHR = terminator_GetPhysicalDeviceSurfaceCapabilities2KHR,
|
||||
.GetPhysicalDeviceSurfaceFormats2KHR = terminator_GetPhysicalDeviceSurfaceFormats2KHR,
|
||||
|
@ -4372,6 +4655,9 @@ const VkLayerInstanceDispatchTable instance_disp = {
|
|||
.CreateMetalSurfaceEXT = terminator_CreateMetalSurfaceEXT,
|
||||
#endif // VK_USE_PLATFORM_METAL_EXT
|
||||
|
||||
// ---- VK_EXT_tooling_info extension commands
|
||||
.GetPhysicalDeviceToolPropertiesEXT = terminator_GetPhysicalDeviceToolPropertiesEXT,
|
||||
|
||||
// ---- VK_NV_cooperative_matrix extension commands
|
||||
.GetPhysicalDeviceCooperativeMatrixPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV,
|
||||
|
||||
|
|
13
thirdparty/vulkan/loader/vk_loader_extensions.h
vendored
13
thirdparty/vulkan/loader/vk_loader_extensions.h
vendored
|
@ -320,6 +320,10 @@ struct loader_icd_term_dispatch {
|
|||
// ---- VK_KHR_external_fence_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR GetPhysicalDeviceExternalFencePropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_performance_query extension commands
|
||||
PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
|
||||
PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR;
|
||||
PFN_vkGetPhysicalDeviceSurfaceFormats2KHR GetPhysicalDeviceSurfaceFormats2KHR;
|
||||
|
@ -382,6 +386,12 @@ struct loader_icd_term_dispatch {
|
|||
// ---- VK_EXT_debug_utils extension commands
|
||||
PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT;
|
||||
PFN_vkSetDebugUtilsObjectTagEXT SetDebugUtilsObjectTagEXT;
|
||||
PFN_vkQueueBeginDebugUtilsLabelEXT QueueBeginDebugUtilsLabelEXT;
|
||||
PFN_vkQueueEndDebugUtilsLabelEXT QueueEndDebugUtilsLabelEXT;
|
||||
PFN_vkQueueInsertDebugUtilsLabelEXT QueueInsertDebugUtilsLabelEXT;
|
||||
PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT;
|
||||
PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT;
|
||||
PFN_vkCmdInsertDebugUtilsLabelEXT CmdInsertDebugUtilsLabelEXT;
|
||||
PFN_vkCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT;
|
||||
PFN_vkDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT;
|
||||
PFN_vkSubmitDebugUtilsMessageEXT SubmitDebugUtilsMessageEXT;
|
||||
|
@ -402,6 +412,9 @@ struct loader_icd_term_dispatch {
|
|||
PFN_vkCreateMetalSurfaceEXT CreateMetalSurfaceEXT;
|
||||
#endif // VK_USE_PLATFORM_METAL_EXT
|
||||
|
||||
// ---- VK_EXT_tooling_info extension commands
|
||||
PFN_vkGetPhysicalDeviceToolPropertiesEXT GetPhysicalDeviceToolPropertiesEXT;
|
||||
|
||||
// ---- VK_NV_cooperative_matrix extension commands
|
||||
PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV GetPhysicalDeviceCooperativeMatrixPropertiesNV;
|
||||
|
||||
|
|
47
thirdparty/vulkan/loader/vk_loader_platform.h
vendored
47
thirdparty/vulkan/loader/vk_loader_platform.h
vendored
|
@ -279,31 +279,6 @@ static inline char *loader_platform_dirname(char *path) {
|
|||
return path;
|
||||
}
|
||||
|
||||
// WIN32 runtime doesn't have basename().
|
||||
// Microsoft also doesn't have basename(). Paths are different on Windows, and
|
||||
// so this is just a temporary solution in order to get us compiling, so that we
|
||||
// can test some scenarios, and develop the correct solution for Windows.
|
||||
// TODO: Develop a better, permanent solution for Windows, to replace this
|
||||
// temporary code:
|
||||
static char *loader_platform_basename(char *pathname) {
|
||||
char *current, *next;
|
||||
|
||||
// TODO/TBD: Do we need to deal with the Windows's ":" character?
|
||||
|
||||
for (current = pathname; *current != '\0'; current = next) {
|
||||
next = strchr(current, DIRECTORY_SYMBOL);
|
||||
if (next == NULL) {
|
||||
// No more DIRECTORY_SYMBOL's so return p:
|
||||
return current;
|
||||
} else {
|
||||
// Point one character past the DIRECTORY_SYMBOL:
|
||||
next++;
|
||||
}
|
||||
}
|
||||
// We shouldn't get to here, but this makes the compiler happy:
|
||||
return current;
|
||||
}
|
||||
|
||||
// Dynamic Loading:
|
||||
typedef HMODULE loader_platform_dl_handle;
|
||||
static loader_platform_dl_handle loader_platform_open_library(const char *lib_path) {
|
||||
|
@ -336,15 +311,15 @@ static char *loader_platform_get_proc_address_error(const char *name) {
|
|||
typedef HANDLE loader_platform_thread;
|
||||
|
||||
// __declspec(thread) is not supported by MinGW compiler (ignored with warning or
|
||||
// cause erorr depending on compiler switches)
|
||||
// cause error depending on compiler switches)
|
||||
//
|
||||
// __thread should be used instead
|
||||
//
|
||||
// __MINGW32__ defined for both 32 and 64 bit MinGW compilers, so it is enough to
|
||||
// detect any (32 or 64) flawor of MinGW compiler.
|
||||
// detect any (32 or 64) flavor of MinGW compiler.
|
||||
//
|
||||
// @note __GNUC__ could be used as a more generic way to detect _any_
|
||||
// GCC[-compitible] compiler on Windows, but this fix was tested
|
||||
// GCC[-compatible] compiler on Windows, but this fix was tested
|
||||
// only with MinGW, so keep it explicit at the moment.
|
||||
#if defined(__MINGW32__)
|
||||
#define THREAD_LOCAL_DECL __thread
|
||||
|
@ -355,25 +330,9 @@ typedef HANDLE loader_platform_thread;
|
|||
// The once init functionality is not used when building a DLL on Windows. This is because there is no way to clean up the
|
||||
// resources allocated by anything allocated by once init. This isn't a problem for static libraries, but it is for dynamic
|
||||
// ones. When building a DLL, we use DllMain() instead to allow properly cleaning up resources.
|
||||
#if defined(LOADER_DYNAMIC_LIB)
|
||||
#define LOADER_PLATFORM_THREAD_ONCE_DECLARATION(var)
|
||||
#define LOADER_PLATFORM_THREAD_ONCE_DEFINITION(var)
|
||||
#define LOADER_PLATFORM_THREAD_ONCE(ctl, func)
|
||||
#else
|
||||
#define LOADER_PLATFORM_THREAD_ONCE_DECLARATION(var) INIT_ONCE var = INIT_ONCE_STATIC_INIT;
|
||||
#define LOADER_PLATFORM_THREAD_ONCE_DEFINITION(var) INIT_ONCE var;
|
||||
#define LOADER_PLATFORM_THREAD_ONCE(ctl, func) loader_platform_thread_once_fn(ctl, func)
|
||||
static BOOL CALLBACK InitFuncWrapper(PINIT_ONCE InitOnce, PVOID Parameter, PVOID *Context) {
|
||||
void (*func)(void) = (void (*)(void))Parameter;
|
||||
func();
|
||||
return TRUE;
|
||||
}
|
||||
static void loader_platform_thread_once_fn(void *ctl, void (*func)(void)) {
|
||||
assert(func != NULL);
|
||||
assert(ctl != NULL);
|
||||
InitOnceExecuteOnce((PINIT_ONCE)ctl, InitFuncWrapper, (void *)func, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Thread IDs:
|
||||
typedef DWORD loader_platform_thread_id;
|
||||
|
|
6236
thirdparty/vulkan/vk_enum_string_helper.h
vendored
6236
thirdparty/vulkan/vk_enum_string_helper.h
vendored
File diff suppressed because it is too large
Load diff
23822
thirdparty/vulkan/vk_mem_alloc.h
vendored
23822
thirdparty/vulkan/vk_mem_alloc.h
vendored
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue