intel/blorp: Add plumbing for color resolve slice details
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:

committed by
Jason Ekstrand

parent
d7bd8c15d6
commit
7c560e8ccc
@@ -169,7 +169,8 @@ blorp_clear_attachments(struct blorp_batch *batch,
|
|||||||
|
|
||||||
void
|
void
|
||||||
blorp_ccs_resolve(struct blorp_batch *batch,
|
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
|
* For an overview of the HiZ operations, see the following sections of the
|
||||||
|
@@ -542,13 +542,18 @@ blorp_clear_attachments(struct blorp_batch *batch,
|
|||||||
|
|
||||||
void
|
void
|
||||||
blorp_ccs_resolve(struct blorp_batch *batch,
|
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;
|
struct blorp_params params;
|
||||||
blorp_params_init(¶ms);
|
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,
|
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":
|
/* From the Ivy Bridge PRM, Vol2 Part1 11.9 "Render Target Resolve":
|
||||||
*
|
*
|
||||||
|
@@ -945,7 +945,7 @@ brw_blorp_resolve_color(struct brw_context *brw, struct intel_mipmap_tree *mt)
|
|||||||
|
|
||||||
struct blorp_batch batch;
|
struct blorp_batch batch;
|
||||||
blorp_batch_init(&brw->blorp, &batch, brw, 0);
|
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));
|
brw_blorp_to_isl_format(brw, format, true));
|
||||||
blorp_batch_finish(&batch);
|
blorp_batch_finish(&batch);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user