Adam Sawicki | ae5c466 | 2019-01-02 10:23:35 +0100 | [diff] [blame] | 1 | //
|
Adam Sawicki | aa18374 | 2021-02-16 17:28:49 +0100 | [diff] [blame] | 2 | // Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved.
|
Adam Sawicki | ae5c466 | 2019-01-02 10:23:35 +0100 | [diff] [blame] | 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 |
|
Adam Sawicki | f1a793c | 2018-03-13 15:42:22 +0100 | [diff] [blame] | 23 | #ifndef VMA_USAGE_H_
|
| 24 | #define VMA_USAGE_H_
|
| 25 |
|
| 26 | #ifdef _WIN32
|
| 27 |
|
| 28 | #define NOMINMAX
|
| 29 | #define WIN32_LEAN_AND_MEAN
|
| 30 | #include <Windows.h>
|
| 31 | #define VK_USE_PLATFORM_WIN32_KHR
|
| 32 |
|
Andras Nyiscsak | 641a16c | 2019-11-18 15:09:34 +0100 | [diff] [blame] | 33 | #else // #ifdef _WIN32
|
| 34 |
|
| 35 | #include <vulkan/vulkan.h>
|
| 36 |
|
| 37 | #endif // #ifdef _WIN32
|
| 38 |
|
| 39 | #ifdef _MSVC_LANG
|
| 40 |
|
Adam Sawicki | e8b0148 | 2018-12-06 14:47:59 +0100 | [diff] [blame] | 41 | // Uncomment to test including `vulkan.h` on your own before including VMA.
|
| 42 | //#include <vulkan/vulkan.h>
|
Adam Sawicki | f1a793c | 2018-03-13 15:42:22 +0100 | [diff] [blame] | 43 |
|
| 44 | /*
|
| 45 | In every place where you want to use Vulkan Memory Allocator, define appropriate
|
| 46 | macros if you want to configure the library and then include its header to
|
| 47 | include all public interface declarations. Example:
|
| 48 | */
|
| 49 |
|
Adam Sawicki | 212a4a6 | 2018-06-14 15:44:45 +0200 | [diff] [blame] | 50 | //#define VMA_HEAVY_ASSERT(expr) assert(expr)
|
Adam Sawicki | 0a60713 | 2018-08-24 11:18:41 +0200 | [diff] [blame] | 51 | //#define VMA_USE_STL_CONTAINERS 1
|
Adam Sawicki | 4f91939 | 2018-04-03 13:45:39 +0200 | [diff] [blame] | 52 | //#define VMA_DEDICATED_ALLOCATION 0
|
Adam Sawicki | 212a4a6 | 2018-06-14 15:44:45 +0200 | [diff] [blame] | 53 | //#define VMA_DEBUG_MARGIN 16
|
| 54 | //#define VMA_DEBUG_DETECT_CORRUPTION 1
|
Adam Sawicki | e44c626 | 2018-06-15 14:30:39 +0200 | [diff] [blame] | 55 | //#define VMA_DEBUG_INITIALIZE_ALLOCATIONS 1
|
Adam Sawicki | 2024cc5 | 2019-07-02 15:19:05 +0200 | [diff] [blame] | 56 | //#define VMA_RECORDING_ENABLED 1
|
Adam Sawicki | 0a60713 | 2018-08-24 11:18:41 +0200 | [diff] [blame] | 57 | //#define VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY 256
|
Adam Sawicki | f863a1d | 2018-10-10 16:43:44 +0200 | [diff] [blame] | 58 | //#define VMA_USE_STL_SHARED_MUTEX 0
|
| 59 | //#define VMA_DEBUG_GLOBAL_MUTEX 1
|
Adam Sawicki | 4ac8ff8 | 2019-11-18 14:47:33 +0100 | [diff] [blame] | 60 | //#define VMA_MEMORY_BUDGET 0
|
Adam Sawicki | f9921ae | 2020-06-04 13:31:31 +0200 | [diff] [blame] | 61 | #define VMA_STATIC_VULKAN_FUNCTIONS 0
|
| 62 | #define VMA_DYNAMIC_VULKAN_FUNCTIONS 1
|
Adam Sawicki | 10f68cb | 2019-11-22 17:41:59 +0100 | [diff] [blame] | 63 |
|
Adam Sawicki | 0d4f523 | 2021-02-16 16:54:27 +0100 | [diff] [blame] | 64 | #define VMA_VULKAN_VERSION 1002000 // Vulkan 1.2
|
| 65 | //#define VMA_VULKAN_VERSION 1001000 // Vulkan 1.1
|
Adam Sawicki | 1296e2d | 2019-11-25 11:13:53 +0100 | [diff] [blame] | 66 | //#define VMA_VULKAN_VERSION 1000000 // Vulkan 1.0
|
Adam Sawicki | 10f68cb | 2019-11-22 17:41:59 +0100 | [diff] [blame] | 67 |
|
Adam Sawicki | fd366b6 | 2019-01-24 15:26:43 +0100 | [diff] [blame] | 68 | /*
|
| 69 | #define VMA_DEBUG_LOG(format, ...) do { \
|
| 70 | printf(format, __VA_ARGS__); \
|
| 71 | printf("\n"); \
|
| 72 | } while(false)
|
| 73 | */
|
Adam Sawicki | 212a4a6 | 2018-06-14 15:44:45 +0200 | [diff] [blame] | 74 |
|
Adam Sawicki | f1a793c | 2018-03-13 15:42:22 +0100 | [diff] [blame] | 75 | #pragma warning(push, 4)
|
| 76 | #pragma warning(disable: 4127) // conditional expression is constant
|
| 77 | #pragma warning(disable: 4100) // unreferenced formal parameter
|
| 78 | #pragma warning(disable: 4189) // local variable is initialized but not referenced
|
Adam Sawicki | 5afe784 | 2019-07-26 15:09:07 +0200 | [diff] [blame] | 79 | #pragma warning(disable: 4324) // structure was padded due to alignment specifier
|
Adam Sawicki | f1a793c | 2018-03-13 15:42:22 +0100 | [diff] [blame] | 80 |
|
Andras Nyiscsak | 641a16c | 2019-11-18 15:09:34 +0100 | [diff] [blame] | 81 | #endif // #ifdef _MSVC_LANG
|
Adam Sawicki | f1a793c | 2018-03-13 15:42:22 +0100 | [diff] [blame] | 82 |
|
Adam Sawicki | c7d1b58 | 2018-08-27 12:30:53 +0200 | [diff] [blame] | 83 | #ifdef __clang__
|
| 84 | #pragma clang diagnostic push
|
| 85 | #pragma clang diagnostic ignored "-Wtautological-compare" // comparison of unsigned expression < 0 is always false
|
Andras Nyiscsak | 641a16c | 2019-11-18 15:09:34 +0100 | [diff] [blame] | 86 | #pragma clang diagnostic ignored "-Wunused-private-field"
|
| 87 | #pragma clang diagnostic ignored "-Wunused-parameter"
|
| 88 | #pragma clang diagnostic ignored "-Wmissing-field-initializers"
|
Adam Sawicki | facf05e | 2020-04-08 17:09:59 +0200 | [diff] [blame] | 89 | #pragma clang diagnostic ignored "-Wnullability-completeness"
|
Adam Sawicki | c7d1b58 | 2018-08-27 12:30:53 +0200 | [diff] [blame] | 90 | #endif
|
| 91 |
|
Adam Sawicki | 59ec080 | 2021-04-19 13:46:49 +0200 | [diff] [blame^] | 92 | #include "../include/vk_mem_alloc.h"
|
Adam Sawicki | f1a793c | 2018-03-13 15:42:22 +0100 | [diff] [blame] | 93 |
|
Adam Sawicki | c7d1b58 | 2018-08-27 12:30:53 +0200 | [diff] [blame] | 94 | #ifdef __clang__
|
| 95 | #pragma clang diagnostic pop
|
| 96 | #endif
|
| 97 |
|
Andras Nyiscsak | 641a16c | 2019-11-18 15:09:34 +0100 | [diff] [blame] | 98 | #ifdef _MSVC_LANG
|
| 99 | #pragma warning(pop)
|
Adam Sawicki | f1a793c | 2018-03-13 15:42:22 +0100 | [diff] [blame] | 100 | #endif
|
Andras Nyiscsak | 641a16c | 2019-11-18 15:09:34 +0100 | [diff] [blame] | 101 |
|
Adam Sawicki | 8ef0d20 | 2020-03-02 15:43:47 +0100 | [diff] [blame] | 102 | #endif
|