v3dv: fix image clearing with VK_REMAINING_*
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 27 Feb 2020 10:58:27 +0000 (11:58 +0100)
committerMarge Bot <eric+marge@anholt.net>
Tue, 13 Oct 2020 21:21:27 +0000 (21:21 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>

src/broadcom/vulkan/v3dv_meta_copy.c

index a27adff..c5ad7df 100644 (file)
@@ -946,10 +946,12 @@ clear_image_tlb(struct v3dv_cmd_buffer *cmd_buffer,
    }
 
    uint32_t layer_count = range->layerCount == VK_REMAINING_ARRAY_LAYERS ?
-                          image->array_size : range->layerCount;
+                          image->array_size - range->baseArrayLayer :
+                          range->layerCount;
 
    uint32_t level_count = range->levelCount == VK_REMAINING_MIP_LEVELS ?
-                          image->levels : range->levelCount;
+                          image->levels - range->baseMipLevel :
+                          range->levelCount;
    uint32_t min_layer = range->baseArrayLayer;
    uint32_t max_layer = range->baseArrayLayer + layer_count;
    uint32_t min_level = range->baseMipLevel;