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:
@@ -1833,6 +1833,7 @@ gfx10_get_ngg_info(const VkGraphicsPipelineCreateInfo *pCreateInfo,
|
|||||||
ngg->prim_amp_factor = prim_amp_factor;
|
ngg->prim_amp_factor = prim_amp_factor;
|
||||||
ngg->max_vert_out_per_gs_instance = max_vert_out_per_gs_instance;
|
ngg->max_vert_out_per_gs_instance = max_vert_out_per_gs_instance;
|
||||||
ngg->ngg_emit_size = max_gsprims * gsprim_lds_size;
|
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) {
|
if (gs_type == MESA_SHADER_GEOMETRY) {
|
||||||
ngg->vgt_esgs_ring_itemsize = es_info->esgs_itemsize / 4;
|
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;
|
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 */
|
assert(ngg->hw_max_esverts >= 24); /* HW limitation */
|
||||||
}
|
}
|
||||||
|
@@ -209,6 +209,7 @@ struct gfx10_ngg_info {
|
|||||||
uint32_t max_out_verts;
|
uint32_t max_out_verts;
|
||||||
uint32_t prim_amp_factor;
|
uint32_t prim_amp_factor;
|
||||||
uint32_t vgt_esgs_ring_itemsize;
|
uint32_t vgt_esgs_ring_itemsize;
|
||||||
|
uint32_t esgs_ring_size;
|
||||||
bool max_vert_out_per_gs_instance;
|
bool max_vert_out_per_gs_instance;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user