Mesa (master): radv/gfx10: re-enable fast depth/stencil clears with separate aspects

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Oct 23 07:46:06 UTC 2019


Module: Mesa
Branch: master
Commit: 41ace1d9394075bcf6be750055b5954b4610db28
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=41ace1d9394075bcf6be750055b5954b4610db28

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Oct 17 10:19:37 2019 +0200

radv/gfx10: re-enable fast depth/stencil clears with separate aspects

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 at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/vulkan/radv_meta_clear.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index 0a967fc177a..636a9643843 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -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,




More information about the mesa-commit mailing list