Path: blob/master/thirdparty/libktx/lib/vkformat_check.c
9903 views
1/***************************** Do not edit. *****************************2Automatically generated from vulkan_core.h version 287 by mkvkformatfiles.3*************************************************************************/45/*6** Copyright 2015-2024 The Khronos Group Inc.7**8** SPDX-License-Identifier: Apache-2.09*/1011// clang-format off: CI is complicated if formatting checks on generated files are enforced.12#include <stdint.h>13#include <stdbool.h>1415#include "vkformat_enum.h"1617bool18isProhibitedFormat(VkFormat format)19{20switch (format) {21case VK_FORMAT_R8_USCALED:22case VK_FORMAT_R8_SSCALED:23case VK_FORMAT_R8G8_USCALED:24case VK_FORMAT_R8G8_SSCALED:25case VK_FORMAT_R8G8B8_USCALED:26case VK_FORMAT_R8G8B8_SSCALED:27case VK_FORMAT_B8G8R8_USCALED:28case VK_FORMAT_B8G8R8_SSCALED:29case VK_FORMAT_R8G8B8A8_USCALED:30case VK_FORMAT_R8G8B8A8_SSCALED:31case VK_FORMAT_B8G8R8A8_USCALED:32case VK_FORMAT_B8G8R8A8_SSCALED:33case VK_FORMAT_A8B8G8R8_USCALED_PACK32:34case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:35case VK_FORMAT_A2R10G10B10_USCALED_PACK32:36case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:37case VK_FORMAT_A2B10G10R10_USCALED_PACK32:38case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:39case VK_FORMAT_R16_USCALED:40case VK_FORMAT_R16_SSCALED:41case VK_FORMAT_R16G16_USCALED:42case VK_FORMAT_R16G16_SSCALED:43case VK_FORMAT_R16G16B16_USCALED:44case VK_FORMAT_R16G16B16_SSCALED:45case VK_FORMAT_R16G16B16A16_USCALED:46case VK_FORMAT_R16G16B16A16_SSCALED:47case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:48case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:49case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:50case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:51case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:52case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:53case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:54case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:55case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:56case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:57case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:58case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:59case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:60case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:61case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:62case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:63case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:64case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:65case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:66case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:67case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:68case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:69case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:70case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:71return true;72default:73return false;74}75}7677bool78isSrgbFormat(VkFormat format)79{80switch(format) {81case VK_FORMAT_R8_SRGB:82case VK_FORMAT_R8G8_SRGB:83case VK_FORMAT_R8G8B8_SRGB:84case VK_FORMAT_B8G8R8_SRGB:85case VK_FORMAT_R8G8B8A8_SRGB:86case VK_FORMAT_B8G8R8A8_SRGB:87case VK_FORMAT_A8B8G8R8_SRGB_PACK32:88case VK_FORMAT_BC1_RGB_SRGB_BLOCK:89case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:90case VK_FORMAT_BC2_SRGB_BLOCK:91case VK_FORMAT_BC3_SRGB_BLOCK:92case VK_FORMAT_BC7_SRGB_BLOCK:93case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:94case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:95case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:96case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:97case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:98case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:99case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:100case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:101case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:102case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:103case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:104case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:105case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:106case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:107case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:108case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:109case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:110case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:111case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:112case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:113case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:114case VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT:115case VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT:116case VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT:117case VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT:118case VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT:119case VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT:120case VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT:121case VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT:122case VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT:123case VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT:124return true;125default:126return false;127}128}129130bool131isValidFormat(VkFormat format)132{133// On MSVC VkFormat can be a signed integer134if ((uint32_t) format <= VK_FORMAT_MAX_STANDARD_ENUM)135return true;136else switch(format) {137case VK_FORMAT_G8B8G8R8_422_UNORM:138case VK_FORMAT_B8G8R8G8_422_UNORM:139case VK_FORMAT_R10X6_UNORM_PACK16:140case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:141case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:142case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:143case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:144case VK_FORMAT_R12X4_UNORM_PACK16:145case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:146case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:147case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:148case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:149case VK_FORMAT_G16B16G16R16_422_UNORM:150case VK_FORMAT_B16G16R16G16_422_UNORM:151case VK_FORMAT_A4R4G4B4_UNORM_PACK16:152case VK_FORMAT_A4B4G4R4_UNORM_PACK16:153case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:154case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:155case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:156case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:157case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:158case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:159case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:160case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:161case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:162case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:163case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:164case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:165case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:166case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:167case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:168case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:169case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:170case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:171case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:172case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:173case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:174case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:175case VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT:176case VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT:177case VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT:178case VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT:179case VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT:180case VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT:181case VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT:182case VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT:183case VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT:184case VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT:185case VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT:186case VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT:187case VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT:188case VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT:189case VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT:190case VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT:191case VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT:192case VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT:193case VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT:194case VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT:195case VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT:196case VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT:197case VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT:198case VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT:199case VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT:200case VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT:201case VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT:202case VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT:203case VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT:204case VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT:205case VK_FORMAT_R16G16_SFIXED5_NV:206case VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR:207case VK_FORMAT_A8_UNORM_KHR:208return true;209default:210return false;211}212}213214// clang-format on215216217