aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2015-06-10 10:13:10 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-06-18 10:22:56 -0600
commit1fd522a0225bceb9d3ff0ce93a4b86c4c822b6ed (patch)
tree7ed6d068d61b2385cc6fbae79de839ee6a1a74bb /loader
parent21313145963f5dd1f3fec57c6d00bd50eaaee237 (diff)
downloadusermoji-1fd522a0225bceb9d3ff0ce93a4b86c4c822b6ed.tar.xz
loader: Remove the test for device layers activated; they follow create/destroy
Diffstat (limited to 'loader')
-rw-r--r--loader/loader.c116
1 files changed, 53 insertions, 63 deletions
diff --git a/loader/loader.c b/loader/loader.c
index 7fe79373..5193f04b 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1060,14 +1060,6 @@ struct loader_icd * loader_get_icd(const VkPhysicalDevice gpu, uint32_t *gpu_ind
return NULL;
}
-static bool loader_layers_activated(const struct loader_device *dev)
-{
- if (dev->activated_layer_list.count)
- return true;
- else
- return false;
-}
-
static loader_platform_dl_handle loader_add_layer_lib(
const char *chain_type,
struct loader_extension_property *ext_prop)
@@ -1405,70 +1397,68 @@ static uint32_t loader_activate_device_layers(
if (!dev)
return 0;
+
/* activate any layer libraries */
- if (!loader_layers_activated(dev)) {
- VkObject nextObj = (VkObject) device;
- VkObject baseObj = nextObj;
- VkBaseLayerObject *nextGpuObj;
- PFN_vkGetDeviceProcAddr nextGPA = icd->GetDeviceProcAddr;
- VkBaseLayerObject *wrappedGpus;
- /*
- * Figure out how many actual layers will need to be wrapped.
- */
- for (uint32_t i = 0; i < dev->enabled_device_extensions.count; i++) {
- struct loader_extension_property *ext_prop = &dev->enabled_device_extensions.list[i];
- if (ext_prop->alias) {
- ext_prop = ext_prop->alias;
- }
- if (ext_prop->origin != VK_EXTENSION_ORIGIN_LAYER) {
- continue;
- }
- loader_add_to_ext_list(&dev->activated_layer_list, 1, ext_prop);
+ VkObject nextObj = (VkObject) device;
+ VkObject baseObj = nextObj;
+ VkBaseLayerObject *nextGpuObj;
+ PFN_vkGetDeviceProcAddr nextGPA = icd->GetDeviceProcAddr;
+ VkBaseLayerObject *wrappedGpus;
+ /*
+ * Figure out how many actual layers will need to be wrapped.
+ */
+ for (uint32_t i = 0; i < dev->enabled_device_extensions.count; i++) {
+ struct loader_extension_property *ext_prop = &dev->enabled_device_extensions.list[i];
+ if (ext_prop->alias) {
+ ext_prop = ext_prop->alias;
+ }
+ if (ext_prop->origin != VK_EXTENSION_ORIGIN_LAYER) {
+ continue;
}
+ loader_add_to_ext_list(&dev->activated_layer_list, 1, ext_prop);
+ }
- if (!dev->activated_layer_list.count)
- return 0;
+ if (!dev->activated_layer_list.count)
+ return 0;
- wrappedGpus = malloc(sizeof(VkBaseLayerObject) * dev->activated_layer_list.count);
- if (! wrappedGpus) {
- loader_log(VK_DBG_REPORT_ERROR_BIT, 0, "Failed to malloc Gpu objects for layer");
- return 0;
- }
- for (int32_t i = dev->activated_layer_list.count - 1; i >= 0; i--) {
-
- struct loader_extension_property *ext_prop = &dev->activated_layer_list.list[i];
- loader_platform_dl_handle lib_handle;
-
- assert(ext_prop->origin == VK_EXTENSION_ORIGIN_LAYER);
-
- nextGpuObj = (wrappedGpus + i);
- nextGpuObj->pGPA = nextGPA;
- nextGpuObj->baseObject = baseObj;
- nextGpuObj->nextObject = nextObj;
- nextObj = (VkObject) nextGpuObj;
-
- char funcStr[256];
- snprintf(funcStr, 256, "%sGetDeviceProcAddr", ext_prop->info.name);
- lib_handle = loader_add_layer_lib("device", ext_prop);
- if ((nextGPA = (PFN_vkGetDeviceProcAddr) loader_platform_get_proc_address(lib_handle, funcStr)) == NULL)
- nextGPA = (PFN_vkGetDeviceProcAddr) loader_platform_get_proc_address(lib_handle, "vkGetDeviceProcAddr");
- if (!nextGPA) {
- loader_log(VK_DBG_REPORT_ERROR_BIT, 0, "Failed to find vkGetDeviceProcAddr in layer %s", ext_prop->info.name);
- continue;
- }
+ wrappedGpus = malloc(sizeof (VkBaseLayerObject) * dev->activated_layer_list.count);
+ if (!wrappedGpus) {
+ loader_log(VK_DBG_REPORT_ERROR_BIT, 0, "Failed to malloc Gpu objects for layer");
+ return 0;
+ }
+ for (int32_t i = dev->activated_layer_list.count - 1; i >= 0; i--) {
+
+ struct loader_extension_property *ext_prop = &dev->activated_layer_list.list[i];
+ loader_platform_dl_handle lib_handle;
+
+ assert(ext_prop->origin == VK_EXTENSION_ORIGIN_LAYER);
- loader_log(VK_DBG_REPORT_INFO_BIT, 0,
- "Insert device layer library %s for extension: %s",
- ext_prop->lib_name, ext_prop->info.name);
+ nextGpuObj = (wrappedGpus + i);
+ nextGpuObj->pGPA = nextGPA;
+ nextGpuObj->baseObject = baseObj;
+ nextGpuObj->nextObject = nextObj;
+ nextObj = (VkObject) nextGpuObj;
+ char funcStr[256];
+ snprintf(funcStr, 256, "%sGetDeviceProcAddr", ext_prop->info.name);
+ lib_handle = loader_add_layer_lib("device", ext_prop);
+ if ((nextGPA = (PFN_vkGetDeviceProcAddr) loader_platform_get_proc_address(lib_handle, funcStr)) == NULL)
+ nextGPA = (PFN_vkGetDeviceProcAddr) loader_platform_get_proc_address(lib_handle, "vkGetDeviceProcAddr");
+ if (!nextGPA) {
+ loader_log(VK_DBG_REPORT_ERROR_BIT, 0, "Failed to find vkGetDeviceProcAddr in layer %s", ext_prop->info.name);
+ continue;
}
- loader_init_device_dispatch_table(&dev->loader_dispatch, nextGPA,
- (VkPhysicalDevice) nextObj, (VkPhysicalDevice) baseObj);
- free(wrappedGpus);
- } else {
- // TODO: Check that active layers match requested?
+ loader_log(VK_DBG_REPORT_INFO_BIT, 0,
+ "Insert device layer library %s for extension: %s",
+ ext_prop->lib_name, ext_prop->info.name);
+
}
+
+ loader_init_device_dispatch_table(&dev->loader_dispatch, nextGPA,
+ (VkPhysicalDevice) nextObj, (VkPhysicalDevice) baseObj);
+ free(wrappedGpus);
+
return dev->activated_layer_list.count;
}