diff options
author | Tom Stellard <[email protected]> | 2014-08-19 13:18:19 -0700 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2014-08-21 06:12:11 -0700 |
commit | 8109664dedee588dc98c9a7c25bd40c0eb56c35f (patch) | |
tree | 2f333ccd448f3384f47d5f34483622f3d53c2b82 | |
parent | 3ba225c1ab3682fcba33c8b4103afed22e3b3621 (diff) |
radeon: Add work-around for missing Hainan support in clang < 3.6 v2
v2:
- Add missing break.
https://bugs.freedesktop.org/show_bug.cgi?id=82709
CC: "10.2" <[email protected]>
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index a6bba8f0a94..dec80639d1d 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -499,7 +499,20 @@ static int r600_get_compute_param(struct pipe_screen *screen, //TODO: select these params by asic switch (param) { case PIPE_COMPUTE_CAP_IR_TARGET: { - const char *gpu = r600_get_llvm_processor_name(rscreen->family); + const char *gpu; + 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. + */ +#if HAVE_LLVM < 0x0306 + case CHIP_HAINAN: + gpu = "oland"; + break; +#endif + default: + gpu = r600_get_llvm_processor_name(rscreen->family); + break; + } if (ret) { sprintf(ret, "%s-r600--", gpu); } |