radv: fix depth transitions with layerCount = VK_REMAINING_ARRAY_LAYERS
authorPierre-Loup A. Griffais <pgriffais@valvesoftware.com>
Fri, 6 Jan 2017 20:57:17 +0000 (12:57 -0800)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 7 Jan 2017 00:26:08 +0000 (01:26 +0100)
Interpreting layerCount literally would try to create billions of image
views in radv_process_depth_image_inplace().

Signed-off-by: Pierre-Loup A. Griffais <pgriffais@valvesoftware.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_meta_decompress.c

index 490747511c30d17ad2cc83989acf19ddc239df68..53443e9eb88b7ac65329c2fa1b7e5262a462d554 100644 (file)
@@ -382,7 +382,7 @@ static void radv_process_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
 
        radv_meta_save_graphics_reset_vport_scissor(&saved_state, cmd_buffer);
 
-       for (uint32_t layer = 0; layer < subresourceRange->layerCount; layer++) {
+       for (uint32_t layer = 0; layer < radv_get_layerCount(image, subresourceRange); layer++) {
                struct radv_image_view iview;
 
                radv_image_view_init(&iview, cmd_buffer->device,