summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2019-10-17 10:19:37 +0200
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>2019-10-23 09:18:06 +0200
commit41ace1d9394075bcf6be750055b5954b4610db28 (patch)
tree41a415500b41f943e38202ff1714a9b39c2c8b23
parent956d825ed845dd239b7098eccd5f5a7b4fecad9c (diff)
downloadmesa-41ace1d9394075bcf6be750055b5954b4610db28.tar.gz
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@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
-rw-r--r--src/amd/vulkan/radv_meta_clear.c5
1 files 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,