etna_resource_ext_ts(etna_resource(dst->texture))))
etna_resource(dst->texture)->ts_meta->v0.clear_value = new_clear_value;
- surf->level->ts_valid = true;
+ etna_resource_level_ts_mark_valid(surf->level);
ctx->dirty |= ETNA_DIRTY_TS | ETNA_DIRTY_DERIVE_TS;
}
/* This made the TS valid */
if (surf->level->ts_size) {
ctx->framebuffer.TS_DEPTH_CLEAR_VALUE = surf->level->clear_value;
- surf->level->ts_valid = true;
+ etna_resource_level_ts_mark_valid(surf->level);
ctx->dirty |= ETNA_DIRTY_TS | ETNA_DIRTY_DERIVE_TS;
}
resource_written(ctx, &dst->base);
etna_resource_level_mark_changed(dst_lev);
- dst_lev->ts_valid = false;
+ etna_resource_level_ts_mark_invalid(dst_lev);
return true;
}
rsc->levels[0].clear_value = rsc->ts_meta->v0.clear_value;
rsc->levels[0].ts_size = rsc->ts_meta->v0.data_size;
rsc->levels[0].ts_mode = ts_mode;
- rsc->levels[0].ts_valid = true;
+ etna_resource_level_ts_mark_valid(&rsc->levels[0]);
etna_resource_destroy(&screen->base, rsc->base.next);
rsc->base.next = NULL;
return lvl->ts_valid;
}
+static inline void
+etna_resource_level_ts_mark_valid(struct etna_resource_level *lvl)
+{
+ lvl->ts_valid = true;
+}
+
+static inline void
+etna_resource_level_ts_mark_invalid(struct etna_resource_level *lvl)
+{
+ lvl->ts_valid = false;
+}
+
/* returns TRUE if a is older than b */
static inline bool
etna_resource_level_needs_flush(struct etna_resource_level *lvl)
etna_resource_ext_ts(etna_resource(dst->texture))))
etna_resource(dst->texture)->ts_meta->v0.clear_value = new_clear_value;
- surf->level->ts_valid = true;
+ etna_resource_level_ts_mark_valid(surf->level);
ctx->dirty |= ETNA_DIRTY_TS | ETNA_DIRTY_DERIVE_TS;
} else if (unlikely(new_clear_value != surf->level->clear_value)) { /* Queue normal RS clear for non-TS surfaces */
/* If clear color changed, re-generate stored command */
ctx->framebuffer.TS_MEM_CONFIG |= VIVS_TS_MEM_CONFIG_DEPTH_AUTO_DISABLE;
}
- surf->level->ts_valid = true;
+ etna_resource_level_ts_mark_valid(surf->level);
ctx->dirty |= ETNA_DIRTY_TS | ETNA_DIRTY_DERIVE_TS;
} else {
if (unlikely(new_clear_value != surf->level->clear_value)) { /* Queue normal RS clear for non-TS surfaces */
resource_read(ctx, &src->base);
resource_written(ctx, &dst->base);
etna_resource_level_mark_changed(dst_lev);
- dst_lev->ts_valid = false;
+ etna_resource_level_ts_mark_invalid(dst_lev);
ctx->dirty |= ETNA_DIRTY_DERIVE_TS;
return true;
FREE(trans->staging);
}
- res_level->ts_valid = false;
+ etna_resource_level_ts_mark_invalid(res_level);
etna_resource_level_mark_changed(res_level);
if (rsc->base.bind & PIPE_BIND_SAMPLER_VIEW) {