[Mesa-dev] [PATCH 4/4] intel/aubinator: Pull useful information from the AUB header
Jordan Justen
jordan.l.justen at intel.com
Mon Nov 28 23:46:18 UTC 2016
On 2016-11-23 20:27:28, Jason Ekstrand wrote:
> This commit does two things. One is to pull useful and/or interesting
> information from the AUB file header and display it as a header above your
> decoded batches. Second, it is now capable of pulling the PCI ID from the
> AUB file comment left by intel_aubdump. This removes the need to use the
> --gen flag all the time.
> ---
> src/intel/tools/aubinator.c | 37 ++++++++++++++++++++++++++++++++++---
> 1 file changed, 34 insertions(+), 3 deletions(-)
>
> diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c
> index 60aead8..f9aa8ce 100644
> --- a/src/intel/tools/aubinator.c
> +++ b/src/intel/tools/aubinator.c
> @@ -63,7 +63,7 @@ static enum { COLOR_AUTO, COLOR_ALWAYS, COLOR_NEVER } option_color;
> /* state */
>
> uint16_t pci_id = 0;
> -char *xml_path = NULL;
> +char *input_file = NULL, *xml_path = NULL;
> struct gen_spec *spec;
> struct gen_disasm *disasm;
>
> @@ -891,9 +891,23 @@ handle_trace_block(uint32_t *p)
> }
> }
>
> +#define MAX(a, b) ((a) < (b) ? (b) : (a))
> +
Why was this moved? Also, couldn't we use MAX2 from utils/macros.h?
Series Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
> static void
> handle_trace_header(uint32_t *p)
> {
> + /* The intel_aubdump tool from IGT is kind enough to put a PCI-ID= tag in
> + * the AUB header comment. If the user hasn't specified a hardware
> + * generation, try to use the one from the AUB file.
> + */
> + uint32_t *end = p + (p[0] & 0xffff) + 2;
> + int aub_pci_id = 0;
> + if (end > &p[12] && p[12] > 0)
> + sscanf((char *)&p[13], "PCI-ID=%i", &aub_pci_id);
> +
> + if (pci_id == 0)
> + pci_id = aub_pci_id;
> +
> struct gen_device_info devinfo;
> if (!gen_get_device_info(pci_id, &devinfo)) {
> fprintf(stderr, "can't find device information: pci_id=0x%x\n", pci_id);
> @@ -908,6 +922,25 @@ handle_trace_header(uint32_t *p)
>
> if (spec == NULL || disasm == NULL)
> exit(EXIT_FAILURE);
> +
> + printf("%sAubinator: Intel AUB file decoder.%-80s%s\n",
> + GREEN_HEADER, "", NORMAL);
> +
> + if (input_file)
> + printf("File name: %s\n", input_file);
> +
> + if (aub_pci_id)
> + printf("PCI ID: 0x%x\n", aub_pci_id);
> +
> + char app_name[33];
> + strncpy(app_name, (char *)&p[2], 32);
> + app_name[32] = 0;
> + printf("Application name: %s\n", app_name);
> +
> + printf("Decoding as: %s\n", gen_get_device_name(pci_id));
> +
> + /* Throw in a new line before the first batch */
> + printf("\n");
> }
>
> struct aub_file {
> @@ -1094,7 +1127,6 @@ aub_file_more_stuff(struct aub_file *file)
> }
>
> #define AUB_READ_BUFFER_SIZE (4096)
> -#define MAX(a, b) ((a) < (b) ? (b) : (a))
>
> static void
> aub_file_data_grow(struct aub_file *file)
> @@ -1185,7 +1217,6 @@ int main(int argc, char *argv[])
> struct aub_file *file;
> int c, i;
> bool help = false, pager = true;
> - char *input_file = NULL;
> const struct {
> const char *name;
> int pci_id;
> --
> 2.5.0.400.gff86faf
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list