diff options
Diffstat (limited to 'src/compiler/spirv/spirv_to_nir.c')
-rw-r--r-- | src/compiler/spirv/spirv_to_nir.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index b36772caad1..353d99cc613 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -3351,7 +3351,7 @@ spirv_to_nir(const uint32_t *words, size_t word_count, return NULL; } - b->shader = nir_shader_create(NULL, stage, nir_options, NULL); + b->shader = nir_shader_create(b, stage, nir_options, NULL); /* Set shader info defaults */ b->shader->info.gs.invocations = 1; @@ -3390,6 +3390,9 @@ spirv_to_nir(const uint32_t *words, size_t word_count, nir_function *entry_point = b->entry_point->func->impl->function; assert(entry_point); + /* Unparent the shader from the vtn_builder before we delete the builder */ + ralloc_steal(NULL, b->shader); + ralloc_free(b); return entry_point; |