diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp index 2949e47e154..f97e7bdaa33 100644 --- a/src/mesa/main/uniform_query.cpp +++ b/src/mesa/main/uniform_query.cpp @@ -1039,7 +1039,9 @@ _mesa_flush_vertices_for_uniforms(struct gl_context *ctx, { /* 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; } @@ -1149,12 +1151,7 @@ _mesa_uniform(GLint location, GLsizei count, const GLvoid *values, 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. */