vc4: Add shader-db dumping of NIR instruction count.
I was previously using temporary disables of VC4 optimization to show the benefits of improved NIR optimization, but this can get me quick and dirty numbers for NIR-only improvements without having to add hacks to disable VC4's code (disabling of which might hide ways that the NIR changes would hurt actual VC4 codegen).
This commit is contained in:
parent
73e2d4837d
commit
26261bca21
|
@ -1994,6 +1994,28 @@ static const nir_shader_compiler_options nir_options = {
|
|||
.lower_negate = true,
|
||||
};
|
||||
|
||||
static bool
|
||||
count_nir_instrs_in_block(nir_block *block, void *state)
|
||||
{
|
||||
int *count = (int *) state;
|
||||
nir_foreach_instr(block, instr) {
|
||||
*count = *count + 1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
count_nir_instrs(nir_shader *nir)
|
||||
{
|
||||
int count = 0;
|
||||
nir_foreach_overload(nir, overload) {
|
||||
if (!overload->impl)
|
||||
continue;
|
||||
nir_foreach_block(overload->impl, count_nir_instrs_in_block, &count);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
static struct vc4_compile *
|
||||
vc4_shader_ntq(struct vc4_context *vc4, enum qstage stage,
|
||||
struct vc4_key *key)
|
||||
|
@ -2064,6 +2086,13 @@ vc4_shader_ntq(struct vc4_context *vc4, enum qstage stage,
|
|||
|
||||
nir_convert_from_ssa(c->s);
|
||||
|
||||
if (vc4_debug & VC4_DEBUG_SHADERDB) {
|
||||
fprintf(stderr, "SHADER-DB: %s prog %d/%d: %d NIR instructions\n",
|
||||
qir_get_stage_name(c->stage),
|
||||
c->program_id, c->variant_id,
|
||||
count_nir_instrs(c->s));
|
||||
}
|
||||
|
||||
if (vc4_debug & VC4_DEBUG_NIR) {
|
||||
fprintf(stderr, "%s prog %d/%d NIR:\n",
|
||||
qir_get_stage_name(c->stage),
|
||||
|
|
Loading…
Reference in New Issue