diff options
| author | Chia-I Wu <olv@lunarg.com> | 2015-11-10 17:01:22 +0800 |
|---|---|---|
| committer | Jon Ashburn <jon@lunarg.com> | 2015-11-11 08:59:00 -0700 |
| commit | 8071bd95ba86ff99fd5ea7a6343d568c911db308 (patch) | |
| tree | c2d47f5666ae1a0c5e6f89e48b30adbae00517f8 | |
| parent | dded9540172f001e257587afa08d8ce8b049a5d3 (diff) | |
| download | usermoji-8071bd95ba86ff99fd5ea7a6343d568c911db308.tar.xz | |
bug 12998 part 8: add new formats
| -rw-r--r-- | demos/vulkaninfo.c | 16 | ||||
| -rw-r--r-- | icd/common/icd-format.c | 30 | ||||
| -rw-r--r-- | include/vulkan/vulkan.h | 16 | ||||
| -rw-r--r-- | layers/vk_layer_utils.cpp | 30 |
4 files changed, 92 insertions, 0 deletions
diff --git a/demos/vulkaninfo.c b/demos/vulkaninfo.c index d2277edc..39068f8e 100644 --- a/demos/vulkaninfo.c +++ b/demos/vulkaninfo.c @@ -177,6 +177,7 @@ static const char *vk_format_string(VkFormat fmt) STR(B5G6R5_UNORM_PACK16); STR(R5G5B5A1_UNORM_PACK16); STR(B5G5R5A1_UNORM_PACK16); + STR(A1R5G5B5_UNORM_PACK16); STR(R8_UNORM); STR(R8_SNORM); STR(R8_USCALED); @@ -219,6 +220,13 @@ static const char *vk_format_string(VkFormat fmt) STR(B8G8R8A8_UINT); STR(B8G8R8A8_SINT); STR(B8G8R8A8_SRGB); + STR(A8B8G8R8_UNORM_PACK32); + STR(A8B8G8R8_SNORM_PACK32); + STR(A8B8G8R8_USCALED_PACK32); + STR(A8B8G8R8_SSCALED_PACK32); + STR(A8B8G8R8_UINT_PACK32); + STR(A8B8G8R8_SINT_PACK32); + STR(A8B8G8R8_SRGB_PACK32); STR(A2R10G10B10_UNORM_PACK32); STR(A2R10G10B10_SNORM_PACK32); STR(A2R10G10B10_USCALED_PACK32); @@ -271,9 +279,17 @@ static const char *vk_format_string(VkFormat fmt) STR(R32G32B32A32_UINT); STR(R32G32B32A32_SINT); STR(R32G32B32A32_SFLOAT); + STR(R64_UINT); + STR(R64_SINT); STR(R64_SFLOAT); + STR(R64G64_UINT); + STR(R64G64_SINT); STR(R64G64_SFLOAT); + STR(R64G64B64_UINT); + STR(R64G64B64_SINT); STR(R64G64B64_SFLOAT); + STR(R64G64B64A64_UINT); + STR(R64G64B64A64_SINT); STR(R64G64B64A64_SFLOAT); STR(B10G11R11_UFLOAT_PACK32); STR(E5B9G9R9_UFLOAT_PACK32); diff --git a/icd/common/icd-format.c b/icd/common/icd-format.c index 73f3c186..1ed56b96 100644 --- a/icd/common/icd-format.c +++ b/icd/common/icd-format.c @@ -43,6 +43,7 @@ static const struct icd_format_info { [VK_FORMAT_B5G6R5_UNORM_PACK16] = { 2, 3 }, [VK_FORMAT_R5G5B5A1_UNORM_PACK16] = { 2, 4 }, [VK_FORMAT_B5G5R5A1_UNORM_PACK16] = { 2, 4 }, + [VK_FORMAT_A1R5G5B5_UNORM_PACK16] = { 2, 4 }, [VK_FORMAT_R8_UNORM] = { 1, 1 }, [VK_FORMAT_R8_SNORM] = { 1, 1 }, [VK_FORMAT_R8_USCALED] = { 1, 1 }, @@ -85,6 +86,13 @@ static const struct icd_format_info { [VK_FORMAT_B8G8R8A8_UINT] = { 4, 4 }, [VK_FORMAT_B8G8R8A8_SINT] = { 4, 4 }, [VK_FORMAT_B8G8R8A8_SRGB] = { 4, 4 }, + [VK_FORMAT_A8B8G8R8_UNORM_PACK32] = { 4, 4 }, + [VK_FORMAT_A8B8G8R8_SNORM_PACK32] = { 4, 4 }, + [VK_FORMAT_A8B8G8R8_USCALED_PACK32] = { 4, 4 }, + [VK_FORMAT_A8B8G8R8_SSCALED_PACK32] = { 4, 4 }, + [VK_FORMAT_A8B8G8R8_UINT_PACK32] = { 4, 4 }, + [VK_FORMAT_A8B8G8R8_SINT_PACK32] = { 4, 4 }, + [VK_FORMAT_A8B8G8R8_SRGB_PACK32] = { 4, 4 }, [VK_FORMAT_A2R10G10B10_UNORM_PACK32] = { 4, 4 }, [VK_FORMAT_A2R10G10B10_SNORM_PACK32] = { 4, 4 }, [VK_FORMAT_A2R10G10B10_USCALED_PACK32] = { 4, 4 }, @@ -137,9 +145,17 @@ static const struct icd_format_info { [VK_FORMAT_R32G32B32A32_UINT] = { 16, 4 }, [VK_FORMAT_R32G32B32A32_SINT] = { 16, 4 }, [VK_FORMAT_R32G32B32A32_SFLOAT] = { 16, 4 }, + [VK_FORMAT_R64_UINT] = { 8, 1 }, + [VK_FORMAT_R64_SINT] = { 8, 1 }, [VK_FORMAT_R64_SFLOAT] = { 8, 1 }, + [VK_FORMAT_R64G64_UINT] = { 16, 2 }, + [VK_FORMAT_R64G64_SINT] = { 16, 2 }, [VK_FORMAT_R64G64_SFLOAT] = { 16, 2 }, + [VK_FORMAT_R64G64B64_UINT] = { 24, 3 }, + [VK_FORMAT_R64G64B64_SINT] = { 24, 3 }, [VK_FORMAT_R64G64B64_SFLOAT] = { 24, 3 }, + [VK_FORMAT_R64G64B64A64_UINT] = { 32, 4 }, + [VK_FORMAT_R64G64B64A64_SINT] = { 32, 4 }, [VK_FORMAT_R64G64B64A64_SFLOAT] = { 32, 4 }, [VK_FORMAT_B10G11R11_UFLOAT_PACK32] = { 4, 3 }, [VK_FORMAT_E5B9G9R9_UFLOAT_PACK32] = { 4, 3 }, @@ -234,6 +250,7 @@ bool icd_format_is_norm(VkFormat format) case VK_FORMAT_R4G4B4A4_UNORM_PACK16: case VK_FORMAT_R5G6B5_UNORM_PACK16: case VK_FORMAT_R5G5B5A1_UNORM_PACK16: + case VK_FORMAT_A1R5G5B5_UNORM_PACK16: case VK_FORMAT_R8_UNORM: case VK_FORMAT_R8_SNORM: case VK_FORMAT_R8G8_UNORM: @@ -242,6 +259,8 @@ bool icd_format_is_norm(VkFormat format) case VK_FORMAT_R8G8B8_SNORM: case VK_FORMAT_R8G8B8A8_UNORM: case VK_FORMAT_R8G8B8A8_SNORM: + case VK_FORMAT_A8B8G8R8_UNORM_PACK32: + case VK_FORMAT_A8B8G8R8_SNORM_PACK32: case VK_FORMAT_A2B10G10R10_UNORM_PACK32: case VK_FORMAT_A2B10G10R10_SNORM_PACK32: case VK_FORMAT_R16_UNORM: @@ -310,6 +329,8 @@ bool icd_format_is_int(VkFormat format) case VK_FORMAT_R8G8B8_SINT: case VK_FORMAT_R8G8B8A8_UINT: case VK_FORMAT_R8G8B8A8_SINT: + case VK_FORMAT_A8B8G8R8_UINT_PACK32: + case VK_FORMAT_A8B8G8R8_SINT_PACK32: case VK_FORMAT_A2B10G10R10_UINT_PACK32: case VK_FORMAT_A2B10G10R10_SINT_PACK32: case VK_FORMAT_R16_UINT: @@ -328,6 +349,14 @@ bool icd_format_is_int(VkFormat format) case VK_FORMAT_R32G32B32_SINT: case VK_FORMAT_R32G32B32A32_UINT: case VK_FORMAT_R32G32B32A32_SINT: + case VK_FORMAT_R64_UINT: + case VK_FORMAT_R64_SINT: + case VK_FORMAT_R64G64_UINT: + case VK_FORMAT_R64G64_SINT: + case VK_FORMAT_R64G64B64_UINT: + case VK_FORMAT_R64G64B64_SINT: + case VK_FORMAT_R64G64B64A64_UINT: + case VK_FORMAT_R64G64B64A64_SINT: case VK_FORMAT_B8G8R8_UINT: case VK_FORMAT_B8G8R8_SINT: case VK_FORMAT_B8G8R8A8_UINT: @@ -382,6 +411,7 @@ bool icd_format_is_srgb(VkFormat format) case VK_FORMAT_R8G8_SRGB: case VK_FORMAT_R8G8B8_SRGB: case VK_FORMAT_R8G8B8A8_SRGB: + case VK_FORMAT_A8B8G8R8_SRGB_PACK32: case VK_FORMAT_BC1_RGB_SRGB_BLOCK: case VK_FORMAT_BC2_SRGB_BLOCK: case VK_FORMAT_BC3_SRGB_BLOCK: diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h index 048d83c1..5e94c4d7 100644 --- a/include/vulkan/vulkan.h +++ b/include/vulkan/vulkan.h @@ -215,6 +215,7 @@ typedef enum VkFormat { VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_R5G5B5A1_UNORM_PACK16, VK_FORMAT_B5G5R5A1_UNORM_PACK16, + VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_SNORM, VK_FORMAT_R8_USCALED, @@ -257,6 +258,13 @@ typedef enum VkFormat { VK_FORMAT_B8G8R8A8_UINT, VK_FORMAT_B8G8R8A8_SINT, VK_FORMAT_B8G8R8A8_SRGB, + VK_FORMAT_A8B8G8R8_UNORM_PACK32, + VK_FORMAT_A8B8G8R8_SNORM_PACK32, + VK_FORMAT_A8B8G8R8_USCALED_PACK32, + VK_FORMAT_A8B8G8R8_SSCALED_PACK32, + VK_FORMAT_A8B8G8R8_UINT_PACK32, + VK_FORMAT_A8B8G8R8_SINT_PACK32, + VK_FORMAT_A8B8G8R8_SRGB_PACK32, VK_FORMAT_A2R10G10B10_UNORM_PACK32, VK_FORMAT_A2R10G10B10_SNORM_PACK32, VK_FORMAT_A2R10G10B10_USCALED_PACK32, @@ -309,9 +317,17 @@ typedef enum VkFormat { VK_FORMAT_R32G32B32A32_UINT, VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_SFLOAT, + VK_FORMAT_R64_UINT, + VK_FORMAT_R64_SINT, VK_FORMAT_R64_SFLOAT, + VK_FORMAT_R64G64_UINT, + VK_FORMAT_R64G64_SINT, VK_FORMAT_R64G64_SFLOAT, + VK_FORMAT_R64G64B64_UINT, + VK_FORMAT_R64G64B64_SINT, VK_FORMAT_R64G64B64_SFLOAT, + VK_FORMAT_R64G64B64A64_UINT, + VK_FORMAT_R64G64B64A64_SINT, VK_FORMAT_R64G64B64A64_SFLOAT, VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, diff --git a/layers/vk_layer_utils.cpp b/layers/vk_layer_utils.cpp index 33226a1f..a96c97e6 100644 --- a/layers/vk_layer_utils.cpp +++ b/layers/vk_layer_utils.cpp @@ -45,6 +45,7 @@ static const VULKAN_FORMAT_INFO vk_format_table[VK_FORMAT_RANGE_SIZE] = { { 2, 3 }, // [VK_FORMAT_B5G6R5_UNORM_PACK16] { 2, 4 }, // [VK_FORMAT_R5G5B5A1_UNORM_PACK16] { 2, 4 }, // [VK_FORMAT_B5G5R5A1_UNORM_PACK16] + { 2, 4 }, // [VK_FORMAT_A1R5G5B5_UNORM_PACK16] { 1, 1 }, // [VK_FORMAT_R8_UNORM] { 1, 1 }, // [VK_FORMAT_R8_SNORM] { 1, 1 }, // [VK_FORMAT_R8_USCALED] @@ -87,6 +88,13 @@ static const VULKAN_FORMAT_INFO vk_format_table[VK_FORMAT_RANGE_SIZE] = { { 4, 4 }, // [VK_FORMAT_B8G8R8A8_UINT] { 4, 4 }, // [VK_FORMAT_B8G8R8A8_SINT] { 4, 4 }, // [VK_FORMAT_B8G8R8A8_SRGB] + { 4, 4 }, // [VK_FORMAT_A8B8G8R8_UNORM_PACK32] + { 4, 4 }, // [VK_FORMAT_A8B8G8R8_SNORM_PACK32] + { 4, 4 }, // [VK_FORMAT_A8B8G8R8_USCALED_PACK32] + { 4, 4 }, // [VK_FORMAT_A8B8G8R8_SSCALED_PACK32] + { 4, 4 }, // [VK_FORMAT_A8B8G8R8_UINT_PACK32] + { 4, 4 }, // [VK_FORMAT_A8B8G8R8_SINT_PACK32] + { 4, 4 }, // [VK_FORMAT_B8G8R8A8_SRGB_PACK32] { 4, 4 }, // [VK_FORMAT_A2R10G10B10_UNORM_PACK32] { 4, 4 }, // [VK_FORMAT_A2R10G10B10_SNORM_PACK32] { 4, 4 }, // [VK_FORMAT_A2R10G10B10_USCALED_PACK32] @@ -139,9 +147,17 @@ static const VULKAN_FORMAT_INFO vk_format_table[VK_FORMAT_RANGE_SIZE] = { { 16, 4 }, // [VK_FORMAT_R32G32B32A32_UINT] { 16, 4 }, // [VK_FORMAT_R32G32B32A32_SINT] { 16, 4 }, // [VK_FORMAT_R32G32B32A32_SFLOAT] + { 8, 1 }, // [VK_FORMAT_R64_UINT] + { 8, 1 }, // [VK_FORMAT_R64_SINT] { 8, 1 }, // [VK_FORMAT_R64_SFLOAT] + { 16, 2 }, // [VK_FORMAT_R64G64_UINT] + { 16, 2 }, // [VK_FORMAT_R64G64_SINT] { 16, 2 }, // [VK_FORMAT_R64G64_SFLOAT] + { 24, 3 }, // [VK_FORMAT_R64G64B64_UINT] + { 24, 3 }, // [VK_FORMAT_R64G64B64_SINT] { 24, 3 }, // [VK_FORMAT_R64G64B64_SFLOAT] + { 32, 4 }, // [VK_FORMAT_R64G64B64A64_UINT] + { 32, 4 }, // [VK_FORMAT_R64G64B64A64_SINT] { 32, 4 }, // [VK_FORMAT_R64G64B64A64_SFLOAT] { 4, 3 }, // [VK_FORMAT_B10G11R11_UFLOAT_PACK32] { 4, 3 }, // [VK_FORMAT_E5B9G9R9_UFLOAT_PACK32] @@ -267,6 +283,7 @@ bool vk_format_is_norm(VkFormat format) case VK_FORMAT_R4G4B4A4_UNORM_PACK16: case VK_FORMAT_R5G6B5_UNORM_PACK16: case VK_FORMAT_R5G5B5A1_UNORM_PACK16: + case VK_FORMAT_A1R5G5B5_UNORM_PACK16: case VK_FORMAT_R8_UNORM: case VK_FORMAT_R8_SNORM: case VK_FORMAT_R8G8_UNORM: @@ -275,6 +292,8 @@ bool vk_format_is_norm(VkFormat format) case VK_FORMAT_R8G8B8_SNORM: case VK_FORMAT_R8G8B8A8_UNORM: case VK_FORMAT_R8G8B8A8_SNORM: + case VK_FORMAT_A8B8G8R8_UNORM_PACK32: + case VK_FORMAT_A8B8G8R8_SNORM_PACK32: case VK_FORMAT_A2B10G10R10_UNORM_PACK32: case VK_FORMAT_A2B10G10R10_SNORM_PACK32: case VK_FORMAT_R16_UNORM: @@ -347,6 +366,7 @@ bool vk_format_is_uint(VkFormat format) case VK_FORMAT_R8G8_UINT: case VK_FORMAT_R8G8B8_UINT: case VK_FORMAT_R8G8B8A8_UINT: + case VK_FORMAT_A8B8G8R8_UINT_PACK32: case VK_FORMAT_A2B10G10R10_UINT_PACK32: case VK_FORMAT_R16_UINT: case VK_FORMAT_R16G16_UINT: @@ -356,6 +376,10 @@ bool vk_format_is_uint(VkFormat format) case VK_FORMAT_R32G32_UINT: case VK_FORMAT_R32G32B32_UINT: case VK_FORMAT_R32G32B32A32_UINT: + case VK_FORMAT_R64_UINT: + case VK_FORMAT_R64G64_UINT: + case VK_FORMAT_R64G64B64_UINT: + case VK_FORMAT_R64G64B64A64_UINT: case VK_FORMAT_B8G8R8_UINT: case VK_FORMAT_B8G8R8A8_UINT: case VK_FORMAT_A2R10G10B10_UINT_PACK32: @@ -378,6 +402,7 @@ bool vk_format_is_sint(VkFormat format) case VK_FORMAT_R8G8_SINT: case VK_FORMAT_R8G8B8_SINT: case VK_FORMAT_R8G8B8A8_SINT: + case VK_FORMAT_A8B8G8R8_SINT_PACK32: case VK_FORMAT_A2B10G10R10_SINT_PACK32: case VK_FORMAT_R16_SINT: case VK_FORMAT_R16G16_SINT: @@ -387,6 +412,10 @@ bool vk_format_is_sint(VkFormat format) case VK_FORMAT_R32G32_SINT: case VK_FORMAT_R32G32B32_SINT: case VK_FORMAT_R32G32B32A32_SINT: + case VK_FORMAT_R64_SINT: + case VK_FORMAT_R64G64_SINT: + case VK_FORMAT_R64G64B64_SINT: + case VK_FORMAT_R64G64B64A64_SINT: case VK_FORMAT_B8G8R8_SINT: case VK_FORMAT_B8G8R8A8_SINT: case VK_FORMAT_A2R10G10B10_SINT_PACK32: @@ -440,6 +469,7 @@ bool vk_format_is_srgb(VkFormat format) case VK_FORMAT_R8G8_SRGB: case VK_FORMAT_R8G8B8_SRGB: case VK_FORMAT_R8G8B8A8_SRGB: + case VK_FORMAT_A8B8G8R8_SRGB_PACK32: case VK_FORMAT_BC1_RGB_SRGB_BLOCK: case VK_FORMAT_BC2_SRGB_BLOCK: case VK_FORMAT_BC3_SRGB_BLOCK: |
