glsl: add param to force shader recompile

This will be used to skip checking the cache and force a recompile.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
Timothy Arceri
2016-11-22 16:56:21 +11:00
committed by Timothy Arceri
parent 4026b45bbc
commit 0bf21519b7
4 changed files with 5 additions and 4 deletions

View File

@@ -1911,7 +1911,7 @@ do_late_parsing_checks(struct _mesa_glsl_parse_state *state)
void void
_mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader, _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
bool dump_ast, bool dump_hir) bool dump_ast, bool dump_hir, bool force_recompile)
{ {
struct _mesa_glsl_parse_state *state = struct _mesa_glsl_parse_state *state =
new(shader) _mesa_glsl_parse_state(ctx, shader->Stage, shader); new(shader) _mesa_glsl_parse_state(ctx, shader->Stage, shader);

View File

@@ -33,7 +33,7 @@ struct gl_shader_program;
extern void extern void
_mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader, _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
bool dump_ast, bool dump_hir); bool dump_ast, bool dump_hir, bool force_recompile);
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */

View File

@@ -381,7 +381,8 @@ compile_shader(struct gl_context *ctx, struct gl_shader *shader)
struct _mesa_glsl_parse_state *state = struct _mesa_glsl_parse_state *state =
new(shader) _mesa_glsl_parse_state(ctx, shader->Stage, shader); new(shader) _mesa_glsl_parse_state(ctx, shader->Stage, shader);
_mesa_glsl_compile_shader(ctx, shader, options->dump_ast, options->dump_hir); _mesa_glsl_compile_shader(ctx, shader, options->dump_ast,
options->dump_hir, true);
/* Print out the resulting IR */ /* Print out the resulting IR */
if (!state->error && options->dump_lir) { if (!state->error && options->dump_lir) {

View File

@@ -1036,7 +1036,7 @@ _mesa_compile_shader(struct gl_context *ctx, struct gl_shader *sh)
/* this call will set the shader->CompileStatus field to indicate if /* this call will set the shader->CompileStatus field to indicate if
* compilation was successful. * compilation was successful.
*/ */
_mesa_glsl_compile_shader(ctx, sh, false, false); _mesa_glsl_compile_shader(ctx, sh, false, false, false);
if (ctx->_Shader->Flags & GLSL_LOG) { if (ctx->_Shader->Flags & GLSL_LOG) {
_mesa_write_shader_to_file(sh); _mesa_write_shader_to_file(sh);