[Mesa-dev] [PATCH 00/10] Remove pading and cleanup the VAO.

Mathias.Froehlich at gmx.net Mathias.Froehlich at gmx.net
Sat Nov 17 12:14:48 UTC 2018


From: Mathias Fröhlich <Mathias.Froehlich at gmx.net>

Hi Brian,

The present series takes again care of the struct layout of the VAO.
My last spring changes here destroyed the past attempt to get a minimum size
struct layout on these structs. And with this series the property is again
established. A struct gl_vertex_attributes instance has no pading bits anymore.
The change also factors out a new struct gl_vertex_format from the vertex
array objects member struct struct gl_vertex_attributes. At this series
struct gl_vertex_format is only introduced and packed for the tight struct
alignment, but can be used in many more places where we currently open code
this set of data.
The series also removes redundant storage for the enabled arrays and
makes use of the more concise representation of this boolean flag.

The series went through intels CI system without failures.

Please review

Thanks in advance and best

Mathias



Mathias Fröhlich (10):
  mesa: Rename gl_vertex_array_object::_Enabled -> Enabled.
  mesa: Use the gl_vertex_array_object::Enabled bitfield.
  mesa: Use gl_vertex_array_object::Enabled for glGet.
  mesa: Remove gl_array_attributes::Enabled.
  mesa: Work with bitmasks when en/dis-abling VAO arrays.
  mesa: Unify glEdgeFlagPointer data type.
  nouveau: Use gl_array_attribute::_ElementSize.
  tnl: Use gl_array_attribute::_ElementSize.
  mesa: Factor out struct gl_vertex_format.
  mesa: Remove unneeded bitfield widths from the VAO.

 src/mesa/drivers/dri/i965/brw_context.h       |   2 +-
 src/mesa/drivers/dri/i965/brw_draw.c          |  14 +-
 src/mesa/drivers/dri/i965/brw_draw_upload.c   |  60 +++++----
 src/mesa/drivers/dri/i965/genX_state_upload.c |  14 +-
 src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c  |  10 +-
 src/mesa/main/api_arrayelt.c                  |  62 ++++-----
 src/mesa/main/arrayobj.c                      |  55 +++-----
 src/mesa/main/arrayobj.h                      |   4 +-
 src/mesa/main/attrib.c                        |   4 +-
 src/mesa/main/draw.c                          |  31 +++--
 src/mesa/main/draw_validate.c                 |   2 +-
 src/mesa/main/enable.c                        |  21 ++-
 src/mesa/main/get.c                           |  42 +++++-
 src/mesa/main/get_hash_params.py              |  38 +++---
 src/mesa/main/mtypes.h                        |  34 +++--
 src/mesa/main/varray.c                        | 126 +++++++++---------
 src/mesa/main/varray.h                        |  42 +++++-
 src/mesa/state_tracker/st_atom.h              |   2 +-
 src/mesa/state_tracker/st_atom_array.c        |  28 ++--
 src/mesa/state_tracker/st_draw_feedback.c     |   2 +-
 src/mesa/tnl/t_draw.c                         |  22 +--
 src/mesa/tnl/t_split_copy.c                   |  25 +---
 src/mesa/vbo/vbo_context.c                    |   5 +-
 src/mesa/vbo/vbo_exec_api.c                   |  13 +-
 src/mesa/vbo/vbo_exec_draw.c                  |  15 +--
 src/mesa/vbo/vbo_private.h                    |  12 +-
 src/mesa/vbo/vbo_save_api.c                   |  19 ++-
 src/mesa/vbo/vbo_save_draw.c                  |  16 +--
 src/mesa/vbo/vbo_save_loopback.c              |  10 +-
 29 files changed, 389 insertions(+), 341 deletions(-)

-- 
2.17.2



More information about the mesa-dev mailing list