diff options
author | Lionel Landwerlin <[email protected]> | 2016-10-15 00:27:06 +0100 |
---|---|---|
committer | Lionel Landwerlin <[email protected]> | 2016-11-01 22:37:56 +0000 |
commit | a28db12e214df94d601fcbbf09c776403c8d9384 (patch) | |
tree | c43a055a5f7dbf3ebd4accdb6ffef35fd4c759c6 /src/intel/tools/decoder.c | |
parent | 74c4c84482b9659805ef3d796fba81815e70ed28 (diff) |
intel: aubinator: print field values if available
Turning this :
sampler state 0
Sampler Disable: false
Texture Border Color Mode: 0
LOD PreClamp Enable: 1
Base Mip Level: 0.000000
Mip Mode Filter: 0
Mag Mode Filter: 1
Min Mode Filter: 1
Texture LOD Bias: foo
Anisotropic Algorithm: 0
into this :
sampler state 0
Sampler Disable: false
Texture Border Color Mode: 0 (DX10/OGL)
LOD PreClamp Enable: 1 (OGL)
Base Mip Level: 0.000000
Mip Mode Filter: 0 (NONE)
Mag Mode Filter: 1 (LINEAR)
Min Mode Filter: 1 (LINEAR)
Texture LOD Bias: foo
Anisotropic Algorithm: 0 (LEGACY)
Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Sirisha Gandikota<[email protected]>
Diffstat (limited to 'src/intel/tools/decoder.c')
-rw-r--r-- | src/intel/tools/decoder.c | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/src/intel/tools/decoder.c b/src/intel/tools/decoder.c index 88ba5c0f5fc..6bd02bf9053 100644 --- a/src/intel/tools/decoder.c +++ b/src/intel/tools/decoder.c @@ -635,6 +635,19 @@ gen_field_iterator_init(struct gen_field_iterator *iter, iter->print_colors = print_colors; } +static void +gen_field_write_value(char *str, size_t max_length, + struct gen_field *field, + uint64_t value) +{ + for (int i = 0; i < field->n_values; i++) { + if (field->values[i]->value == value) { + strncpy(str, field->values[i]->name, max_length); + return; + } + } +} + bool gen_field_iterator_next(struct gen_field_iterator *iter) { @@ -656,16 +669,26 @@ gen_field_iterator_next(struct gen_field_iterator *iter) else v.qw = iter->p[index]; + iter->description[0] = '\0'; + switch (f->type.kind) { case GEN_TYPE_UNKNOWN: - case GEN_TYPE_INT: + case GEN_TYPE_INT: { + uint64_t value = field(v.qw, f->start, f->end); snprintf(iter->value, sizeof(iter->value), - "%"PRId64, field(v.qw, f->start, f->end)); + "%"PRId64, value); + gen_field_write_value(iter->description, sizeof(iter->description), + f, value); break; - case GEN_TYPE_UINT: + } + case GEN_TYPE_UINT: { + uint64_t value = field(v.qw, f->start, f->end); snprintf(iter->value, sizeof(iter->value), - "%"PRIu64, field(v.qw, f->start, f->end)); + "%"PRIu64, value); + gen_field_write_value(iter->description, sizeof(iter->description), + f, value); break; + } case GEN_TYPE_BOOL: { const char *true_string = iter->print_colors ? "\e[0;35mtrue\e[0m" : "true"; |