From: Jason Ekstrand Date: Sat, 14 May 2016 00:00:58 +0000 (-0700) Subject: anv/image: Use aspects for computing full usage X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=aad56f3ee782d3c2682172e5b068119fd2fa7c32;p=mesa.git anv/image: Use aspects for computing full usage --- diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index 704ca9f7caf..792645d5cea 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -161,7 +161,7 @@ make_surface(const struct anv_device *dev, */ static VkImageUsageFlags anv_image_get_full_usage(const VkImageCreateInfo *info, - const struct anv_format *format) + VkImageAspectFlags aspects) { VkImageUsageFlags usage = info->usage; @@ -183,7 +183,7 @@ anv_image_get_full_usage(const VkImageCreateInfo *info, */ usage |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - if (anv_format_is_depth_or_stencil(format)) { + if (aspects & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) { /* vkCmdClearDepthStencilImage() only requires that * VK_IMAGE_USAGE_TRANSFER_SRC_BIT be set. In particular, it does * not require VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT. Meta @@ -206,7 +206,6 @@ anv_image_create(VkDevice _device, ANV_FROM_HANDLE(anv_device, device, _device); const VkImageCreateInfo *pCreateInfo = create_info->vk_info; struct anv_image *image = NULL; - const struct anv_format *format = anv_format_for_vk_format(pCreateInfo->format); VkResult r; assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO); @@ -231,7 +230,7 @@ anv_image_create(VkDevice _device, image->levels = pCreateInfo->mipLevels; image->array_size = pCreateInfo->arrayLayers; image->samples = pCreateInfo->samples; - image->usage = anv_image_get_full_usage(pCreateInfo, format); + image->usage = anv_image_get_full_usage(pCreateInfo, image->aspects); image->tiling = pCreateInfo->tiling; uint32_t b;