radv: set writes_memory for global memory stores/atomics
[mesa.git] / src / gallium / auxiliary / util / u_draw.h
index 5c0880f6ce40f4b319718730897f8269d3339f95..d0955fa3f978d041803bd4ec76741743c1b35432 100644 (file)
@@ -49,7 +49,10 @@ util_draw_init_info(struct pipe_draw_info *info)
 
 
 static inline void
-util_draw_arrays(struct pipe_context *pipe, uint mode, uint start, uint count)
+util_draw_arrays(struct pipe_context *pipe,
+                 enum pipe_prim_type mode,
+                 uint start,
+                 uint count)
 {
    struct pipe_draw_info info;
 
@@ -64,13 +67,19 @@ util_draw_arrays(struct pipe_context *pipe, uint mode, uint start, uint count)
 }
 
 static inline void
-util_draw_elements(struct pipe_context *pipe, int index_bias,
-                   uint mode, uint start, uint count)
+util_draw_elements(struct pipe_context *pipe,
+                   void *indices,
+                   unsigned index_size,
+                   int index_bias, enum pipe_prim_type mode,
+                   uint start,
+                   uint count)
 {
    struct pipe_draw_info info;
 
    util_draw_init_info(&info);
-   info.indexed = TRUE;
+   info.index.user = indices;
+   info.has_user_indices = true;
+   info.index_size = index_size;
    info.mode = mode;
    info.start = start;
    info.count = count;
@@ -81,7 +90,9 @@ util_draw_elements(struct pipe_context *pipe, int index_bias,
 
 static inline void
 util_draw_arrays_instanced(struct pipe_context *pipe,
-                           uint mode, uint start, uint count,
+                           enum pipe_prim_type mode,
+                           uint start,
+                           uint count,
                            uint start_instance,
                            uint instance_count)
 {
@@ -101,15 +112,21 @@ util_draw_arrays_instanced(struct pipe_context *pipe,
 
 static inline void
 util_draw_elements_instanced(struct pipe_context *pipe,
+                             void *indices,
+                             unsigned index_size,
                              int index_bias,
-                             uint mode, uint start, uint count,
+                             enum pipe_prim_type mode,
+                             uint start,
+                             uint count,
                              uint start_instance,
                              uint instance_count)
 {
    struct pipe_draw_info info;
 
    util_draw_init_info(&info);
-   info.indexed = TRUE;
+   info.index.user = indices;
+   info.has_user_indices = true;
+   info.index_size = index_size;
    info.mode = mode;
    info.start = start;
    info.count = count;
@@ -120,27 +137,6 @@ util_draw_elements_instanced(struct pipe_context *pipe,
    pipe->draw_vbo(pipe, &info);
 }
 
-static inline void
-util_draw_range_elements(struct pipe_context *pipe,
-                         int index_bias,
-                         uint min_index,
-                         uint max_index,
-                         uint mode, uint start, uint count)
-{
-   struct pipe_draw_info info;
-
-   util_draw_init_info(&info);
-   info.indexed = TRUE;
-   info.mode = mode;
-   info.start = start;
-   info.count = count;
-   info.index_bias = index_bias;
-   info.min_index = min_index;
-   info.max_index = max_index;
-
-   pipe->draw_vbo(pipe, &info);
-}
-
 
 /* This converts an indirect draw into a direct draw by mapping the indirect
  * buffer, extracting its arguments, and calling pipe->draw_vbo.