*/
if (src == dst) {
assert(!memcmp(&blit_info->src, &blit_info->dst, sizeof(blit_info->src)));
- if (!src_lev->ts_size || !src_lev->ts_valid) /* No TS, no worries */
+ if (!etna_resource_level_ts_valid(src_lev)) /* No TS, no worries */
return true;
}
for (unsigned x=0; x<4; ++x)
op.src.swizzle[x] = x;
- if (src_lev->ts_size && src_lev->ts_valid) {
+ if (etna_resource_level_ts_valid(src_lev)) {
op.src.use_ts = 1;
op.src.ts_addr.bo = src->ts_bo;
op.src.ts_addr.offset = src_lev->ts_offset + blit_info->src.box.z * src_lev->ts_layer_stride;
return (int)(a->seqno - b->seqno) < 0;
}
+static inline bool
+etna_resource_level_ts_valid(struct etna_resource_level *lvl)
+{
+ return lvl->ts_valid;
+}
+
/* returns TRUE if a is older than b */
static inline bool
etna_resource_level_needs_flush(struct etna_resource_level *lvl)
/* Set up color TS to source surface before blit, if needed */
bool source_ts_valid = false;
- if (src_lev->ts_size && src_lev->ts_valid) {
+ if (etna_resource_level_ts_valid(src_lev)) {
struct etna_reloc reloc;
unsigned ts_offset =
src_lev->ts_offset + blit_info->src.box.z * src_lev->ts_layer_stride;
if (ctx->framebuffer_s.nr_cbufs > 0) {
struct etna_surface *c_surf = etna_surface(ctx->framebuffer_s.cbufs[0]);
- if(c_surf->level->ts_size && c_surf->level->ts_valid) {
+ if (etna_resource_level_ts_valid(c_surf->level)) {
new_ts_config |= VIVS_TS_MEM_CONFIG_COLOR_FAST_CLEAR;
} else {
new_ts_config &= ~VIVS_TS_MEM_CONFIG_COLOR_FAST_CLEAR;
if (ctx->framebuffer_s.zsbuf) {
struct etna_surface *zs_surf = etna_surface(ctx->framebuffer_s.zsbuf);
- if(zs_surf->level->ts_size && zs_surf->level->ts_valid) {
+ if (etna_resource_level_ts_valid(zs_surf->level)) {
new_ts_config |= VIVS_TS_MEM_CONFIG_DEPTH_FAST_CLEAR;
} else {
new_ts_config &= ~VIVS_TS_MEM_CONFIG_DEPTH_FAST_CLEAR;
(lev->clear_value >> 32) != sts->TS_SAMPLER_CLEAR_VALUE2)
dirty = true;
- assert(rsc->ts_bo && lev->ts_valid);
+ assert(rsc->ts_bo && etna_resource_level_ts_valid(lev));
sts->mode = lev->ts_mode;
sts->comp = lev->ts_compress_fmt >= 0;
return false;
/* The resource TS is valid for level 0. */
- if (!rsc->levels[0].ts_valid)
+ if (!etna_resource_level_ts_valid(&rsc->levels[0]))
return false;
return true;