mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 22:10:10 +01:00
amd: add support for gfx1036 and gfx1037 chips
Both are identified as GFX1036 for simplicity. Reviewed-by: Yifan Zhang <yifan1.zhang@amd.com> Tested-by: Yifan Zhang <yifan1.zhang@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15155>
This commit is contained in:
parent
48046d5bd8
commit
f8cf5ea982
8 changed files with 42 additions and 1 deletions
|
|
@ -47,6 +47,8 @@
|
||||||
#define FAMILY_NV 0x8F
|
#define FAMILY_NV 0x8F
|
||||||
#define FAMILY_VGH 0x90
|
#define FAMILY_VGH 0x90
|
||||||
#define FAMILY_YC 0x92
|
#define FAMILY_YC 0x92
|
||||||
|
#define FAMILY_GC_10_3_6 0x95
|
||||||
|
#define FAMILY_GC_10_3_7 0x97
|
||||||
|
|
||||||
// AMDGPU_FAMILY_IS(familyId, familyName)
|
// AMDGPU_FAMILY_IS(familyId, familyName)
|
||||||
#define FAMILY_IS(f, fn) (f == FAMILY_##fn)
|
#define FAMILY_IS(f, fn) (f == FAMILY_##fn)
|
||||||
|
|
@ -111,6 +113,10 @@
|
||||||
|
|
||||||
#define AMDGPU_YELLOW_CARP_RANGE 0x01, 0xFF
|
#define AMDGPU_YELLOW_CARP_RANGE 0x01, 0xFF
|
||||||
|
|
||||||
|
#define AMDGPU_GFX1036_RANGE 0x01, 0xFF
|
||||||
|
|
||||||
|
#define AMDGPU_GFX1037_RANGE 0x01, 0xFF
|
||||||
|
|
||||||
#define AMDGPU_EXPAND_FIX(x) x
|
#define AMDGPU_EXPAND_FIX(x) x
|
||||||
#define AMDGPU_RANGE_HELPER(val, min, max) ((val >= min) && (val < max))
|
#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 AMDGPU_IN_RANGE(val, ...) AMDGPU_EXPAND_FIX(AMDGPU_RANGE_HELPER(val, __VA_ARGS__))
|
||||||
|
|
@ -168,4 +174,8 @@
|
||||||
|
|
||||||
#define ASICREV_IS_YELLOW_CARP(r) ASICREV_IS(r, YELLOW_CARP)
|
#define ASICREV_IS_YELLOW_CARP(r) ASICREV_IS(r, YELLOW_CARP)
|
||||||
|
|
||||||
|
#define ASICREV_IS_GFX1036(r) ASICREV_IS(r, GFX1036)
|
||||||
|
|
||||||
|
#define ASICREV_IS_GFX1037(r) ASICREV_IS(r, GFX1037)
|
||||||
|
|
||||||
#endif // _AMDGPU_ASIC_ADDR_H
|
#endif // _AMDGPU_ASIC_ADDR_H
|
||||||
|
|
|
||||||
|
|
@ -230,6 +230,8 @@ ADDR_E_RETURNCODE Lib::Create(
|
||||||
case FAMILY_NV:
|
case FAMILY_NV:
|
||||||
case FAMILY_VGH:
|
case FAMILY_VGH:
|
||||||
case FAMILY_YC:
|
case FAMILY_YC:
|
||||||
|
case FAMILY_GC_10_3_6:
|
||||||
|
case FAMILY_GC_10_3_7:
|
||||||
pLib = Gfx10HwlInit(&client);
|
pLib = Gfx10HwlInit(&client);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -1087,7 +1087,24 @@ ChipFamily Gfx10Lib::HwlConvertChipFamily(
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
case FAMILY_GC_10_3_6:
|
||||||
|
if (ASICREV_IS_GFX1036(chipRevision))
|
||||||
|
{
|
||||||
|
m_settings.supportRbPlus = 1;
|
||||||
|
m_settings.dccUnsup3DSwDis = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case FAMILY_GC_10_3_7:
|
||||||
|
if (ASICREV_IS_GFX1037(chipRevision))
|
||||||
|
{
|
||||||
|
m_settings.supportRbPlus = 1;
|
||||||
|
m_settings.dccUnsup3DSwDis = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ADDR_ASSERT(!"Unknown chip revision");
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ADDR_ASSERT(!"Unknown chip family");
|
ADDR_ASSERT(!"Unknown chip family");
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -764,6 +764,12 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info,
|
||||||
case FAMILY_YC:
|
case FAMILY_YC:
|
||||||
identify_chip(YELLOW_CARP);
|
identify_chip(YELLOW_CARP);
|
||||||
break;
|
break;
|
||||||
|
case FAMILY_GC_10_3_6:
|
||||||
|
identify_chip(GFX1036);
|
||||||
|
break;
|
||||||
|
case FAMILY_GC_10_3_7:
|
||||||
|
identify_chip2(GFX1037, GFX1036);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!info->name) {
|
if (!info->name) {
|
||||||
|
|
@ -1194,6 +1200,7 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info,
|
||||||
break;
|
break;
|
||||||
case CHIP_VANGOGH:
|
case CHIP_VANGOGH:
|
||||||
case CHIP_YELLOW_CARP:
|
case CHIP_YELLOW_CARP:
|
||||||
|
case CHIP_GFX1036:
|
||||||
pc_lines = 256;
|
pc_lines = 256;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,8 @@ const char *ac_get_family_name(enum radeon_family family)
|
||||||
return "BEIGE_GOBY";
|
return "BEIGE_GOBY";
|
||||||
case CHIP_YELLOW_CARP:
|
case CHIP_YELLOW_CARP:
|
||||||
return "YELLOW_CARP";
|
return "YELLOW_CARP";
|
||||||
|
case CHIP_GFX1036:
|
||||||
|
return "GFX1036";
|
||||||
default:
|
default:
|
||||||
unreachable("Unknown GPU family");
|
unreachable("Unknown GPU family");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,7 @@ enum radeon_family
|
||||||
CHIP_DIMGREY_CAVEFISH,
|
CHIP_DIMGREY_CAVEFISH,
|
||||||
CHIP_BEIGE_GOBY,
|
CHIP_BEIGE_GOBY,
|
||||||
CHIP_YELLOW_CARP,
|
CHIP_YELLOW_CARP,
|
||||||
|
CHIP_GFX1036,
|
||||||
CHIP_LAST,
|
CHIP_LAST,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,7 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
|
||||||
case CHIP_BEIGE_GOBY:
|
case CHIP_BEIGE_GOBY:
|
||||||
case CHIP_VANGOGH:
|
case CHIP_VANGOGH:
|
||||||
case CHIP_YELLOW_CARP:
|
case CHIP_YELLOW_CARP:
|
||||||
|
case CHIP_GFX1036:
|
||||||
return "gfx1030";
|
return "gfx1030";
|
||||||
default:
|
default:
|
||||||
return "";
|
return "";
|
||||||
|
|
|
||||||
|
|
@ -2626,6 +2626,7 @@ struct pipe_video_codec *radeon_create_decoder(struct pipe_context *context,
|
||||||
case CHIP_BEIGE_GOBY:
|
case CHIP_BEIGE_GOBY:
|
||||||
case CHIP_VANGOGH:
|
case CHIP_VANGOGH:
|
||||||
case CHIP_YELLOW_CARP:
|
case CHIP_YELLOW_CARP:
|
||||||
|
case CHIP_GFX1036:
|
||||||
dec->reg.data0 = RDECODE_VCN2_5_GPCOM_VCPU_DATA0;
|
dec->reg.data0 = RDECODE_VCN2_5_GPCOM_VCPU_DATA0;
|
||||||
dec->reg.data1 = RDECODE_VCN2_5_GPCOM_VCPU_DATA1;
|
dec->reg.data1 = RDECODE_VCN2_5_GPCOM_VCPU_DATA1;
|
||||||
dec->reg.cmd = RDECODE_VCN2_5_GPCOM_VCPU_CMD;
|
dec->reg.cmd = RDECODE_VCN2_5_GPCOM_VCPU_CMD;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue