{
/* Opaque uniforms have no storage unless they are bindless */
if (!uni->is_bindless && uni->type->contains_opaque()) {
- FLUSH_VERTICES(ctx, 0);
+ /* Samplers flush on demand and ignore redundant updates. */
+ if (!uni->type->is_sampler())
+ FLUSH_VERTICES(ctx, 0);
return;
}
count = MIN2(count, (int) (uni->array_elements - offset));
}
- /* We check samplers for changes and flush if needed in the sampler
- * handling code further down, so just skip them here.
- */
- if (!uni->type->is_sampler()) {
- _mesa_flush_vertices_for_uniforms(ctx, uni);
- }
+ _mesa_flush_vertices_for_uniforms(ctx, uni);
/* Store the data in the "actual type" backing storage for the uniform.
*/