anv/formats: Properly report depth-stencil formats

This commit is contained in:
Jason Ekstrand
2015-09-17 12:36:23 -07:00
parent b5f6889648
commit 3b8aa26b8e
+23 -18
View File
@@ -265,25 +265,30 @@ VkResult anv_GetPhysicalDeviceFormatProperties(
if (format->surface_format == UNSUPPORTED)
goto unsupported;
info = &surface_formats[format->surface_format];
if (!info->exists)
goto unsupported;
uint32_t linear = 0, tiled = 0;
if (info->sampling <= gen) {
linear |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
tiled |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
}
if (info->render_target <= gen) {
linear |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
tiled |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
}
if (info->alpha_blend <= gen) {
linear |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
tiled |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
}
if (info->input_vb <= gen) {
linear |= VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT;
if (anv_format_is_depth_or_stencil(format)) {
tiled |= VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT;
} else {
/* The surface_formats table only contains color formats */
info = &surface_formats[format->surface_format];
if (!info->exists)
goto unsupported;
if (info->sampling <= gen) {
linear |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
tiled |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
}
if (info->render_target <= gen) {
linear |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
tiled |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
}
if (info->alpha_blend <= gen) {
linear |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
tiled |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
}
if (info->input_vb <= gen) {
linear |= VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT;
}
}
pFormatProperties->linearTilingFeatures = linear;