diff options
| author | John Zulauf <jzulauf@lunarg.com> | 2018-04-02 10:55:18 -0600 |
|---|---|---|
| committer | jzulauf-lunarg <32470354+jzulauf-lunarg@users.noreply.github.com> | 2018-04-03 16:35:29 -0600 |
| commit | 4da0da044a455eb21ba4a73bd3c314f536de969d (patch) | |
| tree | acdc72da6221da3441ebc9b2697c60fb19d50d05 | |
| parent | 856d773b0e67e13848defe49109300315527ea0f (diff) | |
| download | usermoji-4da0da044a455eb21ba4a73bd3c314f536de969d.tar.xz | |
loader: Eliminate duplicate validation messages
Layer version mismatch validation messages were being generated multiple
times for each mismatching layer. Eliminated duplicate error messages
and fixed formatting issues.
Change-Id: Iffc5ff94f70fefc075b74764ae87a6593143f503
| -rw-r--r-- | loader/loader.c | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/loader/loader.c b/loader/loader.c index 266222f3..80d363b5 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -26,6 +26,7 @@ */ #define _GNU_SOURCE +#include <inttypes.h> #include <stdio.h> #include <stdlib.h> #include <stdarg.h> @@ -1397,8 +1398,6 @@ void loader_destroy_layer_list(const struct loader_instance *inst, struct loader VkResult loader_add_to_layer_list(const struct loader_instance *inst, struct loader_layer_list *list, uint32_t prop_list_count, const struct loader_layer_properties *props) { uint32_t i; - uint16_t layer_api_major_version; - uint16_t layer_api_minor_version; struct loader_layer_properties *layer; if (list->list == NULL || list->capacity == 0) { @@ -1429,18 +1428,6 @@ VkResult loader_add_to_layer_list(const struct loader_instance *inst, struct loa list->capacity = new_capacity; } - // Verify that the layer api version is at least that of the application's request, if not, throw a warning since - // undefined behavior could occur. - layer_api_major_version = VK_VERSION_MAJOR(props[i].info.specVersion); - layer_api_minor_version = VK_VERSION_MINOR(props[i].info.specVersion); - if (inst->app_api_major_version > layer_api_major_version || - (inst->app_api_major_version == layer_api_major_version && inst->app_api_minor_version > layer_api_minor_version)) { - loader_log( - inst, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0, - "loader_add_to_layer_list: Explicit layer %s is using an old API version %d.%d versus application requested %d.%d", - props[i].info.layerName, layer_api_major_version, layer_api_minor_version, inst->app_api_major_version,- inst->app_api_minor_version); - } - memcpy(&list->list[list->count], layer, sizeof(struct loader_layer_properties)); list->count++; } @@ -4538,6 +4525,10 @@ out: VkResult loader_enable_instance_layers(struct loader_instance *inst, const VkInstanceCreateInfo *pCreateInfo, const struct loader_layer_list *instance_layers) { VkResult err; + uint16_t layer_api_major_version; + uint16_t layer_api_minor_version; + uint32_t i; + struct loader_layer_properties *prop; assert(inst && "Cannot have null instance"); @@ -4566,6 +4557,22 @@ VkResult loader_enable_instance_layers(struct loader_instance *inst, const VkIns err = loader_add_layer_names_to_list(inst, &inst->app_activated_layer_list, &inst->expanded_activated_layer_list, pCreateInfo->enabledLayerCount, pCreateInfo->ppEnabledLayerNames, instance_layers); + for (i = 0; i < inst->expanded_activated_layer_list.count; i++) { + // Verify that the layer api version is at least that of the application's request, if not, throw a warning since + // undefined behavior could occur. + prop = inst->expanded_activated_layer_list.list + i; + layer_api_major_version = VK_VERSION_MAJOR(prop->info.specVersion); + layer_api_minor_version = VK_VERSION_MINOR(prop->info.specVersion); + if (inst->app_api_major_version > layer_api_major_version || + (inst->app_api_major_version == layer_api_major_version && inst->app_api_minor_version > layer_api_minor_version)) { + loader_log(inst, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0, + "loader_add_to_layer_list: Explicit layer %s is using an old API version %" PRIu16 ".%" PRIu16 + " versus application requested %" PRIu16 ".%" PRIu16, + prop->info.layerName, layer_api_major_version, layer_api_minor_version, inst->app_api_major_version, + inst->app_api_minor_version); + } + } + return err; } |
