diff options
author | Dave Houlton <daveh@lunarg.com> | 2018-10-24 18:21:06 -0600 |
---|---|---|
committer | Dave Houlton <daveh@lunarg.com> | 2018-10-26 12:59:37 -0600 |
commit | 4d9b2f82b04efa37c1b2695bf5a8621cbd1e3aeb (patch) | |
tree | 0c6943d0cd8aa58bda051ea1d29797a549320062 | |
parent | 9b9532b4c9fc97236169029f42a8ffeafdbb9185 (diff) | |
download | Vulkan-ValidationLayers-4d9b2f82b04efa37c1b2695bf5a8621cbd1e3aeb.tar.gz Vulkan-ValidationLayers-4d9b2f82b04efa37c1b2695bf5a8621cbd1e3aeb.tar.bz2 Vulkan-ValidationLayers-4d9b2f82b04efa37c1b2695bf5a8621cbd1e3aeb.zip |
layers: replace VUID error map with struct
Replace the std::unordered_map container holding the VUID -> spec text
mapping with a vanilla struct of char * literal strings. The map is
now built on first use from the string table.
This change is a workaround for slow build times observed with use of
the directly initialized unordered_map, in particular on 32-bit Android
builds.
Change-Id: Ic0ab0bf443a57ee616b3cac17fc8ea0442e6d0c2
-rw-r--r-- | layers/core_validation.cpp | 1 | ||||
-rw-r--r-- | layers/core_validation.h | 9 | ||||
-rw-r--r-- | layers/core_validation_types.h | 9 | ||||
-rw-r--r-- | layers/descriptor_sets.h | 9 | ||||
-rw-r--r-- | layers/object_tracker.h | 1 | ||||
-rw-r--r-- | layers/object_tracker_utils.cpp | 2 | ||||
-rw-r--r-- | layers/parameter_validation.h | 9 | ||||
-rw-r--r-- | layers/parameter_validation_utils.cpp | 9 | ||||
-rw-r--r-- | layers/threading.cpp | 11 | ||||
-rw-r--r-- | layers/unique_objects.cpp | 10 | ||||
-rw-r--r-- | layers/vk_layer_logging.h | 22 | ||||
-rw-r--r-- | layers/vk_validation_error_messages.h | 18 | ||||
-rwxr-xr-x | scripts/vk_validation_stats.py | 15 | ||||
-rw-r--r-- | tests/layer_validation_tests.cpp | 1 | ||||
-rw-r--r-- | tests/layers/device_profile_api.cpp | 9 |
15 files changed, 64 insertions, 71 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 983e2961d..b98c66e53 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -35,7 +35,6 @@ // Allow use of STL min and max functions in Windows #define NOMINMAX -#define VALIDATION_ERROR_MAP_IMPL #include <algorithm> #include <array> diff --git a/layers/core_validation.h b/layers/core_validation.h index fbd055c1d..8a7397394 100644 --- a/layers/core_validation.h +++ b/layers/core_validation.h @@ -1,7 +1,7 @@ -/* Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. - * Copyright (C) 2015-2016 Google Inc. +/* Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. + * Copyright (C) 2015-2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ #pragma once #include "core_validation_error_enums.h" -#include "vk_validation_error_messages.h" #include "core_validation_types.h" #include "descriptor_sets.h" #include "vk_layer_logging.h" diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h index 0de7dd3f3..f471d2407 100644 --- a/layers/core_validation_types.h +++ b/layers/core_validation_types.h @@ -1,7 +1,7 @@ -/* Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. - * Copyright (C) 2015-2016 Google Inc. +/* Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. + * Copyright (C) 2015-2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ #include "hash_vk_types.h" #include "vk_safe_struct.h" #include "vulkan/vulkan.h" -#include "vk_validation_error_messages.h" #include "vk_layer_logging.h" #include "vk_object_types.h" #include "vk_extension_helper.h" diff --git a/layers/descriptor_sets.h b/layers/descriptor_sets.h index 18c428813..a542ef220 100644 --- a/layers/descriptor_sets.h +++ b/layers/descriptor_sets.h @@ -1,7 +1,7 @@ -/* Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. - * Copyright (C) 2015-2016 Google Inc. +/* Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. + * Copyright (C) 2015-2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ #define CORE_VALIDATION_DESCRIPTOR_SETS_H_ #include "core_validation_error_enums.h" -#include "vk_validation_error_messages.h" #include "core_validation_types.h" #include "hash_vk_types.h" #include "vk_layer_logging.h" diff --git a/layers/object_tracker.h b/layers/object_tracker.h index 7d7880edf..6694c3fa3 100644 --- a/layers/object_tracker.h +++ b/layers/object_tracker.h @@ -40,7 +40,6 @@ #include "vk_layer_utils.h" #include "vulkan/vk_layer.h" #include "vk_dispatch_table_helper.h" -#include "vk_validation_error_messages.h" #include "vk_extension_helper.h" namespace object_tracker { diff --git a/layers/object_tracker_utils.cpp b/layers/object_tracker_utils.cpp index 54d7b8c7b..9a7161970 100644 --- a/layers/object_tracker_utils.cpp +++ b/layers/object_tracker_utils.cpp @@ -20,8 +20,6 @@ * Author: Tobin Ehlis <tobin@lunarg.com> */ -#define VALIDATION_ERROR_MAP_IMPL - #include "object_tracker.h" namespace object_tracker { diff --git a/layers/parameter_validation.h b/layers/parameter_validation.h index 19887b1fe..03643bee1 100644 --- a/layers/parameter_validation.h +++ b/layers/parameter_validation.h @@ -1,7 +1,7 @@ -/* Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. - * Copyright (C) 2015-2016 Google Inc. +/* Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. + * Copyright (C) 2015-2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,7 +33,6 @@ #include "vulkan/vulkan.h" #include "vk_enum_string_helper.h" #include "vk_layer_logging.h" -#include "vk_validation_error_messages.h" #include "vk_extension_helper.h" #include "vk_layer_utils.h" diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp index 436b34054..29cc31573 100644 --- a/layers/parameter_validation_utils.cpp +++ b/layers/parameter_validation_utils.cpp @@ -1,7 +1,7 @@ -/* Copyright (c) 2015-2017 The Khronos Group Inc. - * Copyright (c) 2015-2017 Valve Corporation - * Copyright (c) 2015-2017 LunarG, Inc. - * Copyright (C) 2015-2017 Google Inc. +/* Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. + * Copyright (C) 2015-2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ */ #define NOMINMAX -#define VALIDATION_ERROR_MAP_IMPL #include <limits.h> #include <math.h> diff --git a/layers/threading.cpp b/layers/threading.cpp index d640f6bd8..08020ad43 100644 --- a/layers/threading.cpp +++ b/layers/threading.cpp @@ -1,8 +1,7 @@ -/* - * Vulkan - * - * Copyright (C) 2015 Valve, Inc. - * Copyright (C) 2016 Google, Inc. +/* Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. + * Copyright (C) 2015-2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +21,6 @@ #include <unordered_map> #include <list> -#define VALIDATION_ERROR_MAP_IMPL - #include "vk_loader_platform.h" #include "vulkan/vk_layer.h" #include "vk_layer_config.h" diff --git a/layers/unique_objects.cpp b/layers/unique_objects.cpp index 254ef8bdb..2625a9010 100644 --- a/layers/unique_objects.cpp +++ b/layers/unique_objects.cpp @@ -1,8 +1,8 @@ /* - * Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. - * Copyright (c) 2015-2016 Google, Inc. + * Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. + * Copyright (c) 2015-2018 Google, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ */ #define NOMINMAX -#define VALIDATION_ERROR_MAP_IMPL #include <stdio.h> #include <stdlib.h> @@ -43,7 +42,6 @@ #include "vk_layer_logging.h" #include "vk_layer_utils.h" #include "vk_enum_string_helper.h" -#include "vk_validation_error_messages.h" #include "vk_object_types.h" #include "vk_extension_helper.h" #include "vulkan/vk_layer.h" diff --git a/layers/vk_layer_logging.h b/layers/vk_layer_logging.h index 039e0d3bc..ad02bb6f8 100644 --- a/layers/vk_layer_logging.h +++ b/layers/vk_layer_logging.h @@ -1,6 +1,6 @@ -/* Copyright (c) 2015-2017 The Khronos Group Inc. - * Copyright (c) 2015-2017 Valve Corporation - * Copyright (c) 2015-2017 LunarG, Inc. +/* Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ * Author: Courtney Goeltzenleuchter <courtney@LunarG.com> * Author: Tobin Ehlis <tobin@lunarg.com> * Author: Mark Young <marky@lunarg.com> + * Author: Dave Houlton <daveh@lunarg.com> * */ @@ -898,13 +899,24 @@ static inline bool log_msg(const debug_report_data *debug_data, VkFlags msg_flag // Append the spec error text to the error message, unless it's an UNASSIGNED or UNDEFINED vuid if ((vuid_text.find("UNASSIGNED-") == std::string::npos) && (vuid_text.find(kVUIDUndefined) == std::string::npos)) { - if (vuid_to_error_text_map.find(vuid_text) == vuid_to_error_text_map.end()) { + // Linear search makes no assumptions about the layout of the string table + // This is not fast, but it does not need to be at this point in the error reporting path + uint32_t num_vuids = sizeof(vuid_spec_text) / sizeof(vuid_spec_text_pair); + const char *spec_text = nullptr; + for (uint32_t i = 0; i < num_vuids; i++) { + if (0 == strcmp(vuid_text.c_str(), vuid_spec_text[i].vuid)) { + spec_text = vuid_spec_text[i].spec_text; + break; + } + } + + if (nullptr == spec_text) { // If this happens, you've hit a VUID string that isn't defined in the spec's json file // Try running 'vk_validation_stats -c' to look for invalid VUID strings in the repo code assert(0); } else { str_plus_spec_text += " The Vulkan spec states: "; - str_plus_spec_text += vuid_to_error_text_map[vuid_text]; + str_plus_spec_text += spec_text; } } diff --git a/layers/vk_validation_error_messages.h b/layers/vk_validation_error_messages.h index 2f9b89b31..27f86c5ec 100644 --- a/layers/vk_validation_error_messages.h +++ b/layers/vk_validation_error_messages.h @@ -27,12 +27,13 @@ // Disable auto-formatting for generated file // clang-format off -#include <string> -#include <unordered_map> - // Mapping from VUID string to the corresponding spec text -#ifdef VALIDATION_ERROR_MAP_IMPL -std::unordered_map<std::string, std::string> vuid_to_error_text_map { +typedef struct _vuid_spec_text_pair { + const char * vuid; + const char * spec_text; +} vuid_spec_text_pair; + +static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkAccelerationStructureCreateInfoNVX-flags-parameter", "flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNVX values (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkAccelerationStructureCreateInfoNVX-flags-parameter)"}, {"VUID-VkAccelerationStructureCreateInfoNVX-geometryCount-02239", "geometryCount must be less than or equal to VkPhysicalDeviceRaytracingPropertiesNVX::maxGeometryCount (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkAccelerationStructureCreateInfoNVX-geometryCount-02239)"}, {"VUID-VkAccelerationStructureCreateInfoNVX-pGeometries-parameter", "If geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNVX structures (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkAccelerationStructureCreateInfoNVX-pGeometries-parameter)"}, @@ -795,9 +796,9 @@ std::unordered_map<std::string, std::string> vuid_to_error_text_map { {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748", "If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState::scissorCount VkRect2D structures (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748)"}, {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749", "If the wide lines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0 (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749)"}, {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754", "If the depth bias clamping feature is not enabled, no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BIAS, and the depthBiasEnable member of pRasterizationState is VK_TRUE, the depthBiasClamp member of pRasterizationState must be 0.0 (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754)"}, - {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755", "If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755)"}, - {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755[!(VK_EXT_depth_range_unrestricted)]", "If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755)"}, + {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755", "If the VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755)"}, {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755[(VK_EXT_depth_range_unrestricted)]", "If the VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755)"}, + {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755[!(VK_EXT_depth_range_unrestricted)]", "If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755)"}, {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521", "If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure chained to the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521)"}, {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522", "If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure chained to the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522)"}, {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523", "If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure chained to the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523)"}, @@ -4817,6 +4818,3 @@ std::unordered_map<std::string, std::string> vuid_to_error_text_map { {"VUID-vkWaitForFences-pFences-parameter", "pFences must be a valid pointer to an array of fenceCount valid VkFence handles (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkWaitForFences-pFences-parameter)"}, {"VUID-vkWaitForFences-pFences-parent", "Each element of pFences must have been created, allocated, or retrieved from device (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkWaitForFences-pFences-parent)"}, }; -#else -extern std::unordered_map<std::string, std::string> vuid_to_error_text_map; -#endif
\ No newline at end of file diff --git a/scripts/vk_validation_stats.py b/scripts/vk_validation_stats.py index faacdf3d8..a4619bc1b 100755 --- a/scripts/vk_validation_stats.py +++ b/scripts/vk_validation_stats.py @@ -493,17 +493,16 @@ class OutputDatabase: // Disable auto-formatting for generated file // clang-format off -#include <string> -#include <unordered_map> - // Mapping from VUID string to the corresponding spec text -#ifdef VALIDATION_ERROR_MAP_IMPL -std::unordered_map<std::string, std::string> vuid_to_error_text_map { +typedef struct _vuid_spec_text_pair { + const char * vuid; + const char * spec_text; +} vuid_spec_text_pair; + +static const vuid_spec_text_pair vuid_spec_text[] = { """ self.header_postamble = """}; -#else -extern std::unordered_map<std::string, std::string> vuid_to_error_text_map; -#endif""" +""" self.spec_url = "https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html" def dump_txt(self): diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp index 36f425723..511a95058 100644 --- a/tests/layer_validation_tests.cpp +++ b/tests/layer_validation_tests.cpp @@ -41,7 +41,6 @@ #include "test_common.h" #include "vk_layer_config.h" #include "vk_format_utils.h" -#include "vk_validation_error_messages.h" #include "vkrenderframework.h" #include "vk_typemap_helper.h" diff --git a/tests/layers/device_profile_api.cpp b/tests/layers/device_profile_api.cpp index f6532eba8..e47a51c93 100644 --- a/tests/layers/device_profile_api.cpp +++ b/tests/layers/device_profile_api.cpp @@ -1,7 +1,8 @@ /* - * - * Copyright (C) 2017 Valve Corporation - * Copyright (C) 2017 LunarG, Inc. + * Copyright (c) 2015-2018 The Khronos Group Inc. + * Copyright (c) 2015-2018 Valve Corporation + * Copyright (c) 2015-2018 LunarG, Inc. + * Copyright (C) 2015-2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,8 +26,6 @@ #include <unordered_map> #include <mutex> -#define VALIDATION_ERROR_MAP_IMPL - #include "vk_layer_data.h" #include "vk_dispatch_table_helper.h" #include "vk_layer_utils.h" |