diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2015-09-03 15:21:52 -0600 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2015-09-09 09:39:15 -0600 |
| commit | 892306c06b7ce86b5cb3fbff76c4cfdae9214778 (patch) | |
| tree | 65264b4968edc115698fb61024c32dac8f261f2a | |
| parent | b0b110d86e1bca7563b520cac121db7ca208c17b (diff) | |
| download | usermoji-892306c06b7ce86b5cb3fbff76c4cfdae9214778.tar.xz | |
vulkan.h: Add bufferFeatures to VkFormatProperties, bug #14546
| -rw-r--r-- | demos/vulkaninfo.c | 60 | ||||
| -rw-r--r-- | icd/nulldrv/nulldrv.c | 1 | ||||
| -rw-r--r-- | include/vulkan.h | 1 |
3 files changed, 32 insertions, 30 deletions
diff --git a/demos/vulkaninfo.c b/demos/vulkaninfo.c index f96c86e9..8bf283a4 100644 --- a/demos/vulkaninfo.c +++ b/demos/vulkaninfo.c @@ -725,39 +725,39 @@ static void app_dev_dump_format_props(const struct app_dev *dev, VkFormat fmt) struct { const char *name; VkFlags flags; - } tilings[2]; + } features[3]; uint32_t i; - if (!props->linearTilingFeatures && !props->optimalTilingFeatures) - return; - - tilings[0].name = "linear "; - tilings[0].flags = props->linearTilingFeatures; - tilings[1].name = "optimal"; - tilings[1].flags = props->optimalTilingFeatures; - - printf("\nFORMAT_%s:\n", vk_format_string(fmt)); - for (i = 0; i < ARRAY_SIZE(tilings); i++) { - if (!tilings[i].flags) - continue; - - printf("\t%s tiling image =%s%s%s\n", tilings[i].name, - (tilings[i].flags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) ? " sampled" : "", - (tilings[i].flags & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) ? " storage" : "", - (tilings[i].flags & VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT) ? " atomic" : ""); - printf("\t%s tiling texel =%s%s%s\n", tilings[i].name, - (tilings[i].flags & VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT) ? " TBO" : "", - (tilings[i].flags & VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT) ? " IBO" : "", - (tilings[i].flags & VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT) ? " atomic" : ""); - printf("\t%s tiling attachment =%s%s%s\n", tilings[i].name, - (tilings[i].flags & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) ? " color" : "", - (tilings[i].flags & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT) ? " blend" : "", - (tilings[i].flags & VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT) ? " depth/stencil" : ""); - printf("\t%s tiling vertex = %u\n", tilings[i].name, - (bool) (tilings[i].flags & VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT)); - printf("\t%s tiling conversion = %u\n", tilings[i].name, - (bool) (tilings[i].flags & VK_FORMAT_FEATURE_CONVERSION_BIT)); + features[0].name = "linearTiling FormatFeatureFlags"; + features[0].flags = props->linearTilingFeatures; + features[1].name = "optimalTiling FormatFeatureFlags"; + features[1].flags = props->optimalTilingFeatures; + features[2].name = "bufferFeatures FormatFeatureFlags"; + features[2].flags = props->bufferFeatures; + + printf("\nFORMAT_%s:", vk_format_string(fmt)); + for (i = 0; i < ARRAY_SIZE(features); i++) { + printf("\n\t%s:", features[i].name); + if (features[i].flags == 0) { + printf("\n\t\tNone"); + } else { + printf("%s%s%s%s%s%s%s%s%s%s%s%s%s", + ((features[i].flags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) ? "\n\t\tVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) ? "\n\t\tVK_FORMAT_FEATURE_STORAGE_IMAGE_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT) ? "\n\t\tVK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) ? "\n\t\tVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT) ? "\n\t\tVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT) ? "\n\t\tVK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_CONVERSION_BIT) ? "\n\t\tVK_FORMAT_FEATURE_CONVERSION_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_BLIT_SOURCE_BIT) ? "\n\t\tVK_FORMAT_FEATURE_BLIT_SOURCE_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_BLIT_DESTINATION_BIT) ? "\n\t\tVK_FORMAT_FEATURE_BLIT_DESTINATION_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT) ? "\n\t\tVK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT) ? "\n\t\tVK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT) ? "\n\t\tVK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" : ""), + ((features[i].flags & VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT) ? "\n\t\tVK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" : "")); + } } + printf("\n"); } diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c index a66c7084..539b7305 100644 --- a/icd/nulldrv/nulldrv.c +++ b/icd/nulldrv/nulldrv.c @@ -1523,6 +1523,7 @@ ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceFormatProperties( pFormatInfo->linearTilingFeatures = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT; pFormatInfo->optimalTilingFeatures = pFormatInfo->linearTilingFeatures; + pFormatInfo->bufferFeatures = 0; return ret; } diff --git a/include/vulkan.h b/include/vulkan.h index 96762e45..a053269c 100644 --- a/include/vulkan.h +++ b/include/vulkan.h @@ -1218,6 +1218,7 @@ typedef struct { typedef struct { VkFormatFeatureFlags linearTilingFeatures; VkFormatFeatureFlags optimalTilingFeatures; + VkFormatFeatureFlags bufferFeatures; } VkFormatProperties; typedef struct { |
