Browse Source

anv: Properly allocate aux-tracking space for CCS_E

add_aux_state_tracking_buffer() actually checks the aux usage when
determining how many dwords to allocate for state tracking. Move the
function call to the point after the CCS_E aux usage is assigned.

Fixes: de3be61801 ("anv/cmd_buffer: Rework aux tracking")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit d0fcc2dd50)
tags/mesa-19.2.3
Nanley Chery 5 years ago
parent
commit
d8847c2f28
2 changed files with 5 additions and 3 deletions
  1. 3
    3
      src/intel/vulkan/anv_image.c
  2. 2
    0
      src/intel/vulkan/anv_private.h

+ 3
- 3
src/intel/vulkan/anv_image.c View File

@@ -468,9 +468,6 @@ make_surface(const struct anv_device *dev,
return VK_SUCCESS;
}

add_surface(image, &image->planes[plane].aux_surface, plane);
add_aux_state_tracking_buffer(image, plane, dev);

/* For images created without MUTABLE_FORMAT_BIT set, we know that
* they will always be used with the original format. In
* particular, they will always be used with a format that
@@ -483,6 +480,9 @@ make_surface(const struct anv_device *dev,
image->ccs_e_compatible) {
image->planes[plane].aux_usage = ISL_AUX_USAGE_CCS_E;
}

add_surface(image, &image->planes[plane].aux_surface, plane);
add_aux_state_tracking_buffer(image, plane, dev);
}
}
} else if ((aspect & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV) && image->samples > 1) {

+ 2
- 0
src/intel/vulkan/anv_private.h View File

@@ -3276,6 +3276,8 @@ anv_image_get_compression_state_addr(const struct anv_device *device,
}
addr.offset += array_layer * 4;

assert(addr.offset <
image->planes[plane].address.offset + image->planes[plane].size);
return addr;
}


Loading…
Cancel
Save