17ec681f3Smrg#include <stddef.h>
27ec681f3Smrg
37ec681f3Smrgstruct midgard_disasm_stats {
47ec681f3Smrg        /* Counts gleaned from disassembly, or negative if the field cannot be
57ec681f3Smrg         * inferred, for instance due to indirect access. If negative, the abs
67ec681f3Smrg         * is the upper limit for the count. */
77ec681f3Smrg
87ec681f3Smrg        signed texture_count;
97ec681f3Smrg        signed sampler_count;
107ec681f3Smrg        signed attribute_count;
117ec681f3Smrg        signed varying_count;
127ec681f3Smrg        signed uniform_count;
137ec681f3Smrg        signed uniform_buffer_count;
147ec681f3Smrg        signed work_count;
157ec681f3Smrg
167ec681f3Smrg        /* These are pseudometrics for shader-db */
177ec681f3Smrg        unsigned instruction_count;
187ec681f3Smrg        unsigned bundle_count;
197ec681f3Smrg        unsigned quadword_count;
207ec681f3Smrg
217ec681f3Smrg        /* Should we enable helper invocations? */
227ec681f3Smrg        bool helper_invocations;
237ec681f3Smrg};
247ec681f3Smrg
257ec681f3Smrgstruct midgard_disasm_stats
267ec681f3Smrgdisassemble_midgard(FILE *fp, uint8_t *code, size_t size, unsigned gpu_id, bool verbose);
27