* non-global VS user SGPRs. */
sctx->shader_pointers_dirty |= SI_DESCS_SHADER_MASK(VERTEX);
sctx->vertex_buffer_pointer_dirty = sctx->vb_descriptors_buffer != NULL;
+ sctx->vertex_buffer_user_sgprs_dirty = sctx->num_vertex_elements > 0;
si_mark_atom_dirty(sctx, &sctx->atoms.s.shader_pointers);
}
if (!need_dcc_decompress)
level_mask &= tex->dirty_level_mask;
if (!level_mask)
- return;
+ goto expand_fmask;
if (unlikely(sctx->log))
u_log_printf(sctx->log,
vi_dcc_enabled(tex, first_level),
tex->surface.u.gfx9.dcc.pipe_aligned);
- if (need_fmask_expand && tex->surface.fmask_offset && tex->fmask_is_not_identity) {
+expand_fmask:
+ if (need_fmask_expand && tex->surface.fmask_offset && !tex->fmask_is_identity) {
si_compute_expand_fmask(&sctx->b, &tex->buffer.b.b);
- tex->fmask_is_not_identity = false;
+ tex->fmask_is_identity = true;
}
}