aco/ngg: Add assertion to make sure we always know the vertex count.

Just a sanity check to avoid hangs caused by missing this
in the future.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7213>
This commit is contained in:
Timur Kristóf 2020-10-19 11:49:05 +02:00 committed by Marge Bot
parent d9cb9ff414
commit d8435c1628
2 changed files with 6 additions and 0 deletions

View File

@ -6934,6 +6934,8 @@ void ngg_visit_set_vertex_and_primitive_count(isel_context *ctx, nir_intrinsic_i
if (!ctx->args->shader_info->gs.num_stream_output_components[stream])
return;
ctx->ngg_gs_known_vtxcnt[stream] = true;
/* Clear the primitive flags of non-emitted GS vertices. */
if (!nir_src_is_const(instr->src[0]) || nir_src_as_uint(instr->src[0]) < ctx->shader->info.gs.vertices_out) {
Temp vtx_cnt = get_ssa_temp(ctx, instr->src[0].ssa);
@ -11577,6 +11579,9 @@ void ngg_gs_prelude(isel_context *ctx)
void ngg_gs_finale(isel_context *ctx)
{
/* Sanity check. Make sure the vertex/primitive counts are set and the LDS is correctly initialized. */
assert(ctx->ngg_gs_known_vtxcnt[0]);
if_context ic;
Builder bld(ctx->program, ctx->block);

View File

@ -95,6 +95,7 @@ struct isel_context {
/* GS inputs */
bool ngg_nogs_early_prim_export = false;
bool ngg_gs_early_alloc = false;
bool ngg_gs_known_vtxcnt[4] = {false, false, false, false};
Temp gs_wave_id;
unsigned ngg_gs_emit_addr = 0;
unsigned ngg_gs_emit_vtx_bytes = 0;