diff options
author | Marek Olšák <marek.olsak@amd.com> | 2019-11-01 23:55:58 -0400 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2019-11-05 23:28:45 -0500 |
commit | 442ef8c3e35e8e3e907ed2505344bcd745913b99 (patch) | |
tree | aa5a90d69065882528e0084ca313e3479a4feb52 /src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c | |
parent | abb8011f9d584bc4198d7475d279a6136a9b0403 (diff) |
radeonsi: keep serialized NIR instead of nir_shader in si_shader_selector
This decreases memory usage, because serialized NIR is more compact.
The main shader part is compiled from nir_shader.
Monolithic shader variants are compiled from nir_binary.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c index 91e9bd3dd68..cb965cc8eb3 100644 --- a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c +++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c @@ -1029,7 +1029,8 @@ void si_llvm_context_init(struct si_shader_context *ctx, /* Set the context to a certain TGSI shader. Can be called repeatedly * to change the shader. */ void si_llvm_context_set_ir(struct si_shader_context *ctx, - struct si_shader *shader) + struct si_shader *shader, + struct nir_shader *nir) { struct si_shader_selector *sel = shader->selector; const struct tgsi_shader_info *info = &sel->info; @@ -1058,7 +1059,7 @@ void si_llvm_context_set_ir(struct si_shader_context *ctx, ctx->num_samplers = util_last_bit(info->samplers_declared); ctx->num_images = util_last_bit(info->images_declared); - if (sel->nir) + if (nir) return; if (info->array_max[TGSI_FILE_TEMPORARY] > 0) { |