1 #include <stddef.h>
2 #include "compiler/shader_enums.h"
3 
4 struct midgard_disasm_stats {
5         /* Counts gleaned from disassembly, or negative if the field cannot be
6          * inferred, for instance due to indirect access. If negative, the abs
7          * is the upper limit for the count. */
8 
9         signed texture_count;
10         signed sampler_count;
11         signed attribute_count;
12         signed varying_count;
13         signed uniform_count;
14         signed uniform_buffer_count;
15         signed work_count;
16 
17         /* These are pseudometrics for shader-db */
18         unsigned instruction_count;
19         unsigned bundle_count;
20         unsigned quadword_count;
21 
22         /* Should we enable helper invocations? */
23         bool helper_invocations;
24 };
25 
26 struct midgard_disasm_stats
27 disassemble_midgard(FILE *fp, uint8_t *code, size_t size, unsigned gpu_id, gl_shader_stage stage);
28