radv/gfx10: re-enable fast depth/stencil clears with separate aspects
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 17 Oct 2019 08:19:37 +0000 (10:19 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 23 Oct 2019 07:18:06 +0000 (09:18 +0200)
It used to cause weird issues on GFX10 in the past with vkmark and
Wreckfest, and they can't be reproduced now. Shadow Of Mordor
(Vulkan beta) hits that path and it works fine.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_meta_clear.c

index 0a967fc177ad4b06576fc02b37d7f1a6548ac4c9..636a9643843f7e030a133e059bf7519113cf119e 100644 (file)
@@ -1020,7 +1020,7 @@ radv_can_fast_clear_depth(struct radv_cmd_buffer *cmd_buffer,
        if (!view_mask && clear_rect->layerCount != iview->image->info.array_size)
                return false;
 
-       if (cmd_buffer->device->physical_device->rad_info.chip_class != GFX9 &&
+       if (cmd_buffer->device->physical_device->rad_info.chip_class < GFX9 &&
            (!(aspects & VK_IMAGE_ASPECT_DEPTH_BIT) ||
            ((vk_format_aspects(iview->image->vk_format) & VK_IMAGE_ASPECT_STENCIL_BIT) &&
             !(aspects & VK_IMAGE_ASPECT_STENCIL_BIT))))
@@ -1063,8 +1063,7 @@ radv_fast_clear_depth(struct radv_cmd_buffer *cmd_buffer,
                                              iview->image->planes[0].surface.htile_size, clear_word);
        } else {
                /* Only clear depth or stencil bytes in the HTILE buffer. */
-               /* TODO: Implement that path for GFX10. */
-               assert(cmd_buffer->device->physical_device->rad_info.chip_class == GFX9);
+               assert(cmd_buffer->device->physical_device->rad_info.chip_class >= GFX9);
                flush_bits = clear_htile_mask(cmd_buffer, iview->image->bo,
                                              iview->image->offset + iview->image->htile_offset,
                                              iview->image->planes[0].surface.htile_size, clear_word,