diff options
Diffstat (limited to 'src/gallium/drivers/radeonsi')
-rw-r--r-- | src/gallium/drivers/radeonsi/radeonsi_pipe.c | 11 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/radeonsi_pipe.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/radeonsi_shader.c | 4 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.c b/src/gallium/drivers/radeonsi/radeonsi_pipe.c index 17d825b1d42..ce6fabba65c 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_pipe.c +++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.c @@ -274,6 +274,17 @@ static const char* r600_get_vendor(struct pipe_screen* pscreen) return "X.Org"; } +const char *r600_get_llvm_processor_name(enum radeon_family family) +{ + switch (family) { + case CHIP_TAHITI: return "tahiti"; + case CHIP_PITCAIRN: return "pitcairn"; + case CHIP_VERDE: return "verde"; + case CHIP_OLAND: return "oland"; + default: return ""; + } +} + static const char *r600_get_family_name(enum radeon_family family) { switch(family) { diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.h b/src/gallium/drivers/radeonsi/radeonsi_pipe.h index 40a5c8c3d90..496741f3726 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_pipe.h +++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.h @@ -218,6 +218,7 @@ void r600_upload_index_buffer(struct r600_context *rctx, /* r600_pipe.c */ void radeonsi_flush(struct pipe_context *ctx, struct pipe_fence_handle **fence, unsigned flags); +const char *r600_get_llvm_processor_name(enum radeon_family family); /* r600_query.c */ void r600_init_query_functions(struct r600_context *rctx); diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c index 5fdf46e7358..0db4555d59a 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_shader.c +++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c @@ -1165,7 +1165,9 @@ int si_pipe_shader_create( if (dump) { LLVMDumpModule(mod); } - radeon_llvm_compile(mod, &inst_bytes, &inst_byte_count, "SI", dump); + radeon_llvm_compile(mod, &inst_bytes, &inst_byte_count, + r600_get_llvm_processor_name(rctx->screen->family) + , dump); if (dump) { fprintf(stderr, "SI CODE:\n"); for (i = 0; i < inst_byte_count; i+=4 ) { |