diff --git a/.pick_status.json b/.pick_status.json index d7838c13ba2..e0f14b11c5f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -355,7 +355,7 @@ "description": "radv: check if DCC is enabled when resolving different levels", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/amd/vulkan/radv_meta_resolve_cs.c b/src/amd/vulkan/radv_meta_resolve_cs.c index 176063967e0..9dc2c2b0ce5 100644 --- a/src/amd/vulkan/radv_meta_resolve_cs.c +++ b/src/amd/vulkan/radv_meta_resolve_cs.c @@ -678,7 +678,8 @@ radv_meta_resolve_compute_image(struct radv_cmd_buffer *cmd_buffer, struct radv_ uint32_t queue_mask = radv_image_queue_family_mask(dest_image, cmd_buffer->queue_family_index, cmd_buffer->queue_family_index); - if (radv_layout_dcc_compressed(cmd_buffer->device, dest_image, dest_image_layout, false, + if (radv_dcc_enabled(dest_image, region->dstSubresource.mipLevel) && + radv_layout_dcc_compressed(cmd_buffer->device, dest_image, dest_image_layout, false, queue_mask) && (region->dstOffset.x || region->dstOffset.y || region->dstOffset.z || region->extent.width != dest_image->info.width || @@ -760,6 +761,7 @@ radv_meta_resolve_compute_image(struct radv_cmd_buffer *cmd_buffer, struct radv_ radv_meta_restore(&saved_state, cmd_buffer); if (!radv_image_use_dcc_image_stores(cmd_buffer->device, dest_image) && + radv_dcc_enabled(dest_image, region->dstSubresource.mipLevel) && radv_layout_dcc_compressed(cmd_buffer->device, dest_image, dest_image_layout, false, queue_mask)) {