radv: perform a FCE for MSAA images that might have been fast-cleared

FMASK_DECOMPRESS can't eliminate DCC fast clears. This will allow to
enable DCC MSAA fast clears that require a FCE.

Only supported on GFX10+.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12180>
This commit is contained in:
Samuel Pitoiset
2021-08-03 11:36:36 +02:00
committed by Marge Bot
parent 3cfa3187cb
commit f136838d1e

View File

@@ -783,6 +783,13 @@ radv_fast_clear_flush_image_inplace(struct radv_cmd_buffer *cmd_buffer, struct r
const VkImageSubresourceRange *subresourceRange)
{
if (radv_image_has_fmask(image) && !image->tc_compatible_cmask) {
if (radv_image_has_dcc(image) && radv_image_has_cmask(image)) {
/* MSAA images with DCC and CMASK might have been fast-cleared and might require a FCE but
* FMASK_DECOMPRESS can't eliminate DCC fast clears.
*/
radv_fast_clear_eliminate(cmd_buffer, image, subresourceRange);
}
radv_fmask_decompress(cmd_buffer, image, subresourceRange);
} else {
radv_fast_clear_eliminate(cmd_buffer, image, subresourceRange);