[Mesa-dev] [PATCH 10/11] mesa: Remove Array._DrawArrays.

Mathias.Froehlich at gmx.net Mathias.Froehlich at gmx.net
Sun Apr 1 18:13:10 UTC 2018


From: Mathias Fröhlich <mathias.froehlich at web.de>

Only tnl based drivers still use this array. So remove it
from core mesa and use Array._DrawVAO instead.

Signed-off-by: Mathias Fröhlich <Mathias.Froehlich at web.de>
---
 src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c |  4 ++--
 src/mesa/main/arrayobj.c                     |  1 -
 src/mesa/main/attrib.c                       |  1 -
 src/mesa/main/mtypes.h                       |  6 ------
 src/mesa/main/varray.h                       | 14 --------------
 src/mesa/tnl/t_draw.c                        | 11 +++++------
 src/mesa/tnl/tnl.h                           |  2 +-
 7 files changed, 8 insertions(+), 31 deletions(-)

diff --git a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
index 79b444cf55..d031ebeabd 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
@@ -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);
diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c
index 4ef4046c4b..0a66b6b719 100644
--- a/src/mesa/main/arrayobj.c
+++ b/src/mesa/main/arrayobj.c
@@ -873,7 +873,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;
diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
index 3330e451ce..5fe214b472 100644
--- a/src/mesa/main/attrib.c
+++ b/src/mesa/main/attrib.c
@@ -1549,7 +1549,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);
 }
 
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index ac05a2aa4f..284c48dda5 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1741,12 +1741,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;
diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h
index 77027be800..3888e5f469 100644
--- a/src/mesa/main/varray.h
+++ b/src/mesa/main/varray.h
@@ -55,20 +55,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,
diff --git a/src/mesa/tnl/t_draw.c b/src/mesa/tnl/t_draw.c
index a83b98eede..9814cdcec1 100644
--- a/src/mesa/tnl/t_draw.c
+++ b/src/mesa/tnl/t_draw.c
@@ -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);
 }
diff --git a/src/mesa/tnl/tnl.h b/src/mesa/tnl/tnl.h
index 45052a3a89..01f8226aa6 100644
--- a/src/mesa/tnl/tnl.h
+++ b/src/mesa/tnl/tnl.h
@@ -63,7 +63,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 );
 
 
-- 
2.14.3



More information about the mesa-dev mailing list