On 09/22/2013 12:56 PM, Eric Anholt wrote: > Since it's only used for debug information, we can misalign the struct and > save the disk space. Another 19k on a 64-bit build. > > v2: Make a compiler.h macro to only use the attribute if we know we can. > --- > src/mapi/glapi/gen/gl_enums.py | 6 ++++-- > src/mesa/main/compiler.h | 9 +++++++++ > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/src/mapi/glapi/gen/gl_enums.py b/src/mapi/glapi/gen/gl_enums.py > index e1ab600..a0c47f4 100644 > --- a/src/mapi/glapi/gen/gl_enums.py > +++ b/src/mapi/glapi/gen/gl_enums.py > @@ -47,8 +47,8 @@ class PrintGlEnums(gl_XML.gl_print_base): > print '#include "main/imports.h"' > print '#include "main/mtypes.h"' > print '' > - print 'typedef struct {' > - print ' size_t offset;' > + print 'typedef struct PACKED {' > + print ' uint16_t offset;' > print ' int n;' > print '} enum_elt;' > print '' > @@ -78,6 +78,8 @@ static char token_tmp[20]; > > const char *_mesa_lookup_enum_by_nr( int nr ) > { > + STATIC_ASSERT(sizeof(enum_string_table) < (1 << 16)); > + > enum_elt *elt = _mesa_bsearch(& nr, enum_string_table_offsets, > Elements(enum_string_table_offsets), > sizeof(enum_string_table_offsets[0]), > diff --git a/src/mesa/main/compiler.h b/src/mesa/main/compiler.h > index fb7baf8..0f27d5a 100644 > --- a/src/mesa/main/compiler.h > +++ b/src/mesa/main/compiler.h > @@ -270,6 +270,15 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) > #define NULL 0 > #endif > > +/* Used to optionally mark structures with misaligned elements or size as > + * packed, to trade off performance for space. > + */ > +#if (__GNUC__ >= 3) > +#define PACKED __attribute__((__packed__)) > +#else > +#define PACKED > +#endif > + > > /** > * LONGSTRING macro >
Looks good to me! Patches 1, 3v2, 4v2, 5, 6 are: Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> Patch 2 looks good as well, but I haven't looked closely enough, so for now it just gets a: Acked-by: Kenneth Graunke <kenn...@whitecape.org> I don't know enough about patch 7 to respond. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev