From 1eebb60917d0d4462eb16c72d17050d5d21d438a Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 13 Sep 2016 14:02:32 -0700 Subject: [PATCH] anv/image: Set correct base_array_layer and array_len for storage images Since Vulkan doesn't allow single-slice 3D storage images, we need to just set the base_array_layer and array_len to the full size of the 3-D LOD. Signed-off-by: Jason Ekstrand --- src/intel/vulkan/anv_image.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index 3ab11e7..f6e8672 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -492,6 +492,10 @@ anv_image_view_init(struct anv_image_view *iview, isl_view.usage = cube_usage | ISL_SURF_USAGE_STORAGE_BIT; isl_view.format = isl_lower_storage_image_format(&device->info, isl_view.format); + if (image->type == VK_IMAGE_TYPE_3D) { + isl_view.base_array_layer = 0; + isl_view.array_len = iview->extent.depth; + } isl_surf_fill_state(&device->isl_dev, iview->storage_surface_state.map, .surf = &surface->isl, -- 2.7.4