Browse Source

anv: Enable MSAA fast-clears

This speeds up the Sascha Willems multisampling demo by around 25% when
using 8x or 16x MSAA.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
tags/18.1-branchpoint
Jason Ekstrand 7 years ago
parent
commit
89f78cf333
1 changed files with 7 additions and 4 deletions
  1. 7
    4
      src/intel/vulkan/anv_image.c

+ 7
- 4
src/intel/vulkan/anv_image.c View File

@@ -952,8 +952,10 @@ anv_layout_to_fast_clear_type(const struct gen_device_info * const devinfo,

assert(image->aspects & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV);

/* Multisample fast-clear is not yet supported. */
if (image->samples > 1)
/* We don't support MSAA fast-clears on Ivybridge or Bay Trail because they
* lack the MI ALU which we need to determine the predicates.
*/
if (devinfo->gen == 7 && !devinfo->is_haswell && image->samples > 1)
return ANV_FAST_CLEAR_NONE;

switch (layout) {
@@ -964,12 +966,13 @@ anv_layout_to_fast_clear_type(const struct gen_device_info * const devinfo,
return ANV_FAST_CLEAR_NONE;

default:
/* If the image has CCS_E enabled all the time then we can use
/* If the image has MCS or CCS_E enabled all the time then we can use
* fast-clear as long as the clear color is the default value of zero
* since this is the default value we program into every surface state
* used for texturing.
*/
if (image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E)
if (image->planes[plane].aux_usage == ISL_AUX_USAGE_MCS ||
image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E)
return ANV_FAST_CLEAR_DEFAULT_VALUE;
else
return ANV_FAST_CLEAR_NONE;

Loading…
Cancel
Save