Merge remote-tracking branch 'public/master' into vulkan
[mesa.git] / src / gallium / drivers / llvmpipe / lp_draw_arrays.c
index 99e6d1988372203cc3422301cc2b6a8f4f0a8c87..22ef5fc17f9e853121311fcd37a56541714728a0 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "pipe/p_defines.h"
 #include "pipe/p_context.h"
+#include "util/u_draw.h"
 #include "util/u_prim.h"
 
 #include "lp_context.h"
@@ -60,6 +61,11 @@ llvmpipe_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info)
    if (!llvmpipe_check_render_cond(lp))
       return;
 
+   if (info->indirect) {
+      util_draw_indirect(pipe, info);
+      return;
+   }
+
    if (lp->dirty)
       llvmpipe_update_derived( lp );
 
@@ -143,9 +149,6 @@ llvmpipe_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info)
          draw_vs_reset_so(lp->vs);
       }
    }
-   
-   llvmpipe_cleanup_vertex_sampling(lp);
-   llvmpipe_cleanup_geometry_sampling(lp);
 
    /*
     * TODO: Flush only when a user vertex/index buffer is present