mesa: shrink size of gl_array_attributes (v2)
authorBrian Paul <brianp@vmware.com>
Mon, 29 Jan 2018 21:09:54 +0000 (14:09 -0700)
committerBrian Paul <brianp@vmware.com>
Tue, 30 Jan 2018 04:16:50 +0000 (21:16 -0700)
commitd5f42f96e16f4b1242e51fb9eec6f608b221a1c4
tree09928889e4ae6e7bea279df1e0816caa57c9e349
parent79cafa0df342f9fdc142ad2ed7d910044f5f4c4f
mesa: shrink size of gl_array_attributes (v2)

Inspired by Marek's earlier patch, but even smaller.  Sort fields from
largest to smallest.  Use bitfields for more fields (sometimes with an
extra bit for MSVC).  Reduce Stride field to GLshort.

Note that some fields cannot be bitfields because they're accessed via
pointers (such as for glEnableClientState(GL_VERTEX_ARRAY) to set the
Enabled field).

Reduces size from 48 to 24 bytes.
Also reduces size of gl_vertex_array_object from 3632 to 2864 bytes.

And add some assertions in init_array().

v2: use s/GLuint/unsigned/, improve commit comments.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/arrayobj.c
src/mesa/main/mtypes.h