mesa: Remove Array._DrawArrays.
authorMathias Fröhlich <mathias.froehlich@web.de>
Sun, 1 Apr 2018 18:18:36 +0000 (20:18 +0200)
committerMathias Fröhlich <Mathias.Froehlich@gmx.net>
Thu, 10 May 2018 05:06:16 +0000 (07:06 +0200)
Only tnl based drivers still use this array. So remove it
from core mesa and use Array._DrawVAO instead.

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
src/mesa/main/arrayobj.c
src/mesa/main/attrib.c
src/mesa/main/mtypes.h
src/mesa/main/varray.h
src/mesa/tnl/t_draw.c
src/mesa/tnl/tnl.h

index 79b444cf55f0335928550c94c55419e7e0e08141..d031ebeabd39cba9f20ce786e0b744cacc9072b8 100644 (file)
@@ -550,9 +550,9 @@ TAG(vbo_draw)(struct gl_context *ctx,
              struct gl_buffer_object *indirect)
 {
        /* Borrow and update the inputs list from the tnl context */
-       _tnl_bind_inputs(ctx);
+       const struct gl_vertex_array* arrays = _tnl_bind_inputs(ctx);
 
-       TAG(vbo_check_render_prims)(ctx, ctx->Array._DrawArrays,
+       TAG(vbo_check_render_prims)(ctx, arrays,
                                    prims, nr_prims, ib,
                                    index_bounds_valid, min_index, max_index,
                                    tfb_vertcount, stream, indirect);
index 05af50ef400de14bf92c5b441048078331db240c..5ee68cf9e94986bad404911de2309dd51562ee0a 100644 (file)
@@ -970,7 +970,6 @@ bind_vertex_array(struct gl_context *ctx, GLuint id, bool no_error)
     * or to prevent a crash if the VAO being unbound is going to be
     * deleted.
     */
-   _mesa_set_drawing_arrays(ctx, NULL);
    _mesa_set_draw_vao(ctx, ctx->Array._EmptyVAO, 0);
 
    ctx->NewState |= _NEW_ARRAY;
index e565750a8915e95b958787c2b8f8f28e1e328a40..cbe93ab6faa60ec5853f0d0b6165872a8d1b8321 100644 (file)
@@ -1588,7 +1588,6 @@ copy_array_attrib(struct gl_context *ctx,
    /* skip IndexBufferObj */
 
    /* Invalidate array state. It will be updated during the next draw. */
-   _mesa_set_drawing_arrays(ctx, NULL);
    _mesa_set_draw_vao(ctx, ctx->Array._EmptyVAO, 0);
 }
 
index e7517043864f6783ac71d18e8874fcd7a0440a81..0b55a510b08e52912858fb3e8d2d1a6ad1442e76 100644 (file)
@@ -1629,12 +1629,6 @@ struct gl_array_attrib
     */
    struct gl_vertex_array_object *_EmptyVAO;
 
-   /**
-    * Vertex arrays as consumed by a driver.
-    * The array pointer is set up only by the VBO module.
-    */
-   const struct gl_vertex_array *_DrawArrays; /**< 0..VERT_ATTRIB_MAX-1 */
-
    /** Legal array datatypes and the API for which they have been computed */
    GLbitfield LegalTypesMask;
    gl_api LegalTypesMaskAPI;
index 25d2a29e731e16d2389d5ee5204cb0b79d9cd6c5..6ab55ed36ae4e1797bf823fbbfe18bf2a8423265 100644 (file)
@@ -53,20 +53,6 @@ _mesa_attr_zero_aliases_vertex(const struct gl_context *ctx)
 }
 
 
-/**
- * This specifies the set of vertex arrays used by the driver for drawing.
- */
-static inline void
-_mesa_set_drawing_arrays(struct gl_context *ctx,
-                         const struct gl_vertex_array *arrays)
-{
-   if (ctx->Array._DrawArrays != arrays) {
-      ctx->Array._DrawArrays = arrays;
-      ctx->NewDriverState |= ctx->DriverFlags.NewArray;
-   }
-}
-
-
 extern void
 _mesa_update_array_format(struct gl_context *ctx,
                           struct gl_vertex_array_object *vao,
index a83b98eede14d24e6648741a30658bb17cad708a..9814cdcec1864e34ae5fb09897e0dd342e98b3df 100644 (file)
@@ -537,12 +537,12 @@ void _tnl_draw_prims(struct gl_context *ctx,
 }
 
 
-void
+const struct gl_vertex_array*
 _tnl_bind_inputs( struct gl_context *ctx )
 {
    TNLcontext *tnl = TNL_CONTEXT(ctx);
-   _mesa_set_drawing_arrays(ctx, tnl->draw_arrays.inputs);
    _vbo_update_inputs(ctx, &tnl->draw_arrays);
+   return tnl->draw_arrays.inputs;
 }
 
 
@@ -558,12 +558,11 @@ _tnl_draw(struct gl_context *ctx,
           struct gl_transform_feedback_object *tfb_vertcount,
           unsigned stream, struct gl_buffer_object *indirect)
 {
-   /* Update TNLcontext::draw_arrays and set that pointer
-    * into Array._DrawArrays.
+   /* Update TNLcontext::draw_arrays and return that pointer.
     */
-   _tnl_bind_inputs(ctx);
+   const struct gl_vertex_array* arrays = _tnl_bind_inputs(ctx);
 
-   _tnl_draw_prims(ctx, ctx->Array._DrawArrays, prim, nr_prims, ib,
+   _tnl_draw_prims(ctx, arrays, prim, nr_prims, ib,
                    index_bounds_valid, min_index, max_index,
                    tfb_vertcount, stream, indirect);
 }
index e506aee6dfbc523f037f0ccda33ab623886b999a..4b6d5ec3919291447145ca586f2a611a2ca99004 100644 (file)
@@ -66,7 +66,7 @@ _tnl_wakeup( struct gl_context *ctx );
 extern void
 _tnl_need_projected_coords( struct gl_context *ctx, GLboolean flag );
 
-extern void
+extern const struct gl_vertex_array*
 _tnl_bind_inputs( struct gl_context *ctx );