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
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":
*
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);