From: Jason Ekstrand Date: Fri, 6 Mar 2020 17:56:59 +0000 (-0600) Subject: anv: Move vk_image_layout_is_read_only higher X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d2f3576d335c09313216ee052bf7570da8a61ff1;p=mesa.git anv: Move vk_image_layout_is_read_only higher While we're at it, we drop some _KHR suffixes Reviewed-by: Rafael Antognolli Part-of: --- diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index fcb8def9564..2baf93a6220 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -1237,6 +1237,50 @@ vk_image_layout_to_usage_flags(VkImageLayout layout, unreachable("Invalid image layout."); } +ASSERTED static bool +vk_image_layout_is_read_only(VkImageLayout layout, + VkImageAspectFlagBits aspect) +{ + assert(util_bitcount(aspect) == 1); + + switch (layout) { + case VK_IMAGE_LAYOUT_UNDEFINED: + case VK_IMAGE_LAYOUT_PREINITIALIZED: + return true; /* These are only used for layout transitions */ + + case VK_IMAGE_LAYOUT_GENERAL: + case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: + case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: + case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR: + case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL: + case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL: + return false; + + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL: + case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: + case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: + case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR: + case VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV: + case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT: + case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL: + case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL: + return true; + + case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL: + return aspect == VK_IMAGE_ASPECT_DEPTH_BIT; + + case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL: + return aspect == VK_IMAGE_ASPECT_STENCIL_BIT; + + case VK_IMAGE_LAYOUT_RANGE_SIZE: + case VK_IMAGE_LAYOUT_MAX_ENUM: + unreachable("Invalid image layout."); + } + + unreachable("Invalid image layout."); +} + /** * This function returns the assumed isl_aux_state for a given VkImageLayout. * Because Vulkan image layouts don't map directly to isl_aux_state enums, the @@ -1403,50 +1447,6 @@ anv_layout_to_aux_state(const struct gen_device_info * const devinfo, unreachable("layout is not a VkImageLayout enumeration member."); } -ASSERTED static bool -vk_image_layout_is_read_only(VkImageLayout layout, - VkImageAspectFlagBits aspect) -{ - assert(util_bitcount(aspect) == 1); - - switch (layout) { - case VK_IMAGE_LAYOUT_UNDEFINED: - case VK_IMAGE_LAYOUT_PREINITIALIZED: - return true; /* These are only used for layout transitions */ - - case VK_IMAGE_LAYOUT_GENERAL: - case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: - case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: - case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: - case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR: - case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR: - case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR: - return false; - - case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL: - case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: - case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: - case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR: - case VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV: - case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT: - case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR: - case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR: - return true; - - case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL: - return aspect == VK_IMAGE_ASPECT_DEPTH_BIT; - - case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL: - return aspect == VK_IMAGE_ASPECT_STENCIL_BIT; - - case VK_IMAGE_LAYOUT_RANGE_SIZE: - case VK_IMAGE_LAYOUT_MAX_ENUM: - unreachable("Invalid image layout."); - } - - unreachable("Invalid image layout."); -} - /** * This function determines the optimal buffer to use for a given * VkImageLayout and other pieces of information needed to make that