sscreen->tess_offchip_block_dw_size =
sscreen->b.family == CHIP_HAWAII ? 4096 : 8192;
+ sscreen->has_distributed_tess =
+ sscreen->b.chip_class >= VI &&
+ sscreen->b.info.max_se >= 2;
+
sscreen->b.has_cp_dma = true;
sscreen->b.has_streamout = true;
pipe_mutex_init(sscreen->shader_parts_mutex);
struct r600_common_screen b;
unsigned gs_table_depth;
unsigned tess_offchip_block_dw_size;
+ bool has_distributed_tess;
/* Whether shaders are monolithic (1-part) or separate (3-part). */
bool use_monolithic_shaders;
partial_vs_wave = true;
/* Needed for 028B6C_DISTRIBUTION_MODE != 0 */
- if (sctx->b.chip_class >= VI) {
+ if (sctx->screen->has_distributed_tess) {
if (sctx->gs_shader.cso)
partial_es_wave = true;
else
else
topology = V_028B6C_OUTPUT_TRIANGLE_CW;
- if (sscreen->b.chip_class >= VI) {
+ if (sscreen->has_distributed_tess) {
if (sscreen->b.family == CHIP_FIJI ||
sscreen->b.family >= CHIP_POLARIS10)
distribution_mode = V_028B6C_DISTRIBUTION_MODE_TRAPEZOIDS;