mesa: Remove gl_array_attributes::Enabled.
authorMathias Fröhlich <mathias.froehlich@web.de>
Sat, 17 Nov 2018 06:13:11 +0000 (07:13 +0100)
committerMathias Fröhlich <mathias.froehlich@web.de>
Wed, 21 Nov 2018 05:27:19 +0000 (06:27 +0100)
Now that all users go via the VAO Enabled bitfield,
get rid of the Enabled boolean.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
src/mesa/main/arrayobj.c
src/mesa/main/mtypes.h
src/mesa/main/varray.c
src/mesa/vbo/vbo_save_api.c

index 5572ae550f8a8ed0224c1b752145c1fc29978ed5..4977009f6f5a962e66eecd32a407693718e0f1c9 100644 (file)
@@ -391,7 +391,6 @@ init_array(struct gl_context *ctx,
    array->Stride = 0;
    array->Ptr = NULL;
    array->RelativeOffset = 0;
-   array->Enabled = GL_FALSE;
    array->Normalized = GL_FALSE;
    array->Integer = GL_FALSE;
    array->Doubles = GL_FALSE;
@@ -642,9 +641,6 @@ _mesa_update_vao_derived_arrays(struct gl_context *ctx,
                attrib2->_EffBufferBindingIndex = bindex;
                attrib2->_EffRelativeOffset = attrib2->RelativeOffset;
                assert(attrib2->_EffRelativeOffset <= MaxRelativeOffset);
-
-               /* Only enabled arrays shall appear in the unique bindings */
-               assert(attrib2->Enabled);
             }
             /* Finally this is the set of effectively bound arrays with the
              * original binding offset.
@@ -720,9 +716,6 @@ _mesa_update_vao_derived_arrays(struct gl_context *ctx,
                attrib2->_EffRelativeOffset =
                   binding2->Offset + attrib2->RelativeOffset - min_offset;
                assert(attrib2->_EffRelativeOffset <= MaxRelativeOffset);
-
-               /* Only enabled arrays shall appear in the unique bindings */
-               assert(attrib2->Enabled);
             }
             /* Finally this is the set of effectively bound arrays */
             binding->_EffOffset = min_offset;
@@ -812,9 +805,6 @@ _mesa_update_vao_derived_arrays(struct gl_context *ctx,
             attrib2->_EffBufferBindingIndex = bindex;
             attrib2->_EffRelativeOffset = attrib2->Ptr - ptr;
             assert(attrib2->_EffRelativeOffset <= binding->Stride);
-
-            /* Only enabled arrays shall appear in the unique bindings */
-            assert(attrib2->Enabled);
          }
          /* Finally this is the set of effectively bound arrays */
          binding->_EffOffset = (GLintptr)ptr;
@@ -883,8 +873,6 @@ _mesa_all_varyings_in_vbos(const struct gl_vertex_array_object *vao)
       const struct gl_vertex_buffer_binding *buffer_binding =
          &vao->BufferBinding[attrib_array->BufferBindingIndex];
 
-      /* Only enabled arrays shall appear in the Enabled bitmask */
-      assert(attrib_array->Enabled);
       /* We have already masked out vao->VertexAttribBufferMask  */
       assert(!_mesa_is_bufferobj(buffer_binding->BufferObj));
 
@@ -914,8 +902,6 @@ _mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao)
       const struct gl_vertex_buffer_binding *buffer_binding =
          &vao->BufferBinding[attrib_array->BufferBindingIndex];
 
-      /* Only enabled arrays shall appear in the Enabled bitmask */
-      assert(attrib_array->Enabled);
       /* We have already masked with vao->VertexAttribBufferMask  */
       assert(_mesa_is_bufferobj(buffer_binding->BufferObj));
 
index 9d79957afaa03077ffa67cff9c80a36197ddfccb..da6a2616881d1348cad36058f03ad471073f3e82 100644 (file)
@@ -1422,7 +1422,6 @@ struct gl_array_attributes
    GLshort Stride;          /**< Stride as specified with gl*Pointer() */
    GLenum16 Type;           /**< Datatype: GL_FLOAT, GL_INT, etc */
    GLenum16 Format;         /**< Default: GL_RGBA, but may be GL_BGRA */
-   GLboolean Enabled;       /**< Whether the array is enabled */
    GLubyte Size;            /**< Components per element (1,2,3,4) */
    unsigned Normalized:1;   /**< Fixed-point values are normalized when converted to floats */
    unsigned Integer:1;      /**< Fixed-point values are not converted to floats */
index e8969eb954a627695bb76983142ea56c8e374fa8..bcaa4956478eddd30466a5ac9f6c73a5c3e3fcb9 100644 (file)
@@ -1078,10 +1078,9 @@ _mesa_enable_vertex_array_attrib(struct gl_context *ctx,
    assert(attrib < ARRAY_SIZE(vao->VertexAttrib));
    assert(!vao->SharedAndImmutable);
 
-   if (!vao->VertexAttrib[attrib].Enabled) {
+   const GLbitfield array_bit = VERT_BIT(attrib);
+   if ((vao->Enabled & array_bit) == 0) {
       /* was disabled, now being enabled */
-      vao->VertexAttrib[attrib].Enabled = GL_TRUE;
-      const GLbitfield array_bit = VERT_BIT(attrib);
       vao->Enabled |= array_bit;
       vao->NewArrays |= array_bit;
 
@@ -1165,10 +1164,9 @@ _mesa_disable_vertex_array_attrib(struct gl_context *ctx,
    assert(attrib < ARRAY_SIZE(vao->VertexAttrib));
    assert(!vao->SharedAndImmutable);
 
-   if (vao->VertexAttrib[attrib].Enabled) {
+   const GLbitfield array_bit = VERT_BIT(attrib);
+   if (vao->Enabled & array_bit) {
       /* was enabled, now being disabled */
-      vao->VertexAttrib[attrib].Enabled = GL_FALSE;
-      const GLbitfield array_bit = VERT_BIT(attrib);
       vao->Enabled &= ~array_bit;
       vao->NewArrays |= array_bit;
 
@@ -2781,7 +2779,6 @@ _mesa_copy_vertex_attrib_array(struct gl_context *ctx,
    dst->Doubles        = src->Doubles;
    dst->Normalized     = src->Normalized;
    dst->Ptr            = src->Ptr;
-   dst->Enabled        = src->Enabled;
    dst->_ElementSize   = src->_ElementSize;
    dst->_EffBufferBindingIndex = src->_EffBufferBindingIndex;
    dst->_EffRelativeOffset = src->_EffRelativeOffset;
index 97796aea53f4109066744d4f3f71b477e9292b89..a085729389f70d0f1666ba724330922771170fc5 100644 (file)
@@ -455,7 +455,6 @@ compare_vao(gl_vertex_processing_mode mode,
       if (attrib->Size != size[vbo_attr])
          return false;
       assert(attrib->Format == GL_RGBA);
-      assert(attrib->Enabled == GL_TRUE);
       assert(attrib->Normalized == GL_FALSE);
       assert(attrib->Integer == vbo_attrtype_to_integer_flag(tp));
       assert(attrib->Doubles == vbo_attrtype_to_double_flag(tp));
@@ -517,7 +516,6 @@ update_vao(struct gl_context *ctx,
       _mesa_vertex_attrib_binding(ctx, *vao, vao_attr, 0);
       _mesa_enable_vertex_array_attrib(ctx, *vao, vao_attr);
    }
-   assert(vao_enabled == (*vao)->Enabled);
    assert((vao_enabled & ~(*vao)->VertexAttribBufferMask) == 0);
 
    /* Finalize and freeze the VAO */