st/mesa: don't load cached TGSI shaders on demand

This fixes a performance issue with the shader cache that delayed Gallium
shader create calls until draw calls.

I'd like this in stable, but it's not a showstopper.

Cc: 17.1 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Marek Olšák 2017-05-31 13:07:04 +02:00
parent bb0452442a
commit 2ec50f98a9
1 changed files with 6 additions and 1 deletions

View File

@ -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.