radeonsi: initialize the per-context compiler on demand
This takes a noticable amount of time in piglit and some tests don't need it. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
This commit is contained in:
parent
f671cc4d95
commit
4675cb2019
|
@ -939,6 +939,9 @@ static bool si_shader_select_prim_discard_cs(struct si_context *sctx,
|
||||||
sctx->cs_prim_discard_state.cso = sctx->vs_shader.cso;
|
sctx->cs_prim_discard_state.cso = sctx->vs_shader.cso;
|
||||||
sctx->cs_prim_discard_state.current = NULL;
|
sctx->cs_prim_discard_state.current = NULL;
|
||||||
|
|
||||||
|
if (!sctx->compiler.passes)
|
||||||
|
si_init_compiler(sctx->screen, &sctx->compiler);
|
||||||
|
|
||||||
struct si_compiler_ctx_state compiler_state;
|
struct si_compiler_ctx_state compiler_state;
|
||||||
compiler_state.compiler = &sctx->compiler;
|
compiler_state.compiler = &sctx->compiler;
|
||||||
compiler_state.debug = sctx->debug;
|
compiler_state.debug = sctx->debug;
|
||||||
|
|
|
@ -670,8 +670,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen,
|
||||||
sctx->scratch_waves = MAX2(32 * sscreen->info.num_good_compute_units,
|
sctx->scratch_waves = MAX2(32 * sscreen->info.num_good_compute_units,
|
||||||
max_threads_per_block / 64);
|
max_threads_per_block / 64);
|
||||||
|
|
||||||
si_init_compiler(sscreen, &sctx->compiler);
|
|
||||||
|
|
||||||
/* Bindless handles. */
|
/* Bindless handles. */
|
||||||
sctx->tex_handles = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
sctx->tex_handles = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
|
||||||
_mesa_key_pointer_equal);
|
_mesa_key_pointer_equal);
|
||||||
|
|
|
@ -3916,6 +3916,9 @@ bool si_update_shaders(struct si_context *sctx)
|
||||||
old_ps ? old_ps->key.part.ps.epilog.spi_shader_col_format : 0;
|
old_ps ? old_ps->key.part.ps.epilog.spi_shader_col_format : 0;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
if (!sctx->compiler.passes)
|
||||||
|
si_init_compiler(sctx->screen, &sctx->compiler);
|
||||||
|
|
||||||
compiler_state.compiler = &sctx->compiler;
|
compiler_state.compiler = &sctx->compiler;
|
||||||
compiler_state.debug = sctx->debug;
|
compiler_state.debug = sctx->debug;
|
||||||
compiler_state.is_debug_context = sctx->is_debug;
|
compiler_state.is_debug_context = sctx->is_debug;
|
||||||
|
|
Loading…
Reference in New Issue