summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2021-01-13 10:31:15 +0100
committerMarge Bot <eric+marge@anholt.net>2021-01-13 13:42:04 +0000
commit5537c9de73a2af8a9203d261ed914df92b7ae467 (patch)
treed1b5bea43361301b1ea57c0574167f9876f2975c /src
parenta4876f055c705a6ca4c083dbe54b9b181558c714 (diff)
radv: prevent fast-clearing uncompressed DCC levels
When size is 0, this means the level can't be compressed. 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/8468>
Diffstat (limited to 'src')
-rw-r--r--src/amd/vulkan/radv_meta_clear.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index 021232708ec..4cad6c57bb4 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -1437,6 +1437,10 @@ radv_clear_dcc(struct radv_cmd_buffer *cmd_buffer,
size = surf_level->dcc_slice_fast_clear_size * radv_get_layerCount(image, range);
}
+ /* Do not clear this level if it can't be compressed. */
+ if (!size)
+ continue;
+
flush_bits |= radv_fill_buffer(cmd_buffer, image->bo, offset,
size, value);
}