radv: store the ESGS ring size as part of gfx10_ngg_info

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Samuel Pitoiset 2019-09-03 11:34:42 +02:00
parent 7eba5666fa
commit e7ee9a6387
2 changed files with 3 additions and 1 deletions

View File

@ -1833,6 +1833,7 @@ gfx10_get_ngg_info(const VkGraphicsPipelineCreateInfo *pCreateInfo,
ngg->prim_amp_factor = prim_amp_factor;
ngg->max_vert_out_per_gs_instance = max_vert_out_per_gs_instance;
ngg->ngg_emit_size = max_gsprims * gsprim_lds_size;
ngg->esgs_ring_size = 4 * max_esverts * esvert_lds_size;
if (gs_type == MESA_SHADER_GEOMETRY) {
ngg->vgt_esgs_ring_itemsize = es_info->esgs_itemsize / 4;
@ -1840,7 +1841,7 @@ gfx10_get_ngg_info(const VkGraphicsPipelineCreateInfo *pCreateInfo,
ngg->vgt_esgs_ring_itemsize = 1;
}
pipeline->graphics.esgs_ring_size = 4 * max_esverts * esvert_lds_size;
pipeline->graphics.esgs_ring_size = ngg->esgs_ring_size;
assert(ngg->hw_max_esverts >= 24); /* HW limitation */
}

View File

@ -209,6 +209,7 @@ struct gfx10_ngg_info {
uint32_t max_out_verts;
uint32_t prim_amp_factor;
uint32_t vgt_esgs_ring_itemsize;
uint32_t esgs_ring_size;
bool max_vert_out_per_gs_instance;
};