radv: fix decompressing DCC levels with compute

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Samuel Pitoiset 2019-06-27 15:06:17 +02:00
parent f4d2c47cf6
commit 17cb7ea6fc

View 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. */