On Mon, Nov 13, 2017 at 08:12:53AM -0800, Jason Ekstrand wrote: > --- > src/intel/vulkan/anv_blorp.c | 31 +++++++++++++++++++++++++++++++ > src/intel/vulkan/anv_private.h | 6 ++++++ > 2 files changed, 37 insertions(+) > > diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c > index 27320c2..266cb9a 100644 > --- a/src/intel/vulkan/anv_blorp.c > +++ b/src/intel/vulkan/anv_blorp.c > @@ -1696,3 +1696,34 @@ anv_ccs_resolve(struct anv_cmd_buffer * const > cmd_buffer, > > blorp_batch_finish(&batch); > } > + > +void > +anv_mcs_partial_resolve(struct anv_cmd_buffer * const cmd_buffer, > + const struct anv_image * const image, > + VkImageAspectFlagBits aspect, > + const uint32_t start_layer, const uint32_t > layer_count) > +{ > + assert(cmd_buffer && image); > + > + uint32_t plane = anv_image_aspect_to_plane(image->aspects, aspect); > + > + /* The resolved subresource range must have a CCS buffer. */ ^ MCS
With that fixed, this patch is Reviewed-by: Nanley Chery <nanley.g.ch...@intel.com> > + assert(aspect == VK_IMAGE_ASPECT_COLOR_BIT); > + assert(start_layer + layer_count <= anv_image_aux_layers(image, aspect, > 0)); > + assert(image->samples > 1); > + > + struct blorp_batch batch; > + blorp_batch_init(&cmd_buffer->device->blorp, &batch, cmd_buffer, > + BLORP_BATCH_PREDICATE_ENABLE); > + > + struct blorp_surf surf; > + get_blorp_surf_for_anv_image(image, aspect, ISL_AUX_USAGE_MCS, &surf); > + surf.clear_color_addr = anv_to_blorp_address( > + anv_image_get_clear_color_addr(cmd_buffer->device, image, aspect, 0)); > + > + blorp_mcs_partial_resolve(&batch, &surf, > + image->planes[plane].surface.isl.format, > + start_layer, layer_count); > + > + blorp_batch_finish(&batch); > +} > diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h > index a1b1d48..6be7e58 100644 > --- a/src/intel/vulkan/anv_private.h > +++ b/src/intel/vulkan/anv_private.h > @@ -2534,6 +2534,12 @@ anv_ccs_resolve(struct anv_cmd_buffer * const > cmd_buffer, > const enum blorp_fast_clear_op op); > > void > +anv_mcs_partial_resolve(struct anv_cmd_buffer * const cmd_buffer, > + const struct anv_image * const image, > + VkImageAspectFlagBits aspect, > + const uint32_t start_layer, const uint32_t > layer_count); > + > +void > anv_image_fast_clear(struct anv_cmd_buffer *cmd_buffer, > const struct anv_image *image, > VkImageAspectFlagBits aspect, > -- > 2.5.0.400.gff86faf > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev