diff options
Diffstat (limited to 'src/gallium/drivers/radeon/r600_pipe_common.c')
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index d4133d8cbad..d46b3b38f86 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -499,6 +499,12 @@ static int r600_get_compute_param(struct pipe_screen *screen, switch (param) { case PIPE_COMPUTE_CAP_IR_TARGET: { const char *gpu; + const char *triple; + if (rscreen->family <= CHIP_ARUBA || HAVE_LLVM < 0x0306) { + triple = "r600--"; + } else { + triple = "amdgcn--"; + } switch(rscreen->family) { /* Clang < 3.6 is missing Hainan in its list of * GPUs, so we need to use the name of a similar GPU. @@ -513,9 +519,10 @@ static int r600_get_compute_param(struct pipe_screen *screen, break; } if (ret) { - sprintf(ret, "%s-r600--", gpu); + sprintf(ret, "%s-%s", gpu, triple); + } - return (8 + strlen(gpu)) * sizeof(char); + return (strlen(triple) + strlen(gpu)) * sizeof(char); } case PIPE_COMPUTE_CAP_GRID_DIMENSION: if (ret) { |