nir: use gc_ctx for nir_variable to reduce ralloc/malloc overhead
gc_ctx uses a slab allocator. This reduces GLSL compile times by 1-3% with the gallium noop driver. This reduces the number of ralloc_size calls for Heaven shaders by 14.3%. Note that gc_ctx also uses ralloc_size, so the reduction is a net change. Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36538>
This commit is contained in:
@@ -271,7 +271,7 @@ nir_shader_add_variable(nir_shader *shader, nir_variable *var)
|
||||
nir_variable *
|
||||
nir_variable_create_zeroed(nir_shader *nir)
|
||||
{
|
||||
return rzalloc(nir, nir_variable);
|
||||
return gc_zalloc_size(nir->gctx, sizeof(nir_variable), 8);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -54,7 +54,7 @@ sweep_constant(nir_shader *nir, nir_constant *c)
|
||||
static void
|
||||
sweep_variable(nir_shader *nir, nir_variable *var)
|
||||
{
|
||||
ralloc_steal(nir, var);
|
||||
gc_mark_live(nir->gctx, var);
|
||||
nir_variable_steal_name(nir, var, var);
|
||||
ralloc_steal(nir, var->max_ifc_array_access);
|
||||
ralloc_steal(nir, var->state_slots);
|
||||
|
||||
Reference in New Issue
Block a user