zink: clamp VkImageCreateInfo.arrayLayers to 1 for image resource creation
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 29 May 2020 18:38:02 +0000 (14:38 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 24 Jun 2020 07:01:00 +0000 (07:01 +0000)
this is required by spec, so we can generally assume that any time it's 0 here
this is the result of us being lazy elsewhere in the zink driver when we're
manually creating this sort of buffer

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5614>

src/gallium/drivers/zink/zink_resource.c

index 5ae75dba2be4d71b1be9c8dd2d4cd54762884b94..ee38909eab8458dc5798d9a7ce2c4b9253ee1d0a 100644 (file)
@@ -177,7 +177,7 @@ resource_create(struct pipe_screen *pscreen,
       ici.extent.height = templ->height0;
       ici.extent.depth = templ->depth0;
       ici.mipLevels = templ->last_level + 1;
-      ici.arrayLayers = templ->array_size;
+      ici.arrayLayers = MAX2(templ->array_size, 1);
       ici.samples = templ->nr_samples ? templ->nr_samples : VK_SAMPLE_COUNT_1_BIT;
       ici.tiling = templ->bind & PIPE_BIND_LINEAR ? VK_IMAGE_TILING_LINEAR : VK_IMAGE_TILING_OPTIMAL;