radv: enable fast depth/stencil clears with separate aspects on GFX8
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 24 Oct 2019 12:59:29 +0000 (14:59 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 28 Oct 2019 07:54:11 +0000 (07:54 +0000)
It's similar to GFX9+. 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 d96fd4a7a1cb88f26a0072e9dddf57711c22e564..c31eab1f039e089382bc4de8dddbc785464d4cf8 100644 (file)
@@ -1065,12 +1065,6 @@ 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 &&
-           (!(aspects & VK_IMAGE_ASPECT_DEPTH_BIT) ||
-           ((vk_format_aspects(iview->image->vk_format) & VK_IMAGE_ASPECT_STENCIL_BIT) &&
-            !(aspects & VK_IMAGE_ASPECT_STENCIL_BIT))))
-               return false;
-
        if (((aspects & VK_IMAGE_ASPECT_DEPTH_BIT) &&
            !radv_is_fast_clear_depth_allowed(clear_value)) ||
            ((aspects & VK_IMAGE_ASPECT_STENCIL_BIT) &&
@@ -1108,7 +1102,6 @@ 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. */
-               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,