mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-01 05:20:09 +01:00
radeonsi: add has_draw_indirect_multi flag
Prefer to use DRAW_(INDEX)_INDIRECT_MULTI when available in the firmware. Versions for SI and CI already added as provided by the firmware team, but keep in mind that they won't currently be used since the radeon kernel module has no interface to query the firmware version. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
5c343cce0f
commit
96bbb620a5
3 changed files with 14 additions and 1 deletions
|
|
@ -785,6 +785,18 @@ struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws)
|
|||
sscreen->b.chip_class >= VI &&
|
||||
sscreen->b.info.max_se >= 2;
|
||||
|
||||
sscreen->has_draw_indirect_multi =
|
||||
(sscreen->b.family >= CHIP_POLARIS10) ||
|
||||
(sscreen->b.chip_class == VI &&
|
||||
sscreen->b.info.pfp_fw_version >= 121 &&
|
||||
sscreen->b.info.me_fw_version >= 87) ||
|
||||
(sscreen->b.chip_class == CIK &&
|
||||
sscreen->b.info.pfp_fw_version >= 211 &&
|
||||
sscreen->b.info.me_fw_version >= 173) ||
|
||||
(sscreen->b.chip_class == SI &&
|
||||
sscreen->b.info.pfp_fw_version >= 121 &&
|
||||
sscreen->b.info.me_fw_version >= 87);
|
||||
|
||||
sscreen->b.has_cp_dma = true;
|
||||
sscreen->b.has_streamout = true;
|
||||
pipe_mutex_init(sscreen->shader_parts_mutex);
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ struct si_screen {
|
|||
unsigned gs_table_depth;
|
||||
unsigned tess_offchip_block_dw_size;
|
||||
bool has_distributed_tess;
|
||||
bool has_draw_indirect_multi;
|
||||
|
||||
/* Whether shaders are monolithic (1-part) or separate (3-part). */
|
||||
bool use_monolithic_shaders;
|
||||
|
|
|
|||
|
|
@ -634,7 +634,7 @@ static void si_emit_draw_packets(struct si_context *sctx,
|
|||
radeon_emit(cs, index_max_size);
|
||||
}
|
||||
|
||||
if (sctx->b.family < CHIP_POLARIS10) {
|
||||
if (!sctx->screen->has_draw_indirect_multi) {
|
||||
radeon_emit(cs, PKT3(info->indexed ? PKT3_DRAW_INDEX_INDIRECT
|
||||
: PKT3_DRAW_INDIRECT,
|
||||
3, render_cond_bit));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue