intel: Add a preliminary device for Ice Lake

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Anuj Phogat <anuj.phogat@intel.com>
This commit is contained in:
Anuj Phogat 2017-03-14 14:43:34 -07:00 committed by Matt Turner
parent 0c983b9094
commit 5ac804bd9a
1 changed files with 56 additions and 1 deletions

View File

@ -789,6 +789,50 @@ static const struct gen_device_info gen_device_info_cnl_5x8 = {
.is_cannonlake = true,
};
#define GEN11_HW_INFO \
.gen = 11, \
.has_pln = false, \
.max_vs_threads = 364, \
.max_gs_threads = 224, \
.max_tcs_threads = 224, \
.max_tes_threads = 364, \
.max_cs_threads = 56, \
.urb = { \
.size = 1024, \
.min_entries = { \
[MESA_SHADER_VERTEX] = 64, \
[MESA_SHADER_TESS_EVAL] = 34, \
}, \
.max_entries = { \
[MESA_SHADER_VERTEX] = 2384, \
[MESA_SHADER_TESS_CTRL] = 1032, \
[MESA_SHADER_TESS_EVAL] = 2384, \
[MESA_SHADER_GEOMETRY] = 1032, \
}, \
}
#define GEN11_FEATURES(_gt, _slices, _subslices, _l3) \
GEN8_FEATURES, \
GEN11_HW_INFO, \
.gt = _gt, .num_slices = _slices, .l3_banks = _l3, \
.num_subslices = _subslices
static const struct gen_device_info gen_device_info_icl_8x8 = {
GEN11_FEATURES(2, 1, subslices(8), 8),
};
static const struct gen_device_info gen_device_info_icl_6x8 = {
GEN11_FEATURES(1, 1, subslices(6), 6),
};
static const struct gen_device_info gen_device_info_icl_4x8 = {
GEN11_FEATURES(1, 1, subslices(4), 6),
};
static const struct gen_device_info gen_device_info_icl_1x8 = {
GEN11_FEATURES(1, 1, subslices(1), 6),
};
bool
gen_get_device_info(int devid, struct gen_device_info *devinfo)
{
@ -815,10 +859,21 @@ gen_get_device_info(int devid, struct gen_device_info *devinfo)
* Extra padding can be necessary depending how the thread IDs are
* calculated for a particular shader stage.
*/
if (devinfo->gen >= 9) {
switch(devinfo->gen) {
case 9:
case 10:
devinfo->max_wm_threads = 64 /* threads-per-PSD */
* devinfo->num_slices
* 4; /* effective subslices per slice */
break;
case 11:
devinfo->max_wm_threads = 128 /* threads-per-PSD */
* devinfo->num_slices
* 8; /* subslices per slice */
break;
default:
break;
}
assert(devinfo->num_slices <= ARRAY_SIZE(devinfo->num_subslices));