[Mesa-dev] [PATCH 2/2] radv: always initialize levels without DCC as fully expanded

Samuel Pitoiset samuel.pitoiset at gmail.com
Mon Jun 24 15:03:28 UTC 2019


This fixes a rendering issue with RoTR/DXVK.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
 src/amd/vulkan/radv_cmd_buffer.c | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 9b4d4528028..733795eb1a4 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -4960,26 +4960,24 @@ void radv_initialize_dcc(struct radv_cmd_buffer *cmd_buffer,
 		 * support fast clears and we have to initialize them as "fully
 		 * expanded".
 		 */
-		if (image->planes[0].surface.num_dcc_levels > 1) {
-			/* Compute the size of all fast clearable DCC levels. */
-			for (unsigned i = 0; i < image->planes[0].surface.num_dcc_levels; i++) {
-				struct legacy_surf_level *surf_level =
-					&image->planes[0].surface.u.legacy.level[i];
+		/* Compute the size of all fast clearable DCC levels. */
+		for (unsigned i = 0; i < image->planes[0].surface.num_dcc_levels; i++) {
+			struct legacy_surf_level *surf_level =
+				&image->planes[0].surface.u.legacy.level[i];
 
-				if (!surf_level->dcc_fast_clear_size)
-					break;
+			if (!surf_level->dcc_fast_clear_size)
+				break;
 
-				size = surf_level->dcc_offset + surf_level->dcc_fast_clear_size;
-			}
+			size = surf_level->dcc_offset + surf_level->dcc_fast_clear_size;
+		}
 
-			/* Initialize the mipmap levels without DCC. */
-			if (size != image->planes[0].surface.dcc_size) {
-				state->flush_bits |=
-					radv_fill_buffer(cmd_buffer, image->bo,
-							 image->offset + image->dcc_offset + size,
-							 image->planes[0].surface.dcc_size - size,
-							 0xffffffff);
-			}
+		/* Initialize the mipmap levels without DCC. */
+		if (size != image->planes[0].surface.dcc_size) {
+			state->flush_bits |=
+				radv_fill_buffer(cmd_buffer, image->bo,
+						 image->offset + image->dcc_offset + size,
+						 image->planes[0].surface.dcc_size - size,
+						 0xffffffff);
 		}
 	}
 
-- 
2.22.0



More information about the mesa-dev mailing list