Mesa (master): radv: update the FCE predicate for fast clears using CMASK
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jan 13 12:32:03 UTC 2021
Module: Mesa
Branch: master
Commit: 697c93abc1c41af8ec379f5334c44005cb344152
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=697c93abc1c41af8ec379f5334c44005cb344152
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Tue Jan 5 15:10:14 2021 +0100
radv: update the FCE predicate for fast clears using CMASK
Fast clearing with CMASK should always be eliminated.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8332>
---
src/amd/vulkan/radv_meta_clear.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index decc5d4e18d..021232708ec 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -1678,10 +1678,10 @@ radv_fast_clear_color(struct radv_cmd_buffer *cmd_buffer,
cmask_clear_value = radv_get_cmask_fast_clear_value(iview->image);
/* clear cmask buffer */
+ bool need_decompress_pass = false;
if (radv_dcc_enabled(iview->image, iview->base_mip)) {
uint32_t reset_value;
bool can_avoid_fast_clear_elim;
- bool need_decompress_pass = false;
vi_get_fast_clear_parameters(cmd_buffer->device,
iview->image->vk_format,
@@ -1701,18 +1701,22 @@ radv_fast_clear_color(struct radv_cmd_buffer *cmd_buffer,
flush_bits |= radv_clear_dcc(cmd_buffer, iview->image, &range,
reset_value);
-
- radv_update_fce_metadata(cmd_buffer, iview->image, &range,
- need_decompress_pass);
} else {
flush_bits = radv_clear_cmask(cmd_buffer, iview->image,
&range, cmask_clear_value);
+
+ /* Fast clearing with CMASK should always be eliminated. */
+ need_decompress_pass = true;
}
if (post_flush) {
*post_flush |= flush_bits;
}
+ /* Update the FCE predicate to perform a fast-clear eliminate. */
+ radv_update_fce_metadata(cmd_buffer, iview->image, &range,
+ need_decompress_pass);
+
radv_update_color_clear_metadata(cmd_buffer, iview, subpass_att,
clear_color);
}
More information about the mesa-commit
mailing list