mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-11 01:46:14 +00:00
gpu_dump: Parse INSTDONE if seen inside a file.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
e30f06fbb9
commit
5afb8ff68b
@ -52,6 +52,27 @@
|
|||||||
#include "intel_gpu_tools.h"
|
#include "intel_gpu_tools.h"
|
||||||
#include "instdone.h"
|
#include "instdone.h"
|
||||||
|
|
||||||
|
static void
|
||||||
|
print_instdone (unsigned int instdone, unsigned int instdone1)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < num_instdone_bits; i++) {
|
||||||
|
int busy = 0;
|
||||||
|
|
||||||
|
if (instdone_bits[i].reg == INST_DONE_1) {
|
||||||
|
if (!(instdone1 & instdone_bits[i].bit))
|
||||||
|
busy = 1;
|
||||||
|
} else {
|
||||||
|
if (!(instdone & instdone_bits[i].bit))
|
||||||
|
busy = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (busy)
|
||||||
|
printf(" busy: %s\n", instdone_bits[i].name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Read a data file of the following form:
|
/* Read a data file of the following form:
|
||||||
*
|
*
|
||||||
* Offset0 : Data0
|
* Offset0 : Data0
|
||||||
@ -104,9 +125,23 @@ read_data_file (const char * filename, int is_batch)
|
|||||||
}
|
}
|
||||||
|
|
||||||
matched = sscanf (line, "%08x : %08x", &offset, &value);
|
matched = sscanf (line, "%08x : %08x", &offset, &value);
|
||||||
if (matched !=2 ) {
|
if (matched != 2) {
|
||||||
fprintf (stderr, "Warning: Ignoring unrecognized line at %s:%d:\n%s",
|
unsigned int reg;
|
||||||
filename, line_number, line);
|
|
||||||
|
printf("%s", line);
|
||||||
|
|
||||||
|
matched = sscanf (line, " ACTHD: 0x%08x\n", ®);
|
||||||
|
if (matched)
|
||||||
|
intel_decode_context_set_head_tail(reg, 0xffffffff);
|
||||||
|
|
||||||
|
matched = sscanf (line, " INSTDONE: 0x%08x\n", ®);
|
||||||
|
if (matched)
|
||||||
|
print_instdone (reg, -1);
|
||||||
|
|
||||||
|
matched = sscanf (line, " INSTDONE1: 0x%08x\n", ®);
|
||||||
|
if (matched)
|
||||||
|
print_instdone (-1, reg);
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,7 +238,6 @@ main (int argc, char *argv[])
|
|||||||
struct stat st;
|
struct stat st;
|
||||||
int err;
|
int err;
|
||||||
uint32_t instdone, instdone1 = 0;
|
uint32_t instdone, instdone1 = 0;
|
||||||
int i;
|
|
||||||
|
|
||||||
if (argc > 2) {
|
if (argc > 2) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
@ -225,6 +259,7 @@ main (int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
intel_get_mmio();
|
intel_get_mmio();
|
||||||
|
init_instdone_definitions();
|
||||||
|
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
path = "/debug/dri/0";
|
path = "/debug/dri/0";
|
||||||
@ -270,8 +305,6 @@ main (int argc, char *argv[])
|
|||||||
parse_ringbuffer_info(filename, &ring_head, &ring_tail, &acthd);
|
parse_ringbuffer_info(filename, &ring_head, &ring_tail, &acthd);
|
||||||
free (filename);
|
free (filename);
|
||||||
|
|
||||||
init_instdone_definitions();
|
|
||||||
|
|
||||||
printf("ACTHD: 0x%08x\n", acthd);
|
printf("ACTHD: 0x%08x\n", acthd);
|
||||||
printf("EIR: 0x%08x\n", INREG(EIR));
|
printf("EIR: 0x%08x\n", INREG(EIR));
|
||||||
printf("EMR: 0x%08x\n", INREG(EMR));
|
printf("EMR: 0x%08x\n", INREG(EMR));
|
||||||
@ -294,21 +327,7 @@ main (int argc, char *argv[])
|
|||||||
printf("INSTDONE: 0x%08x\n", instdone);
|
printf("INSTDONE: 0x%08x\n", instdone);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < num_instdone_bits; i++) {
|
print_instdone (instdone, instdone1);
|
||||||
int busy = 0;
|
|
||||||
|
|
||||||
if (instdone_bits[i].reg == INST_DONE_1) {
|
|
||||||
if (!(instdone1 & instdone_bits[i].bit))
|
|
||||||
busy = 1;
|
|
||||||
} else {
|
|
||||||
if (!(instdone & instdone_bits[i].bit))
|
|
||||||
busy = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (busy) {
|
|
||||||
printf(" busy: %s\n", instdone_bits[i].name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
asprintf (&filename, "%s/i915_batchbuffers", path);
|
asprintf (&filename, "%s/i915_batchbuffers", path);
|
||||||
intel_decode_context_set_head_tail(acthd, 0xffffffff);
|
intel_decode_context_set_head_tail(acthd, 0xffffffff);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user