1 // 2 // Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. 3 // 4 // Permission is hereby granted, free of charge, to any person obtaining a copy 5 // of this software and associated documentation files (the "Software"), to deal 6 // in the Software without restriction, including without limitation the rights 7 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 // copies of the Software, and to permit persons to whom the Software is 9 // furnished to do so, subject to the following conditions: 10 // 11 // The above copyright notice and this permission notice shall be included in 12 // all copies or substantial portions of the Software. 13 // 14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 // THE SOFTWARE. 21 // 22 23 #pragma once 24 25 extern const int RESULT_EXCEPTION; 26 extern const int RESULT_ERROR_COMMAND_LINE; 27 extern const int RESULT_ERROR_SOURCE_FILE; 28 extern const int RESULT_ERROR_FORMAT; 29 extern const int RESULT_ERROR_VULKAN; 30 31 enum CMD_LINE_OPT 32 { 33 CMD_LINE_OPT_VERBOSITY, 34 CMD_LINE_OPT_ITERATIONS, 35 CMD_LINE_OPT_LINES, 36 CMD_LINE_OPT_PHYSICAL_DEVICE, 37 CMD_LINE_OPT_USER_DATA, 38 CMD_LINE_OPT_VK_KHR_DEDICATED_ALLOCATION, 39 CMD_LINE_OPT_VK_EXT_MEMORY_BUDGET, 40 CMD_LINE_OPT_VK_LAYER_LUNARG_STANDARD_VALIDATION, 41 CMD_LINE_OPT_MEM_STATS, 42 CMD_LINE_OPT_DUMP_STATS_AFTER_LINE, 43 CMD_LINE_OPT_DEFRAGMENT_AFTER_LINE, 44 CMD_LINE_OPT_DEFRAGMENTATION_FLAGS, 45 CMD_LINE_OPT_DUMP_DETAILED_STATS_AFTER_LINE, 46 }; 47 48 enum class VERBOSITY 49 { 50 MINIMUM = 0, 51 DEFAULT, 52 MAXIMUM, 53 COUNT, 54 }; 55 56 enum class VULKAN_EXTENSION_REQUEST 57 { 58 DISABLED, 59 ENABLED, 60 DEFAULT 61 }; 62 63 enum class OBJECT_TYPE { BUFFER, IMAGE }; 64 65 enum class VMA_FUNCTION 66 { 67 CreatePool, 68 DestroyPool, 69 SetAllocationUserData, 70 CreateBuffer, 71 DestroyBuffer, 72 CreateImage, 73 DestroyImage, 74 FreeMemory, 75 FreeMemoryPages, 76 CreateLostAllocation, 77 AllocateMemory, 78 AllocateMemoryPages, 79 AllocateMemoryForBuffer, 80 AllocateMemoryForImage, 81 MapMemory, 82 UnmapMemory, 83 FlushAllocation, 84 InvalidateAllocation, 85 TouchAllocation, 86 GetAllocationInfo, 87 MakePoolAllocationsLost, 88 ResizeAllocation, 89 DefragmentationBegin, 90 DefragmentationEnd, 91 SetPoolName, 92 Count 93 }; 94 extern const char* VMA_FUNCTION_NAMES[]; 95 96 extern const char* VMA_POOL_CREATE_FLAG_NAMES[]; 97 extern const uint32_t VMA_POOL_CREATE_FLAG_VALUES[]; 98 extern const size_t VMA_POOL_CREATE_FLAG_COUNT; 99 100 extern const char* VK_BUFFER_CREATE_FLAG_NAMES[]; 101 extern const uint32_t VK_BUFFER_CREATE_FLAG_VALUES[]; 102 extern const size_t VK_BUFFER_CREATE_FLAG_COUNT; 103 104 extern const char* VK_BUFFER_USAGE_FLAG_NAMES[]; 105 extern const uint32_t VK_BUFFER_USAGE_FLAG_VALUES[]; 106 extern const size_t VK_BUFFER_USAGE_FLAG_COUNT; 107 108 extern const char* VK_SHARING_MODE_NAMES[]; 109 extern const size_t VK_SHARING_MODE_COUNT; 110 111 extern const char* VK_IMAGE_CREATE_FLAG_NAMES[]; 112 extern const uint32_t VK_IMAGE_CREATE_FLAG_VALUES[]; 113 extern const size_t VK_IMAGE_CREATE_FLAG_COUNT; 114 115 extern const char* VK_IMAGE_TYPE_NAMES[]; 116 extern const size_t VK_IMAGE_TYPE_COUNT; 117 118 extern const char* VK_FORMAT_NAMES[]; 119 extern const uint32_t VK_FORMAT_VALUES[]; 120 extern const size_t VK_FORMAT_COUNT; 121 122 extern const char* VK_SAMPLE_COUNT_NAMES[]; 123 extern const uint32_t VK_SAMPLE_COUNT_VALUES[]; 124 extern const size_t VK_SAMPLE_COUNT_COUNT; 125 126 extern const char* VK_IMAGE_TILING_NAMES[]; 127 extern const size_t VK_IMAGE_TILING_COUNT; 128 129 extern const char* VK_IMAGE_USAGE_FLAG_NAMES[]; 130 extern const uint32_t VK_IMAGE_USAGE_FLAG_VALUES[]; 131 extern const size_t VK_IMAGE_USAGE_FLAG_COUNT; 132 133 extern const char* VK_IMAGE_TILING_NAMES[]; 134 extern const size_t VK_IMAGE_TILING_COUNT; 135 136 extern const char* VK_IMAGE_LAYOUT_NAMES[]; 137 extern const uint32_t VK_IMAGE_LAYOUT_VALUES[]; 138 extern const size_t VK_IMAGE_LAYOUT_COUNT; 139 140 extern const char* VMA_ALLOCATION_CREATE_FLAG_NAMES[]; 141 extern const uint32_t VMA_ALLOCATION_CREATE_FLAG_VALUES[]; 142 extern const size_t VMA_ALLOCATION_CREATE_FLAG_COUNT; 143 144 extern const char* VMA_MEMORY_USAGE_NAMES[]; 145 extern const size_t VMA_MEMORY_USAGE_COUNT; 146 147 extern const char* VK_MEMORY_PROPERTY_FLAG_NAMES[]; 148 extern const uint32_t VK_MEMORY_PROPERTY_FLAG_VALUES[]; 149 extern const size_t VK_MEMORY_PROPERTY_FLAG_COUNT; 150