radv: fix decompressing DCC levels with compute
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 27 Jun 2019 13:06:17 +0000 (15:06 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 1 Jul 2019 12:59:22 +0000 (14:59 +0200)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_meta_fast_clear.c

index f18f7637593e7bfc59b08d87836f236df9e5c1d1..a642d6243d4680a63c44d7327a5dc27bf70256d4 100644 (file)
@@ -807,11 +807,17 @@ radv_decompress_dcc_compute(struct radv_cmd_buffer *cmd_buffer,
                             device->meta_state.fast_clear_flush.dcc_decompress_compute_pipeline);
 
        for (uint32_t l = 0; l < radv_get_levelCount(image, subresourceRange); l++) {
+               uint32_t width, height;
 
                /* Do not decompress levels without DCC. */
                if (!radv_dcc_enabled(image, subresourceRange->baseMipLevel + l))
                        continue;
 
+               width = radv_minify(image->info.width,
+                                   subresourceRange->baseMipLevel + l);
+               height = radv_minify(image->info.height,
+                                   subresourceRange->baseMipLevel + l);
+
                radv_image_view_init(&iview, cmd_buffer->device,
                                     &(VkImageViewCreateInfo) {
                                             .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
@@ -863,7 +869,7 @@ radv_decompress_dcc_compute(struct radv_cmd_buffer *cmd_buffer,
                                                      }
                                              });
 
-               radv_unaligned_dispatch(cmd_buffer, image->info.width, image->info.height, 1);
+               radv_unaligned_dispatch(cmd_buffer, width, height, 1);
        }
 
        /* Mark this image as actually being decompressed. */