cleanup: address review findings
diff --git a/loader/loader.c b/loader/loader.c
index d82e269..03186dc 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -5205,7 +5205,7 @@
return true;
}
-VKAPI_ATTR VkResult VKAPI_CALL vkLayerCreateDevice(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
+VKAPI_ATTR VkResult VKAPI_CALL loader_layer_create_device(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA) {
VkResult res;
VkPhysicalDevice internal_device = VK_NULL_HANDLE;
@@ -5331,7 +5331,7 @@
return res;
}
-VKAPI_ATTR void VKAPI_CALL vkLayerDestroyDevice(VkDevice device, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction){
+VKAPI_ATTR void VKAPI_CALL loader_layer_destroy_device(VkDevice device, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction){
struct loader_device *dev;
if (device == VK_NULL_HANDLE) {
@@ -5511,8 +5511,8 @@
create_info_disp2.sType = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO;
create_info_disp2.function = VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK;
- create_info_disp2.u.layerDevice.pfnLayerCreateDevice = vkLayerCreateDevice;
- create_info_disp2.u.layerDevice.pfnLayerDestroyDevice = vkLayerDestroyDevice;
+ create_info_disp2.u.layerDevice.pfnLayerCreateDevice = loader_layer_create_device;
+ create_info_disp2.u.layerDevice.pfnLayerDestroyDevice = loader_layer_destroy_device;
create_info_disp2.pNext = loader_create_info.pNext;
loader_create_info.pNext = &create_info_disp2;
diff --git a/loader/loader.h b/loader/loader.h
index af69800..685df96 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -505,8 +505,9 @@
void loaderActivateInstanceLayerExtensions(struct loader_instance *inst, VkInstance created_inst);
-VkResult vkLayerCreateDevice(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
+VkResult loader_layer_create_device(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA);
+void loader_layer_destroy_device(VkDevice device, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction);
VkResult loader_create_device_chain(const VkPhysicalDevice pd, const VkDeviceCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator, const struct loader_instance *inst,
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 9d10d07..6a739b6 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -753,29 +753,22 @@
LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator, VkDevice *pDevice) {
loader_platform_thread_lock_mutex(&loader_lock);
- VkResult res = vkLayerCreateDevice(NULL, physicalDevice, pCreateInfo, pAllocator, pDevice, NULL, NULL);
+ VkResult res = loader_layer_create_device(NULL, physicalDevice, pCreateInfo, pAllocator, pDevice, NULL, NULL);
loader_platform_thread_unlock_mutex(&loader_lock);
return res;
}
LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(VkDevice device, const VkAllocationCallbacks *pAllocator) {
const VkLayerDispatchTable *disp;
- struct loader_device *dev;
if (device == VK_NULL_HANDLE) {
return;
}
+ disp = loader_get_dispatch(device);
loader_platform_thread_lock_mutex(&loader_lock);
- struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, NULL);
- const struct loader_instance *inst = icd_term->this_instance;
- disp = loader_get_dispatch(device);
-
- disp->DestroyDevice(device, pAllocator);
- dev->chain_device = NULL;
- dev->icd_device = NULL;
- loader_remove_logical_device(inst, icd_term, dev, pAllocator);
+ loader_layer_destroy_device(device, pAllocator, disp->DestroyDevice);
loader_platform_thread_unlock_mutex(&loader_lock);
}