mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-09 03:38:18 +02:00
radv/meta: stop fixing up DCC after a partial resolve using compute
The decompression pass already resets DCC to its uncompressed state, so this is just redundant. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39803>
This commit is contained in:
parent
fa5d4174c4
commit
a673c9e414
1 changed files with 8 additions and 4 deletions
|
|
@ -253,11 +253,14 @@ radv_meta_resolve_compute_image(struct radv_cmd_buffer *cmd_buffer, struct radv_
|
|||
*/
|
||||
uint32_t queue_mask = radv_image_queue_family_mask(dst_image, cmd_buffer->qf, cmd_buffer->qf);
|
||||
|
||||
const bool is_partial_resolve =
|
||||
(region->dstOffset.x || region->dstOffset.y || region->dstOffset.z ||
|
||||
region->extent.width != dst_image->vk.extent.width || region->extent.height != dst_image->vk.extent.height ||
|
||||
region->extent.depth != dst_image->vk.extent.depth);
|
||||
|
||||
if (!radv_image_use_dcc_image_stores(device, dst_image) &&
|
||||
radv_layout_dcc_compressed(device, dst_image, region->dstSubresource.mipLevel, dst_image_layout, queue_mask) &&
|
||||
(region->dstOffset.x || region->dstOffset.y || region->dstOffset.z ||
|
||||
region->extent.width != dst_image->vk.extent.width || region->extent.height != dst_image->vk.extent.height ||
|
||||
region->extent.depth != dst_image->vk.extent.depth)) {
|
||||
is_partial_resolve) {
|
||||
radv_decompress_dcc(cmd_buffer, dst_image,
|
||||
&(VkImageSubresourceRange){
|
||||
.aspectMask = region->dstSubresource.aspectMask,
|
||||
|
|
@ -345,7 +348,8 @@ 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(device, dst_image) &&
|
||||
radv_layout_dcc_compressed(device, dst_image, region->dstSubresource.mipLevel, dst_image_layout, queue_mask)) {
|
||||
radv_layout_dcc_compressed(device, dst_image, region->dstSubresource.mipLevel, dst_image_layout, queue_mask) &&
|
||||
!is_partial_resolve) {
|
||||
|
||||
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_CS_PARTIAL_FLUSH | RADV_CMD_FLAG_INV_VCACHE;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue