On 8 October 2015 at 18:57, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Thu, Oct 8, 2015 at 1:52 PM, Emil Velikov <emil.l.veli...@gmail.com> wrote: >> On 8 October 2015 at 18:08, Ilia Mirkin <imir...@alum.mit.edu> wrote: >>> On Thu, Oct 8, 2015 at 1:09 PM, Emil Velikov <emil.l.veli...@gmail.com> >>> wrote: >>>> This is a trivial enough function that can live in the header. While >>>> we're here, add a STATIC_ASSERT for good measure. >>>> >>>> Signed-off-by: Emil Velikov <emil.veli...@collabora.com> >>>> --- >>>> src/glsl/shader_enums.c | 13 ------------- >>>> src/glsl/shader_enums.h | 23 +++++++++++++++++++++-- >>>> 2 files changed, 21 insertions(+), 15 deletions(-) >>>> >>>> diff --git a/src/glsl/shader_enums.c b/src/glsl/shader_enums.c >>>> index c196b79..b3da3e9 100644 >>>> --- a/src/glsl/shader_enums.c >>>> +++ b/src/glsl/shader_enums.c >>>> @@ -32,19 +32,6 @@ >>>> #define ENUM(x) [x] = #x >>>> #define NAME(val) ((((val) < ARRAY_SIZE(names)) && names[(val)]) ? >>>> names[(val)] : "UNKNOWN") >>>> >>>> -const char * gl_shader_stage_name(gl_shader_stage stage) >>>> -{ >>>> - static const char *names[] = { >>>> - ENUM(MESA_SHADER_VERTEX), >>>> - ENUM(MESA_SHADER_TESS_CTRL), >>>> - ENUM(MESA_SHADER_TESS_EVAL), >>>> - ENUM(MESA_SHADER_GEOMETRY), >>>> - ENUM(MESA_SHADER_FRAGMENT), >>>> - ENUM(MESA_SHADER_COMPUTE), >>>> - }; >>>> - return NAME(stage); >>>> -} >>>> - >>>> const char * gl_vert_attrib_name(gl_vert_attrib attrib) >>>> { >>>> static const char *names[] = { >>>> diff --git a/src/glsl/shader_enums.h b/src/glsl/shader_enums.h >>>> index 2a5d2c5..fbd2744 100644 >>>> --- a/src/glsl/shader_enums.h >>>> +++ b/src/glsl/shader_enums.h >>>> @@ -43,10 +43,27 @@ typedef enum >>>> MESA_SHADER_COMPUTE = 5, >>>> } gl_shader_stage; >>>> >>>> -const char * gl_shader_stage_name(gl_shader_stage stage); >>>> - >>>> #define MESA_SHADER_STAGES (MESA_SHADER_COMPUTE + 1) >>>> >>>> +#define ENUM(x) [x] = #x >>>> + >>>> +static const char *gl_shader_stage_names[] = { >>>> + ENUM(MESA_SHADER_VERTEX), >>>> + ENUM(MESA_SHADER_TESS_CTRL), >>>> + ENUM(MESA_SHADER_TESS_EVAL), >>>> + ENUM(MESA_SHADER_GEOMETRY), >>>> + ENUM(MESA_SHADER_FRAGMENT), >>>> + ENUM(MESA_SHADER_COMPUTE), >>>> +}; >>> >>> Won't this bloat the binary by including this in every object file? I >>> don't know that the array will get merged. (The strings will though.) >>> Normally these things live in c files so that they're stored in only >>> one object. >>> >> The linker (with its garbage collector) will sort it out for us. Seems >> like we do get a small increase from the series >> >> text data bss dec hex filename >> 5103374 204048 27648 5335070 51681e i965_dri.so.after >> 5104590 204208 27648 5336446 516d7e i965_dri.so.before >> >> Namely - we gain ~1.2k of text. Which imho doesn't sound that bad ? > > In exchange for what? From what I can tell... nothing. The array > definition needs to live in a c file. You can move the function to > look up from it into a header, that's fine.
Nasty bug in(?) autohell [1]. If you're happy to dive in the auto* boat and fix it, I would gladly purge this series :-) Emil [1] http://lists.freedesktop.org/archives/mesa-dev/2015-October/096499.html _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev