summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/varray.c
diff options
context:
space:
mode:
authorMathias Fröhlich <[email protected]>2018-03-22 05:34:09 +0100
committerMathias Fröhlich <[email protected]>2018-03-23 19:58:59 +0100
commit1a131aaf4b03502980ea109c44531da8f965ecaa (patch)
tree9fa4f2aaf624d78026994abbfd15a8c4dd47dd15 /src/mesa/main/varray.c
parent19526a57f58bba7e275388cf07b1c4568b2e03af (diff)
mesa: Flag early if we modify a SharedAndImmutable VAO.
Reviewed-by: Brian Paul <[email protected]> Signed-off-by: Mathias Fröhlich <[email protected]>
Diffstat (limited to 'src/mesa/main/varray.c')
-rw-r--r--src/mesa/main/varray.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index 69a08a646f8..5df38a14f0a 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -162,6 +162,7 @@ _mesa_vertex_attrib_binding(struct gl_context *ctx,
GLuint bindingIndex, bool flush_vertices)
{
struct gl_array_attributes *array = &vao->VertexAttrib[attribIndex];
+ assert(!vao->SharedAndImmutable);
if (array->BufferBindingIndex != bindingIndex) {
const GLbitfield array_bit = VERT_BIT(attribIndex);
@@ -197,6 +198,7 @@ _mesa_bind_vertex_buffer(struct gl_context *ctx,
GLintptr offset, GLsizei stride, bool flush_vertices)
{
assert(index < ARRAY_SIZE(vao->BufferBinding));
+ assert(!vao->SharedAndImmutable);
struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index];
if (binding->BufferObj != vbo ||
@@ -233,6 +235,7 @@ vertex_binding_divisor(struct gl_context *ctx,
{
struct gl_vertex_buffer_binding *binding =
&vao->BufferBinding[bindingIndex];
+ assert(!vao->SharedAndImmutable);
if (binding->InstanceDivisor != divisor) {
FLUSH_VERTICES(ctx, _NEW_ARRAY);
@@ -333,6 +336,7 @@ _mesa_update_array_format(struct gl_context *ctx,
struct gl_array_attributes *const array = &vao->VertexAttrib[attrib];
GLint elementSize;
+ assert(!vao->SharedAndImmutable);
assert(size <= 4);
elementSize = _mesa_bytes_per_vertex_attrib(size, type);
@@ -1097,6 +1101,7 @@ _mesa_enable_vertex_array_attrib(struct gl_context *ctx,
gl_vert_attrib attrib, bool flush_vertices)
{
assert(attrib < ARRAY_SIZE(vao->VertexAttrib));
+ assert(!vao->SharedAndImmutable);
if (!vao->VertexAttrib[attrib].Enabled) {
/* was disabled, now being enabled */
@@ -1186,6 +1191,7 @@ _mesa_disable_vertex_array_attrib(struct gl_context *ctx,
gl_vert_attrib attrib, bool flush_vertices)
{
assert(attrib < ARRAY_SIZE(vao->VertexAttrib));
+ assert(!vao->SharedAndImmutable);
if (vao->VertexAttrib[attrib].Enabled) {
/* was enabled, now being disabled */