[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