radv: fix 3D clears with baseMiplevel
authorDave Airlie <airlied@redhat.com>
Mon, 28 Nov 2016 07:03:11 +0000 (07:03 +0000)
committerDave Airlie <airlied@redhat.com>
Mon, 28 Nov 2016 07:10:12 +0000 (07:10 +0000)
This fixes:
dEQP-VK.api.image_clearing.clear_color_image.3d*

These were hitting an assert as the code wasn't taking the
baseMipLevel into account when minify the image depth.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
src/amd/vulkan/radv_meta_clear.c

index 34b318afdd6f3cc2c649965d664224a966750139..77f7dc42aa2030bc2f67538ab891134bb7e7d97d 100644 (file)
@@ -998,7 +998,7 @@ radv_cmd_clear_image(struct radv_cmd_buffer *cmd_buffer,
                const VkImageSubresourceRange *range = &ranges[r];
                for (uint32_t l = 0; l < radv_get_levelCount(image, range); ++l) {
                        const uint32_t layer_count = image->type == VK_IMAGE_TYPE_3D ?
-                               radv_minify(image->extent.depth, l) :
+                               radv_minify(image->extent.depth, range->baseMipLevel + l) :
                                radv_get_layerCount(image, range);
                        for (uint32_t s = 0; s < layer_count; ++s) {
                                struct radv_image_view iview;