#define FAMILY_AI 0x8D
#define FAMILY_RV 0x8E
#define FAMILY_NV 0x8F
+#define FAMILY_VGH 0x90
// AMDGPU_FAMILY_IS(familyId, familyName)
#define FAMILY_IS(f, fn) (f == FAMILY_##fn)
#define AMDGPU_NAVY_FLOUNDER_RANGE 0x32, 0x3C
#define AMDGPU_DIMGREY_CAVEFISH_RANGE 0x3C, 0x46
+#define AMDGPU_VANGOGH_RANGE 0x01, 0xFF
+
#define AMDGPU_EXPAND_FIX(x) x
#define AMDGPU_RANGE_HELPER(val, min, max) ((val >= min) && (val < max))
#define AMDGPU_IN_RANGE(val, ...) AMDGPU_EXPAND_FIX(AMDGPU_RANGE_HELPER(val, __VA_ARGS__))
#define ASICREV_IS_NAVY_FLOUNDER(r) ASICREV_IS(r, NAVY_FLOUNDER)
#define ASICREV_IS_DIMGREY_CAVEFISH(r) ASICREV_IS(r, DIMGREY_CAVEFISH)
+#define ASICREV_IS_VANGOGH(r) ASICREV_IS(r, VANGOGH)
+
#endif // _AMDGPU_ASIC_ADDR_H
case FAMILY_NV:
pLib = Gfx10HwlInit(&client);
break;
+ case FAMILY_VGH:
+ pLib = Gfx10HwlInit(&client);
+ break;
default:
ADDR_ASSERT_ALWAYS();
break;
m_settings.dccUnsup3DSwDis = 0;
}
break;
+
+ case FAMILY_VGH:
+ m_settings.isDcn2 = 1;
+
+ if (ASICREV_IS_VANGOGH(chipRevision))
+ {
+ m_settings.supportRbPlus = 1;
+ m_settings.dccUnsup3DSwDis = 0;
+ }
+ break;
+
default:
ADDR_ASSERT(!"Unknown chip family");
break;
identify_chip(NAVY_FLOUNDER);
identify_chip(DIMGREY_CAVEFISH);
break;
+ case FAMILY_VGH:
+ identify_chip(VANGOGH);
+ break;
}
if (!info->name) {
case CHIP_NAVI14:
pc_lines = 512;
break;
+ case CHIP_VANGOGH:
+ pc_lines = 256;
+ break;
case CHIP_ARCTURUS:
break;
default:
CHIP_SIENNA_CICHLID,
CHIP_NAVY_FLOUNDER,
CHIP_DIMGREY_CAVEFISH,
+ CHIP_VANGOGH,
CHIP_LAST,
};
case CHIP_SIENNA_CICHLID:
case CHIP_NAVY_FLOUNDER:
case CHIP_DIMGREY_CAVEFISH:
+ case CHIP_VANGOGH:
return "gfx1030";
default:
return "";
case CHIP_SIENNA_CICHLID:
case CHIP_NAVY_FLOUNDER:
case CHIP_DIMGREY_CAVEFISH:
+ case CHIP_VANGOGH:
dec->reg.data0 = RDECODE_VCN2_5_GPCOM_VCPU_DATA0;
dec->reg.data1 = RDECODE_VCN2_5_GPCOM_VCPU_DATA1;
dec->reg.cmd = RDECODE_VCN2_5_GPCOM_VCPU_CMD;
!(sscreen->debug_flags & (DBG(ALWAYS_NGG_CULLING_ALL) | DBG(ALWAYS_NGG_CULLING_TESS))))
sscreen->debug_flags |= DBG(NO_NGG_CULLING);
- sscreen->use_ngg = sscreen->info.chip_class >= GFX10 && sscreen->info.family != CHIP_NAVI14 &&
- !(sscreen->debug_flags & DBG(NO_NGG));
+ sscreen->use_ngg = !(sscreen->debug_flags & DBG(NO_NGG)) &&
+ sscreen->info.chip_class >= GFX10 &&
+ sscreen->info.family != CHIP_NAVI14 &&
+ sscreen->info.has_dedicated_vram;
sscreen->use_ngg_culling = sscreen->use_ngg && !(sscreen->debug_flags & DBG(NO_NGG_CULLING));
sscreen->always_use_ngg_culling_all =
sscreen->use_ngg_culling && sscreen->debug_flags & DBG(ALWAYS_NGG_CULLING_ALL);