3 #define LUG_VULKAN_PHYSICAL_DEVICE_TYPE(macro) \ 4 macro(VK_PHYSICAL_DEVICE_TYPE_OTHER) \ 5 macro(VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU) \ 6 macro(VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU) \ 7 macro(VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU) \ 8 macro(VK_PHYSICAL_DEVICE_TYPE_CPU) 10 #define LUG_VULKAN_FORMAT(macro) \ 11 macro(VK_FORMAT_UNDEFINED) \ 12 macro(VK_FORMAT_R4G4_UNORM_PACK8) \ 13 macro(VK_FORMAT_R4G4B4A4_UNORM_PACK16) \ 14 macro(VK_FORMAT_B4G4R4A4_UNORM_PACK16) \ 15 macro(VK_FORMAT_R5G6B5_UNORM_PACK16) \ 16 macro(VK_FORMAT_B5G6R5_UNORM_PACK16) \ 17 macro(VK_FORMAT_R5G5B5A1_UNORM_PACK16) \ 18 macro(VK_FORMAT_B5G5R5A1_UNORM_PACK16) \ 19 macro(VK_FORMAT_A1R5G5B5_UNORM_PACK16) \ 20 macro(VK_FORMAT_R8_UNORM) \ 21 macro(VK_FORMAT_R8_SNORM) \ 22 macro(VK_FORMAT_R8_USCALED) \ 23 macro(VK_FORMAT_R8_SSCALED) \ 24 macro(VK_FORMAT_R8_UINT) \ 25 macro(VK_FORMAT_R8_SINT) \ 26 macro(VK_FORMAT_R8_SRGB) \ 27 macro(VK_FORMAT_R8G8_UNORM) \ 28 macro(VK_FORMAT_R8G8_SNORM) \ 29 macro(VK_FORMAT_R8G8_USCALED) \ 30 macro(VK_FORMAT_R8G8_SSCALED) \ 31 macro(VK_FORMAT_R8G8_UINT) \ 32 macro(VK_FORMAT_R8G8_SINT) \ 33 macro(VK_FORMAT_R8G8_SRGB) \ 34 macro(VK_FORMAT_R8G8B8_UNORM) \ 35 macro(VK_FORMAT_R8G8B8_SNORM) \ 36 macro(VK_FORMAT_R8G8B8_USCALED) \ 37 macro(VK_FORMAT_R8G8B8_SSCALED) \ 38 macro(VK_FORMAT_R8G8B8_UINT) \ 39 macro(VK_FORMAT_R8G8B8_SINT) \ 40 macro(VK_FORMAT_R8G8B8_SRGB) \ 41 macro(VK_FORMAT_B8G8R8_UNORM) \ 42 macro(VK_FORMAT_B8G8R8_SNORM) \ 43 macro(VK_FORMAT_B8G8R8_USCALED) \ 44 macro(VK_FORMAT_B8G8R8_SSCALED) \ 45 macro(VK_FORMAT_B8G8R8_UINT) \ 46 macro(VK_FORMAT_B8G8R8_SINT) \ 47 macro(VK_FORMAT_B8G8R8_SRGB) \ 48 macro(VK_FORMAT_R8G8B8A8_UNORM) \ 49 macro(VK_FORMAT_R8G8B8A8_SNORM) \ 50 macro(VK_FORMAT_R8G8B8A8_USCALED) \ 51 macro(VK_FORMAT_R8G8B8A8_SSCALED) \ 52 macro(VK_FORMAT_R8G8B8A8_UINT) \ 53 macro(VK_FORMAT_R8G8B8A8_SINT) \ 54 macro(VK_FORMAT_R8G8B8A8_SRGB) \ 55 macro(VK_FORMAT_B8G8R8A8_UNORM) \ 56 macro(VK_FORMAT_B8G8R8A8_SNORM) \ 57 macro(VK_FORMAT_B8G8R8A8_USCALED) \ 58 macro(VK_FORMAT_B8G8R8A8_SSCALED) \ 59 macro(VK_FORMAT_B8G8R8A8_UINT) \ 60 macro(VK_FORMAT_B8G8R8A8_SINT) \ 61 macro(VK_FORMAT_B8G8R8A8_SRGB) \ 62 macro(VK_FORMAT_A8B8G8R8_UNORM_PACK32) \ 63 macro(VK_FORMAT_A8B8G8R8_SNORM_PACK32) \ 64 macro(VK_FORMAT_A8B8G8R8_USCALED_PACK32) \ 65 macro(VK_FORMAT_A8B8G8R8_SSCALED_PACK32) \ 66 macro(VK_FORMAT_A8B8G8R8_UINT_PACK32) \ 67 macro(VK_FORMAT_A8B8G8R8_SINT_PACK32) \ 68 macro(VK_FORMAT_A8B8G8R8_SRGB_PACK32) \ 69 macro(VK_FORMAT_A2R10G10B10_UNORM_PACK32) \ 70 macro(VK_FORMAT_A2R10G10B10_SNORM_PACK32) \ 71 macro(VK_FORMAT_A2R10G10B10_USCALED_PACK32) \ 72 macro(VK_FORMAT_A2R10G10B10_SSCALED_PACK32) \ 73 macro(VK_FORMAT_A2R10G10B10_UINT_PACK32) \ 74 macro(VK_FORMAT_A2R10G10B10_SINT_PACK32) \ 75 macro(VK_FORMAT_A2B10G10R10_UNORM_PACK32) \ 76 macro(VK_FORMAT_A2B10G10R10_SNORM_PACK32) \ 77 macro(VK_FORMAT_A2B10G10R10_USCALED_PACK32) \ 78 macro(VK_FORMAT_A2B10G10R10_SSCALED_PACK32) \ 79 macro(VK_FORMAT_A2B10G10R10_UINT_PACK32) \ 80 macro(VK_FORMAT_A2B10G10R10_SINT_PACK32) \ 81 macro(VK_FORMAT_R16_UNORM) \ 82 macro(VK_FORMAT_R16_SNORM) \ 83 macro(VK_FORMAT_R16_USCALED) \ 84 macro(VK_FORMAT_R16_SSCALED) \ 85 macro(VK_FORMAT_R16_UINT) \ 86 macro(VK_FORMAT_R16_SINT) \ 87 macro(VK_FORMAT_R16_SFLOAT) \ 88 macro(VK_FORMAT_R16G16_UNORM) \ 89 macro(VK_FORMAT_R16G16_SNORM) \ 90 macro(VK_FORMAT_R16G16_USCALED) \ 91 macro(VK_FORMAT_R16G16_SSCALED) \ 92 macro(VK_FORMAT_R16G16_UINT) \ 93 macro(VK_FORMAT_R16G16_SINT) \ 94 macro(VK_FORMAT_R16G16_SFLOAT) \ 95 macro(VK_FORMAT_R16G16B16_UNORM) \ 96 macro(VK_FORMAT_R16G16B16_SNORM) \ 97 macro(VK_FORMAT_R16G16B16_USCALED) \ 98 macro(VK_FORMAT_R16G16B16_SSCALED) \ 99 macro(VK_FORMAT_R16G16B16_UINT) \ 100 macro(VK_FORMAT_R16G16B16_SINT) \ 101 macro(VK_FORMAT_R16G16B16_SFLOAT) \ 102 macro(VK_FORMAT_R16G16B16A16_UNORM) \ 103 macro(VK_FORMAT_R16G16B16A16_SNORM) \ 104 macro(VK_FORMAT_R16G16B16A16_USCALED) \ 105 macro(VK_FORMAT_R16G16B16A16_SSCALED) \ 106 macro(VK_FORMAT_R16G16B16A16_UINT) \ 107 macro(VK_FORMAT_R16G16B16A16_SINT) \ 108 macro(VK_FORMAT_R16G16B16A16_SFLOAT) \ 109 macro(VK_FORMAT_R32_UINT) \ 110 macro(VK_FORMAT_R32_SINT) \ 111 macro(VK_FORMAT_R32_SFLOAT) \ 112 macro(VK_FORMAT_R32G32_UINT) \ 113 macro(VK_FORMAT_R32G32_SINT) \ 114 macro(VK_FORMAT_R32G32_SFLOAT) \ 115 macro(VK_FORMAT_R32G32B32_UINT) \ 116 macro(VK_FORMAT_R32G32B32_SINT) \ 117 macro(VK_FORMAT_R32G32B32_SFLOAT) \ 118 macro(VK_FORMAT_R32G32B32A32_UINT) \ 119 macro(VK_FORMAT_R32G32B32A32_SINT) \ 120 macro(VK_FORMAT_R32G32B32A32_SFLOAT) \ 121 macro(VK_FORMAT_R64_UINT) \ 122 macro(VK_FORMAT_R64_SINT) \ 123 macro(VK_FORMAT_R64_SFLOAT) \ 124 macro(VK_FORMAT_R64G64_UINT) \ 125 macro(VK_FORMAT_R64G64_SINT) \ 126 macro(VK_FORMAT_R64G64_SFLOAT) \ 127 macro(VK_FORMAT_R64G64B64_UINT) \ 128 macro(VK_FORMAT_R64G64B64_SINT) \ 129 macro(VK_FORMAT_R64G64B64_SFLOAT) \ 130 macro(VK_FORMAT_R64G64B64A64_UINT) \ 131 macro(VK_FORMAT_R64G64B64A64_SINT) \ 132 macro(VK_FORMAT_R64G64B64A64_SFLOAT) \ 133 macro(VK_FORMAT_B10G11R11_UFLOAT_PACK32) \ 134 macro(VK_FORMAT_E5B9G9R9_UFLOAT_PACK32) \ 135 macro(VK_FORMAT_D16_UNORM) \ 136 macro(VK_FORMAT_X8_D24_UNORM_PACK32) \ 137 macro(VK_FORMAT_D32_SFLOAT) \ 138 macro(VK_FORMAT_S8_UINT) \ 139 macro(VK_FORMAT_D16_UNORM_S8_UINT) \ 140 macro(VK_FORMAT_D24_UNORM_S8_UINT) \ 141 macro(VK_FORMAT_D32_SFLOAT_S8_UINT) \ 142 macro(VK_FORMAT_BC1_RGB_UNORM_BLOCK) \ 143 macro(VK_FORMAT_BC1_RGB_SRGB_BLOCK) \ 144 macro(VK_FORMAT_BC1_RGBA_UNORM_BLOCK) \ 145 macro(VK_FORMAT_BC1_RGBA_SRGB_BLOCK) \ 146 macro(VK_FORMAT_BC2_UNORM_BLOCK) \ 147 macro(VK_FORMAT_BC2_SRGB_BLOCK) \ 148 macro(VK_FORMAT_BC3_UNORM_BLOCK) \ 149 macro(VK_FORMAT_BC3_SRGB_BLOCK) \ 150 macro(VK_FORMAT_BC4_UNORM_BLOCK) \ 151 macro(VK_FORMAT_BC4_SNORM_BLOCK) \ 152 macro(VK_FORMAT_BC5_UNORM_BLOCK) \ 153 macro(VK_FORMAT_BC5_SNORM_BLOCK) \ 154 macro(VK_FORMAT_BC6H_UFLOAT_BLOCK) \ 155 macro(VK_FORMAT_BC6H_SFLOAT_BLOCK) \ 156 macro(VK_FORMAT_BC7_UNORM_BLOCK) \ 157 macro(VK_FORMAT_BC7_SRGB_BLOCK) \ 158 macro(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK) \ 159 macro(VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK) \ 160 macro(VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK) \ 161 macro(VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK) \ 162 macro(VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK) \ 163 macro(VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK) \ 164 macro(VK_FORMAT_EAC_R11_UNORM_BLOCK) \ 165 macro(VK_FORMAT_EAC_R11_SNORM_BLOCK) \ 166 macro(VK_FORMAT_EAC_R11G11_UNORM_BLOCK) \ 167 macro(VK_FORMAT_EAC_R11G11_SNORM_BLOCK) \ 168 macro(VK_FORMAT_ASTC_4x4_UNORM_BLOCK) \ 169 macro(VK_FORMAT_ASTC_4x4_SRGB_BLOCK) \ 170 macro(VK_FORMAT_ASTC_5x4_UNORM_BLOCK) \ 171 macro(VK_FORMAT_ASTC_5x4_SRGB_BLOCK) \ 172 macro(VK_FORMAT_ASTC_5x5_UNORM_BLOCK) \ 173 macro(VK_FORMAT_ASTC_5x5_SRGB_BLOCK) \ 174 macro(VK_FORMAT_ASTC_6x5_UNORM_BLOCK) \ 175 macro(VK_FORMAT_ASTC_6x5_SRGB_BLOCK) \ 176 macro(VK_FORMAT_ASTC_6x6_UNORM_BLOCK) \ 177 macro(VK_FORMAT_ASTC_6x6_SRGB_BLOCK) \ 178 macro(VK_FORMAT_ASTC_8x5_UNORM_BLOCK) \ 179 macro(VK_FORMAT_ASTC_8x5_SRGB_BLOCK) \ 180 macro(VK_FORMAT_ASTC_8x6_UNORM_BLOCK) \ 181 macro(VK_FORMAT_ASTC_8x6_SRGB_BLOCK) \ 182 macro(VK_FORMAT_ASTC_8x8_UNORM_BLOCK) \ 183 macro(VK_FORMAT_ASTC_8x8_SRGB_BLOCK) \ 184 macro(VK_FORMAT_ASTC_10x5_UNORM_BLOCK) \ 185 macro(VK_FORMAT_ASTC_10x5_SRGB_BLOCK) \ 186 macro(VK_FORMAT_ASTC_10x6_UNORM_BLOCK) \ 187 macro(VK_FORMAT_ASTC_10x6_SRGB_BLOCK) \ 188 macro(VK_FORMAT_ASTC_10x8_UNORM_BLOCK) \ 189 macro(VK_FORMAT_ASTC_10x8_SRGB_BLOCK) \ 190 macro(VK_FORMAT_ASTC_10x10_UNORM_BLOCK) \ 191 macro(VK_FORMAT_ASTC_10x10_SRGB_BLOCK) \ 192 macro(VK_FORMAT_ASTC_12x10_UNORM_BLOCK) \ 193 macro(VK_FORMAT_ASTC_12x10_SRGB_BLOCK) \ 194 macro(VK_FORMAT_ASTC_12x12_UNORM_BLOCK) \ 195 macro(VK_FORMAT_ASTC_12x12_SRGB_BLOCK) 197 #define LUG_VULKAN_COLOR_SPACE_KHR(macro) \ 198 macro(VK_COLOR_SPACE_SRGB_NONLINEAR_KHR) 200 #define LUG_VULKAN_PRESENT_MODE_KHR(macro) \ 201 macro(VK_PRESENT_MODE_IMMEDIATE_KHR) \ 202 macro(VK_PRESENT_MODE_MAILBOX_KHR) \ 203 macro(VK_PRESENT_MODE_FIFO_KHR) \ 204 macro(VK_PRESENT_MODE_FIFO_RELAXED_KHR) 207 #define LUG_VULKAN_MEMORY_PROPERTY_BIT(macro) \ 208 macro(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) \ 209 macro(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) \ 210 macro(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT) \ 211 macro(VK_MEMORY_PROPERTY_HOST_CACHED_BIT) \ 212 macro(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT) 214 #define LUG_VULKAN_QUEUE_BIT(macro) \ 215 macro(VK_QUEUE_GRAPHICS_BIT) \ 216 macro(VK_QUEUE_COMPUTE_BIT) \ 217 macro(VK_QUEUE_TRANSFER_BIT) \ 218 macro(VK_QUEUE_SPARSE_BINDING_BIT) 220 #if VK_HEADER_VERSION >= 39 221 #define LUG_VULKAN_FORMAT_FEATURE_BIT(macro) \ 222 macro(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) \ 223 macro(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) \ 224 macro(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT) \ 225 macro(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT) \ 226 macro(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT) \ 227 macro(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT) \ 228 macro(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT) \ 229 macro(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) \ 230 macro(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT) \ 231 macro(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT) \ 232 macro(VK_FORMAT_FEATURE_BLIT_SRC_BIT) \ 233 macro(VK_FORMAT_FEATURE_BLIT_DST_BIT) \ 234 macro(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT) \ 235 macro(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG) \ 236 macro(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR) \ 237 macro(VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR) 239 #define LUG_VULKAN_FORMAT_FEATURE_BIT(macro) \ 240 macro(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) \ 241 macro(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) \ 242 macro(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT) \ 243 macro(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT) \ 244 macro(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT) \ 245 macro(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT) \ 246 macro(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT) \ 247 macro(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) \ 248 macro(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT) \ 249 macro(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT) \ 250 macro(VK_FORMAT_FEATURE_BLIT_SRC_BIT) \ 251 macro(VK_FORMAT_FEATURE_BLIT_DST_BIT) \ 252 macro(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT) \ 253 macro(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG) 256 #define LUG_VULKAN_MEMORY_HEAP_BIT(macro) \ 257 macro(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT) 259 #define LUG_VULKAN_IMAGE_USAGE_BIT(macro) \ 260 macro(VK_IMAGE_USAGE_TRANSFER_SRC_BIT) \ 261 macro(VK_IMAGE_USAGE_TRANSFER_DST_BIT) \ 262 macro(VK_IMAGE_USAGE_SAMPLED_BIT) \ 263 macro(VK_IMAGE_USAGE_STORAGE_BIT) \ 264 macro(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) \ 265 macro(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) \ 266 macro(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) \ 267 macro(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT) 269 #define LUG_VULKAN_SAMPLE_COUNT_BIT(macro) \ 270 macro(VK_SAMPLE_COUNT_1_BIT) \ 271 macro(VK_SAMPLE_COUNT_2_BIT) \ 272 macro(VK_SAMPLE_COUNT_4_BIT) \ 273 macro(VK_SAMPLE_COUNT_8_BIT) \ 274 macro(VK_SAMPLE_COUNT_16_BIT) \ 275 macro(VK_SAMPLE_COUNT_32_BIT) \ 276 macro(VK_SAMPLE_COUNT_64_BIT) 278 #define LUG_VULKAN_SURFACE_TRANSFORM_KHR_BIT(macro) \ 279 macro(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) \ 280 macro(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR) \ 281 macro(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR) \ 282 macro(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR) \ 283 macro(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR) \ 284 macro(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR) \ 285 macro(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR) \ 286 macro(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR) \ 287 macro(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR) 289 #define LUG_VULKAN_COMPOSITE_ALPHA_KHR_BIT(macro) \ 290 macro(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) \ 291 macro(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR) \ 292 macro(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR) \ 293 macro(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR) std::vector< const char * > VkImageUsageFlagsToStrVec(VkImageUsageFlags flag)
std::string VkFormatFeatureFlagsToStr(VkFormatFeatureFlags flag)
std::vector< const char * > VkQueueFlagsToStrVec(VkQueueFlags flag)
std::string VkQueueFlagsToStr(VkQueueFlags flag)
std::string VkSampleCountFlagsToStr(VkSampleCountFlags flag)
std::vector< const char * > VkFormatFeatureFlagsToStrVec(VkFormatFeatureFlags flag)
std::string VkImageUsageFlagsToStr(VkImageUsageFlags flag)
std::vector< const char * > VkMemoryHeapFlagsToStrVec(VkMemoryHeapFlags flag)
std::vector< const char * > VkMemoryPropertyFlagsToStrVec(VkMemoryPropertyFlags flag)
std::string VkSurfaceTransformFlagsKHRToStr(VkSurfaceTransformFlagsKHR flag)
std::vector< const char * > VkSurfaceTransformFlagsKHRToStrVec(VkSurfaceTransformFlagsKHR flag)
std::string VkCompositeAlphaFlagsKHRToStr(VkCompositeAlphaFlagsKHR flag)
const char * toStr(VkResult enumVal)
std::string VkMemoryHeapFlagsToStr(VkMemoryHeapFlags flag)
std::vector< const char * > VkCompositeAlphaFlagsKHRToStrVec(VkCompositeAlphaFlagsKHR flag)
std::vector< const char * > VkSampleCountFlagsToStrVec(VkSampleCountFlags flag)
std::string VkMemoryPropertyFlagsToStr(VkMemoryPropertyFlags flag)