anv: Add func anv_get_isl_format()

This commit is contained in:
Chad Versace
2015-12-04 16:18:35 -08:00
parent 8b9ceda9f1
commit a09b4c298c
2 changed files with 26 additions and 0 deletions
+23
View File
@@ -221,6 +221,29 @@ anv_format_for_vk_format(VkFormat format)
return &anv_formats[format];
}
/**
* Exactly one bit must be set in \a aspect.
*/
enum isl_format
anv_get_isl_format(VkFormat format, VkImageAspectFlags aspect)
{
const struct anv_format *anv_fmt = &anv_formats[format];
switch (aspect) {
case VK_IMAGE_ASPECT_COLOR_BIT:
return anv_fmt->surface_format;
case VK_IMAGE_ASPECT_DEPTH_BIT:
assert(anv_fmt->depth_format != 0);
return anv_fmt->surface_format;
case VK_IMAGE_ASPECT_STENCIL_BIT:
assert(anv_fmt->has_stencil);
return ISL_FORMAT_R8_UINT;
default:
unreachable("bad VkImageAspect");
return ISL_FORMAT_UNSUPPORTED;
}
}
// Format capabilities
void anv_validate_GetPhysicalDeviceFormatProperties(
+3
View File
@@ -1385,6 +1385,9 @@ extern const struct anv_format *const anv_format_s8_uint;
const struct anv_format *
anv_format_for_vk_format(VkFormat format);
enum isl_format
anv_get_isl_format(VkFormat format, VkImageAspectFlags aspect);
static inline bool
anv_format_is_color(const struct anv_format *format)
{