.has_negative_rhw_bug = true,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 8,
.num_thread_per_eu = 4,
.max_vs_threads = 16,
.max_gs_threads = 2,
.is_g4x = true,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 10,
.num_thread_per_eu = 5,
.max_vs_threads = 32,
.max_gs_threads = 2,
.has_surface_tile_offset = true,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 12,
.num_thread_per_eu = 6,
.max_vs_threads = 72,
.max_gs_threads = 32,
.needs_unlit_centroid_workaround = true,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 6,
.num_thread_per_eu = 6, /* Not confirmed */
.max_vs_threads = 24,
.max_gs_threads = 21, /* conservative; 24 if rendering disabled. */
.needs_unlit_centroid_workaround = true,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 12,
.num_thread_per_eu = 6, /* Not confirmed */
.max_vs_threads = 60,
.max_gs_threads = 60,
GEN7_FEATURES, .is_ivybridge = true, .gt = 1,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 6,
.num_thread_per_eu = 6,
.l3_banks = 2,
.max_vs_threads = 36,
GEN7_FEATURES, .is_ivybridge = true, .gt = 2,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 12,
.num_thread_per_eu = 8, /* Not sure why this isn't a multiple of
* @max_wm_threads ... */
.l3_banks = 4,
GEN7_FEATURES, .is_baytrail = true, .gt = 1,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 4,
.num_thread_per_eu = 8,
.l3_banks = 1,
.has_llc = false,
HSW_FEATURES, .gt = 1,
.num_slices = 1,
.num_subslices = { 1, },
+ .num_eu_per_subslice = 10,
.num_thread_per_eu = 7,
.l3_banks = 2,
.max_vs_threads = 70,
HSW_FEATURES, .gt = 2,
.num_slices = 1,
.num_subslices = { 2, },
+ .num_eu_per_subslice = 10,
.num_thread_per_eu = 7,
.l3_banks = 4,
.max_vs_threads = 280,
HSW_FEATURES, .gt = 3,
.num_slices = 2,
.num_subslices = { 2, },
+ .num_eu_per_subslice = 10,
.num_thread_per_eu = 7,
.l3_banks = 8,
.max_vs_threads = 280,
.is_broadwell = true,
.num_slices = 1,
.num_subslices = { 2, },
+ .num_eu_per_subslice = 8,
.num_thread_per_eu = 7,
.l3_banks = 2,
.max_cs_threads = 42,
.is_broadwell = true,
.num_slices = 1,
.num_subslices = { 3, },
+ .num_eu_per_subslice = 8,
.num_thread_per_eu = 7,
.l3_banks = 4,
.max_cs_threads = 56,
.is_broadwell = true,
.num_slices = 2,
.num_subslices = { 3, 3, },
+ .num_eu_per_subslice = 8,
.num_thread_per_eu = 7,
.l3_banks = 8,
.max_cs_threads = 56,
.has_integer_dword_mul = false,
.num_slices = 1,
.num_subslices = { 2, },
+ .num_eu_per_subslice = 8,
.num_thread_per_eu = 7,
.l3_banks = 2,
.max_vs_threads = 80,
#define GEN9_LP_FEATURES_3X6 \
GEN9_LP_FEATURES, \
- .num_subslices = { 3, }
+ .num_subslices = { 3, }, \
+ .num_eu_per_subslice = 6
#define GEN9_LP_FEATURES_2X6 \
GEN9_LP_FEATURES, \
.num_subslices = { 2, }, \
+ .num_eu_per_subslice = 6, \
.max_vs_threads = 56, \
.max_tcs_threads = 56, \
.max_tes_threads = 56, \
.is_skylake = true,
.num_slices = 1,
.num_subslices = { 2, },
+ .num_eu_per_subslice = 6,
.l3_banks = 2,
.urb.size = 192,
};
.is_skylake = true,
.num_slices = 1,
.num_subslices = { 3, },
+ .num_eu_per_subslice = 8,
.l3_banks = 4,
};
.is_skylake = true,
.num_slices = 2,
.num_subslices = { 3, 3, },
+ .num_eu_per_subslice = 8,
.l3_banks = 8,
};
.is_skylake = true,
.num_slices = 3,
.num_subslices = { 3, 3, 3, },
+ .num_eu_per_subslice = 8,
.l3_banks = 12,
/* From the "L3 Allocation and Programming" documentation:
*
.urb.size = 192,
.num_slices = 1,
.num_subslices = { 2, },
+ .num_eu_per_subslice = 6,
.l3_banks = 2,
};
.max_cs_threads = 7 * 6,
.num_slices = 1,
.num_subslices = { 3, },
+ .num_eu_per_subslice = 6,
.l3_banks = 4,
};
.num_slices = 1,
.num_subslices = { 3, },
+ .num_eu_per_subslice = 8,
.l3_banks = 4,
};
.num_slices = 2,
.num_subslices = { 3, 3, },
+ .num_eu_per_subslice = 8,
.l3_banks = 8,
};
.urb.size = 1008 / 3,
.num_slices = 3,
.num_subslices = { 3, 3, 3, },
+ .num_eu_per_subslice = 8,
.l3_banks = 12,
};
.num_slices = 1,
.num_subslices = { 2, },
+ .num_eu_per_subslice = 6,
.l3_banks = 2,
};
static const struct gen_device_info gen_device_info_cfl_gt2 = {
.num_slices = 1,
.num_subslices = { 3, },
+ .num_eu_per_subslice = 8,
.l3_banks = 4,
};
.num_slices = 2,
.num_subslices = { 3, 3, },
+ .num_eu_per_subslice = 8,
.l3_banks = 8,
};
.gt = _gt, \
.num_slices = _slices, \
.num_subslices = _subslices, \
+ .num_eu_per_subslice = 8, \
.l3_banks = _l3
static const struct gen_device_info gen_device_info_cnl_2x8 = {
.has_integer_dword_mul = false, \
.has_sample_with_hiz = false, \
.gt = _gt, .num_slices = _slices, .l3_banks = _l3, \
- .num_subslices = _subslices
+ .num_subslices = _subslices, \
+ .num_eu_per_subslice = 8
static const struct gen_device_info gen_device_info_icl_8x8 = {
GEN11_FEATURES(2, 1, subslices(8), 8),