mesa: skip FLUSH_VERTICES() if no samplers were changed
authorTimothy Arceri <tarceri@itsqueeze.com>
Thu, 22 Jun 2017 22:56:40 +0000 (08:56 +1000)
committerTimothy Arceri <tarceri@itsqueeze.com>
Mon, 26 Jun 2017 23:20:29 +0000 (09:20 +1000)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/uniform_query.cpp

index afb9f566b8074031006f2526e710078edcc226e0..928d3ce4fd65d1e37224bdbe4789eb37368a20dd 100644 (file)
@@ -1079,7 +1079,12 @@ _mesa_uniform(GLint location, GLsizei count, const GLvoid *values,
       count = MIN2(count, (int) (uni->array_elements - offset));
    }
 
-   _mesa_flush_vertices_for_uniforms(ctx, uni);
+   /* 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);
+   }
 
    /* Store the data in the "actual type" backing storage for the uniform.
     */