diff options
author | Michel Dänzer <[email protected]> | 2015-03-26 11:32:59 +0900 |
---|---|---|
committer | Michel Dänzer <[email protected]> | 2015-03-30 15:15:10 +0900 |
commit | d64adc3a79e419062432cfa8d1cbc437676a3fbd (patch) | |
tree | 84eb20f0b67faff3a7e3d04aa36c87ec912cfcf0 /src/gallium/drivers/radeonsi/si_shader.h | |
parent | ce83a6ec8142894531cfad8cd677cd3dc47eced7 (diff) |
radeonsi: Cache LLVMTargetMachineRef in context instead of in screen
Fixes a crash in genymotion with several threads compiling shaders
concurrently.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89746
Cc: 10.5 <[email protected]>
Reviewed-by: Tom Stellard <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_shader.h')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index 5b602ac3428..51055afe36a 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -183,9 +183,10 @@ static inline struct si_shader* si_get_vs_state(struct si_context *sctx) } /* radeonsi_shader.c */ -int si_shader_create(struct si_screen *sscreen, struct si_shader *shader); +int si_shader_create(struct si_screen *sscreen, LLVMTargetMachineRef tm, + struct si_shader *shader); int si_compile_llvm(struct si_screen *sscreen, struct si_shader *shader, - LLVMModuleRef mod); + LLVMTargetMachineRef tm, LLVMModuleRef mod); void si_shader_destroy(struct pipe_context *ctx, struct si_shader *shader); unsigned si_shader_io_get_unique_index(unsigned semantic_name, unsigned index); int si_shader_binary_read(struct si_screen *sscreen, struct si_shader *shader, |