#define AMDGPU_RAVEN_RANGE 0x01, 0x81
#define AMDGPU_RAVEN2_RANGE 0x81, 0xFF
-#define AMDGPU_NAVI10_RANGE 0x01, 0xFF
+#define AMDGPU_NAVI10_RANGE 0x01, 0x0A
+#define AMDGPU_NAVI12_RANGE 0x0A, 0x14
+#define AMDGPU_NAVI14_RANGE 0x14, 0x28
#define AMDGPU_EXPAND_FIX(x) x
#define AMDGPU_RANGE_HELPER(val, min, max) ((val >= min) && (val < max))
#define ASICREV_IS_RAVEN2(r) ASICREV_IS(r, RAVEN2)
#define ASICREV_IS_NAVI10_P(r) ASICREV_IS(r, NAVI10)
+#define ASICREV_IS_NAVI12(r) ASICREV_IS(r, NAVI12)
+#define ASICREV_IS_NAVI14(r) ASICREV_IS(r, NAVI14)
#endif // _AMDGPU_ASIC_ADDR_H
info->name = "RAVEN2";
}
- if (info->family >= CHIP_VEGA10)
+ if (info->family >= CHIP_NAVI10)
+ info->chip_class = GFX10;
+ else if (info->family >= CHIP_VEGA10)
info->chip_class = GFX9;
else if (info->family >= CHIP_TONGA)
info->chip_class = GFX8;
fprintf(stderr, "amdgpu: clock crystal frequency is 0, timestamps will be wrong\n");
info->clock_crystal_freq = 1;
}
- info->tcc_cache_line_size = 64; /* TC L2 line size on GCN */
+ if (info->chip_class >= GFX10) {
+ info->tcc_cache_line_size = 128;
+ } else {
+ info->tcc_cache_line_size = 64;
+ }
info->gb_addr_config = amdinfo->gb_addr_cfg;
if (info->chip_class == GFX9) {
info->num_tile_pipes = 1 << G_0098F8_NUM_PIPES(amdinfo->gb_addr_cfg);
return "gfx906";
case CHIP_RAVEN2:
return HAVE_LLVM >= 0x0800 ? "gfx909" : "gfx902";
+ case CHIP_NAVI10:
+ return "gfx1010";
+ case CHIP_NAVI12:
+ return "gfx1011";
+ case CHIP_NAVI14:
+ return "gfx1012";
default:
return "";
}
LLVMTargetRef target = ac_get_llvm_target(triple);
snprintf(features, sizeof(features),
- "+DumpCode,-fp32-denormals,+fp64-denormals%s%s%s%s%s%s",
+ "+DumpCode,-fp32-denormals,+fp64-denormals%s%s%s%s%s%s%s",
HAVE_LLVM >= 0x0800 ? "" : ",+vgpr-spilling",
+ family >= CHIP_NAVI10 ? ",+wavefrontsize64,-wavefrontsize32" : "",
tm_options & AC_TM_SISCHED ? ",+si-scheduler" : "",
tm_options & AC_TM_FORCE_ENABLE_XNACK ? ",+xnack" : "",
tm_options & AC_TM_FORCE_DISABLE_XNACK ? ",-xnack" : "",
CHIP_VEGA20,
CHIP_RAVEN,
CHIP_RAVEN2,
+ CHIP_NAVI10,
+ CHIP_NAVI12,
+ CHIP_NAVI14,
CHIP_LAST,
};
GFX7,
GFX8,
GFX9,
+ GFX10,
};
#endif
ws->info.family = i;
ws->info.name = "GCN-NOOP";
- if (i >= CHIP_VEGA10)
+ if (i >= CHIP_NAVI10)
+ ws->info.chip_class = GFX10;
+ else if (i >= CHIP_VEGA10)
ws->info.chip_class = GFX9;
else if (i >= CHIP_TONGA)
ws->info.chip_class = GFX8;