summaryrefslogtreecommitdiffstats
path: root/src/intel/tools/decoder.c
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2016-10-15 00:27:06 +0100
committerLionel Landwerlin <[email protected]>2016-11-01 22:37:56 +0000
commita28db12e214df94d601fcbbf09c776403c8d9384 (patch)
treec43a055a5f7dbf3ebd4accdb6ffef35fd4c759c6 /src/intel/tools/decoder.c
parent74c4c84482b9659805ef3d796fba81815e70ed28 (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.c31
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";