aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2015-11-10 17:01:22 +0800
committerJon Ashburn <jon@lunarg.com>2015-11-11 08:59:00 -0700
commit8071bd95ba86ff99fd5ea7a6343d568c911db308 (patch)
treec2d47f5666ae1a0c5e6f89e48b30adbae00517f8
parentdded9540172f001e257587afa08d8ce8b049a5d3 (diff)
downloadusermoji-8071bd95ba86ff99fd5ea7a6343d568c911db308.tar.xz
bug 12998 part 8: add new formats
-rw-r--r--demos/vulkaninfo.c16
-rw-r--r--icd/common/icd-format.c30
-rw-r--r--include/vulkan/vulkan.h16
-rw-r--r--layers/vk_layer_utils.cpp30
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: