radeonsi: move si_shader_binary_upload out of si_compile_llvm
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
f20a76a4fd
commit
54ed83669e
|
@ -124,6 +124,7 @@ static void *si_create_compute_state(
|
|||
code, header->num_bytes);
|
||||
si_compile_llvm(sctx->screen, &program->kernels[i], sctx->tm,
|
||||
mod, &sctx->b.debug, TGSI_PROCESSOR_COMPUTE);
|
||||
si_shader_binary_upload(sctx->screen, &program->kernels[i]);
|
||||
LLVMDisposeModule(mod);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3902,10 +3902,6 @@ int si_compile_llvm(struct si_screen *sscreen, struct si_shader *shader,
|
|||
si_shader_binary_read(sscreen, &shader->binary, &shader->config,
|
||||
debug, processor);
|
||||
|
||||
r = si_shader_binary_upload(sscreen, shader);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
FREE(shader->binary.config);
|
||||
FREE(shader->binary.global_symbol_offsets);
|
||||
shader->binary.config = NULL;
|
||||
|
@ -3986,6 +3982,8 @@ static int si_generate_gs_copy_shader(struct si_screen *sscreen,
|
|||
r = si_compile_llvm(sscreen, si_shader_ctx->shader,
|
||||
si_shader_ctx->tm, bld_base->base.gallivm->module,
|
||||
debug, TGSI_PROCESSOR_GEOMETRY);
|
||||
if (!r)
|
||||
r = si_shader_binary_upload(sscreen, si_shader_ctx->shader);
|
||||
|
||||
radeon_llvm_dispose(&si_shader_ctx->radeon_bld);
|
||||
|
||||
|
@ -4186,6 +4184,12 @@ int si_shader_create(struct si_screen *sscreen, LLVMTargetMachineRef tm,
|
|||
goto out;
|
||||
}
|
||||
|
||||
r = si_shader_binary_upload(sscreen, shader);
|
||||
if (r) {
|
||||
fprintf(stderr, "LLVM failed to upload shader\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
radeon_llvm_dispose(&si_shader_ctx.radeon_bld);
|
||||
|
||||
if (si_shader_ctx.type == TGSI_PROCESSOR_GEOMETRY) {
|
||||
|
|
Loading…
Reference in New Issue