From: Pohjolainen, Topi Date: Tue, 11 Oct 2016 19:26:35 +0000 (+0300) Subject: intel/blorp: Add plumbing for color resolve slice details X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7c560e8ccc60f26c145fbbcb281e431e65bbce55;p=mesa.git intel/blorp: Add plumbing for color resolve slice details Signed-off-by: Topi Pohjolainen Reviewed-by: Jason Ekstrand --- diff --git a/src/intel/blorp/blorp.h b/src/intel/blorp/blorp.h index 1a38cc96509..4e5a3a33ad6 100644 --- a/src/intel/blorp/blorp.h +++ b/src/intel/blorp/blorp.h @@ -169,7 +169,8 @@ blorp_clear_attachments(struct blorp_batch *batch, void blorp_ccs_resolve(struct blorp_batch *batch, - struct blorp_surf *surf, enum isl_format format); + struct blorp_surf *surf, uint32_t level, uint32_t layer, + enum isl_format format); /** * For an overview of the HiZ operations, see the following sections of the diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c index ea80c193c57..5c40e2f0557 100644 --- a/src/intel/blorp/blorp_clear.c +++ b/src/intel/blorp/blorp_clear.c @@ -542,13 +542,18 @@ blorp_clear_attachments(struct blorp_batch *batch, void blorp_ccs_resolve(struct blorp_batch *batch, - struct blorp_surf *surf, enum isl_format format) + struct blorp_surf *surf, uint32_t level, uint32_t layer, + enum isl_format format) { struct blorp_params params; blorp_params_init(¶ms); + /* Layered and mipmapped fast clear is only available from Gen8 onwards. */ + assert(ISL_DEV_GEN(batch->blorp->isl_dev) >= 8 || + (level == 0 && layer == 0)); + brw_blorp_surface_info_init(batch->blorp, ¶ms.dst, surf, - 0 /* level */, 0 /* layer */, format, true); + level, layer, format, true); /* From the Ivy Bridge PRM, Vol2 Part1 11.9 "Render Target Resolve": * diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c index f0ad0743cdf..2771f1466db 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.c +++ b/src/mesa/drivers/dri/i965/brw_blorp.c @@ -945,7 +945,7 @@ brw_blorp_resolve_color(struct brw_context *brw, struct intel_mipmap_tree *mt) struct blorp_batch batch; blorp_batch_init(&brw->blorp, &batch, brw, 0); - blorp_ccs_resolve(&batch, &surf, + blorp_ccs_resolve(&batch, &surf, 0 /* level */, 0 /* layer */, brw_blorp_to_isl_format(brw, format, true)); blorp_batch_finish(&batch);