aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r--src/mesa/state_tracker/st_shader_cache.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_shader_cache.c b/src/mesa/state_tracker/st_shader_cache.c
index 31c3430aa4a..305435ff5bb 100644
--- a/src/mesa/state_tracker/st_shader_cache.c
+++ b/src/mesa/state_tracker/st_shader_cache.c
@@ -22,7 +22,7 @@
*/
#include <stdio.h>
-
+#include "st_debug.h"
#include "st_program.h"
#include "st_shader_cache.h"
#include "compiler/glsl/program.h"
@@ -367,6 +367,11 @@ st_load_tgsi_from_disk_cache(struct gl_context *ctx,
_mesa_associate_uniform_storage(ctx, prog, glprog->Parameters,
false);
+ /* Create Gallium shaders now instead of on demand. */
+ if (ST_DEBUG & DEBUG_PRECOMPILE ||
+ st->shader_has_one_variant[glprog->info.stage])
+ st_precompile_shader_variant(st, glprog);
+
free(buffer);
} else {
/* Failed to find a matching cached shader so fallback to recompile.