diff options
author | Jason Ekstrand <[email protected]> | 2017-05-18 11:30:47 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2017-05-23 16:46:20 -0700 |
commit | cc45c4bb8072b6593812f9b68a7b3d2d00bfb9f0 (patch) | |
tree | 2b18d3cdec09d33e69b0b5a5591dc32f0fded65e /src/intel/vulkan/anv_image.c | |
parent | 75edecf5020a9b833ff7e2929f64ceb11c9df679 (diff) |
anv: Handle transitioning depth from UNDEFINED to other layouts
Reviewed-by: Nanley Chery <[email protected]>
Cc: "17.1" <[email protected]>
Diffstat (limited to 'src/intel/vulkan/anv_image.c')
-rw-r--r-- | src/intel/vulkan/anv_image.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index d21e055f020..c3e2cb51d8e 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -423,12 +423,10 @@ void anv_GetImageSubresourceLayout( } /** - * This function determines the optimal buffer to use for device - * accesses given a VkImageLayout and other pieces of information needed to - * make that determination. This does not determine the optimal buffer to - * use during a resolve operation. - * - * NOTE: Some layouts do not support device access. + * This function determines the optimal buffer to use for a given + * VkImageLayout and other pieces of information needed to make that + * determination. This does not determine the optimal buffer to use + * during a resolve operation. * * @param devinfo The device information of the Intel GPU. * @param image The image that may contain a collection of buffers. @@ -484,15 +482,19 @@ anv_layout_to_aux_usage(const struct gen_device_info * const devinfo, switch (layout) { /* Invalid Layouts */ + case VK_IMAGE_LAYOUT_RANGE_SIZE: + case VK_IMAGE_LAYOUT_MAX_ENUM: + unreachable("Invalid image layout."); - /* According to the Vulkan Spec, the following layouts are valid only as - * initial layouts in a layout transition and don't support device access. + /* Undefined layouts + * + * The pre-initialized layout is equivalent to the undefined layout for + * optimally-tiled images. We can only do color compression (CCS or HiZ) + * on tiled images. */ case VK_IMAGE_LAYOUT_UNDEFINED: case VK_IMAGE_LAYOUT_PREINITIALIZED: - case VK_IMAGE_LAYOUT_RANGE_SIZE: - case VK_IMAGE_LAYOUT_MAX_ENUM: - unreachable("Invalid image layout for device access."); + return ISL_AUX_USAGE_NONE; /* Transfer Layouts |