On Sun, Mar 26, 2017 at 8:14 PM, Timothy Arceri <[email protected]> wrote: > Due to a max limit of 65,536 entries on the index table that we use to > decide if we can skip compiling individual shaders, it is very likely > we will have collisions. > > To avoid doing too much work when the linked program may be in the > cache this patch delays calling the optimisations until link time. > > Improves cold cache start-up times on Deus Ex by ~20 seconds. > > When deleting the cache index to simulate a worst case scenario > of colisions in the index, warm cache start-up time improve by > ~45 seconds. > --- > src/compiler/glsl/glsl_parser_extras.cpp | 169 > +++++++++++++++++-------------- > src/compiler/glsl/shader_cache.cpp | 2 +- > src/mesa/main/mtypes.h | 3 +- > 3 files changed, 98 insertions(+), 76 deletions(-) > > diff --git a/src/compiler/glsl/glsl_parser_extras.cpp > b/src/compiler/glsl/glsl_parser_extras.cpp > index 8b5df3b..7fc35df 100644 > --- a/src/compiler/glsl/glsl_parser_extras.cpp > +++ b/src/compiler/glsl/glsl_parser_extras.cpp > @@ -1914,20 +1914,101 @@ static void > do_late_parsing_checks(struct _mesa_glsl_parse_state *state) > { > if (state->stage == MESA_SHADER_COMPUTE && !state->has_compute_shader()) { > YYLTYPE loc; > memset(&loc, 0, sizeof(loc)); > _mesa_glsl_error(&loc, state, "Compute shaders require " > "GLSL 4.30 or GLSL ES 3.10"); > } > } > > +static void > +opt_shader_and_create_symbol_table(struct gl_context *ctx, > + struct gl_shader *shader)
Indentation is bad on the line (tabs?) _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
