From 1d9335f18426322551f89af4a2c848aff57212dc Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Thu, 14 Jan 2016 16:34:30 -0700 Subject: [PATCH] loader: Remove CreateInstance and CreateDevice The new init mechanism always uses GetInstanceProcAddr to query the next layer's CreateInstance or CreateDevice function. Thus no reason to cache those function pointers in the instance dispatch table. --- include/vulkan/vk_layer.h | 2 -- loader/loader.c | 1 - loader/table_ops.h | 9 --------- 3 files changed, 12 deletions(-) diff --git a/include/vulkan/vk_layer.h b/include/vulkan/vk_layer.h index da19ddd..b9c4429 100644 --- a/include/vulkan/vk_layer.h +++ b/include/vulkan/vk_layer.h @@ -156,9 +156,7 @@ typedef struct VkLayerDispatchTable_ typedef struct VkLayerInstanceDispatchTable_ { PFN_vkGetInstanceProcAddr GetInstanceProcAddr; - PFN_vkCreateInstance CreateInstance; PFN_vkDestroyInstance DestroyInstance; - PFN_vkCreateDevice CreateDevice; PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices; PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures; PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties; diff --git a/loader/loader.c b/loader/loader.c index 74e6657..8c89651 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -98,7 +98,6 @@ loader_platform_thread_mutex loader_json_lock; // pointers to "terminator functions". const VkLayerInstanceDispatchTable instance_disp = { .GetInstanceProcAddr = vkGetInstanceProcAddr, - .CreateInstance = loader_CreateInstance, .DestroyInstance = loader_DestroyInstance, .EnumeratePhysicalDevices = loader_EnumeratePhysicalDevices, .GetPhysicalDeviceFeatures = loader_GetPhysicalDeviceFeatures, diff --git a/loader/table_ops.h b/loader/table_ops.h index 1ddef20..b901e48 100644 --- a/loader/table_ops.h +++ b/loader/table_ops.h @@ -45,7 +45,6 @@ static inline void loader_init_device_dispatch_table(struct loader_dev_dispatch_ dev_table->ext_dispatch.DevExt[i] = (PFN_vkDevExt) vkDevExtError; table->GetDeviceProcAddr = (PFN_vkGetDeviceProcAddr) gpa(dev, "vkGetDeviceProcAddr"); -// table->CreateDevice = (PFN_vkCreateDevice) gpa(dev, "vkCreateDevice"); table->DestroyDevice = (PFN_vkDestroyDevice) gpa(dev, "vkDestroyDevice"); table->GetDeviceQueue = (PFN_vkGetDeviceQueue) gpa(dev, "vkGetDeviceQueue"); table->QueueSubmit = (PFN_vkQueueSubmit) gpa(dev, "vkQueueSubmit"); @@ -191,8 +190,6 @@ static inline void *loader_lookup_device_dispatch_table( name += 2; if (!strcmp(name, "GetDeviceProcAddr")) return (void *) table->GetDeviceProcAddr; -// if (!strcmp(name, "CreateDevice")) -// return (void *) table->CreateDevice; if (!strcmp(name, "DestroyDevice")) return (void *) table->DestroyDevice; if (!strcmp(name, "GetDeviceQueue")) @@ -443,9 +440,7 @@ static inline void loader_init_instance_core_dispatch_table( VkInstance inst) { table->GetInstanceProcAddr = (PFN_vkGetInstanceProcAddr) gpa(inst, "vkGetInstanceProcAddr"); - table->CreateInstance = (PFN_vkCreateInstance) gpa(inst, "vkCreateInstance"); table->DestroyInstance = (PFN_vkDestroyInstance) gpa(inst, "vkDestroyInstance"); - table->CreateDevice = (PFN_vkCreateDevice) gpa(inst, "vkCreateDevice"); table->EnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices) gpa(inst, "vkEnumeratePhysicalDevices"); table->GetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures) gpa(inst, "vkGetPhysicalDeviceFeatures"); table->GetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties) gpa(inst, "vkGetPhysicalDeviceImageFormatProperties"); @@ -501,12 +496,8 @@ static inline void *loader_lookup_instance_dispatch_table( return NULL; name += 2; - if (!strcmp(name, "CreateInstance")) - return (void *) table->CreateInstance; if (!strcmp(name, "DestroyInstance")) return (void *) table->DestroyInstance; - if (!strcmp(name, "CreateDevice")) - return (void *) table->CreateDevice; if (!strcmp(name, "EnumeratePhysicalDevices")) return (void *) table->EnumeratePhysicalDevices; if (!strcmp(name, "GetPhysicalDeviceFeatures")) -- 2.7.4