From: Lionel Landwerlin Date: Fri, 14 Oct 2016 16:04:50 +0000 (+0100) Subject: intel: aubinator: print boolean fields to true with colors X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c8806eeefc63e70e7c454f4c85d2a8b4426c34b9;p=mesa.git intel: aubinator: print boolean fields to true with colors Signed-off-by: Lionel Landwerlin Reviewed-by: Sirisha Gandikota --- diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c index 4fee53c35d1..73df16b6dce 100644 --- a/src/intel/tools/aubinator.c +++ b/src/intel/tools/aubinator.c @@ -139,7 +139,8 @@ decode_structure(struct gen_spec *spec, struct gen_group *strct, else offset = 0; - gen_field_iterator_init(&iter, strct, p); + gen_field_iterator_init(&iter, strct, p, + option_color == COLOR_ALWAYS); while (gen_field_iterator_next(&iter)) { idx = 0; print_dword_val(&iter, offset, &dword_num); @@ -755,7 +756,8 @@ parse_commands(struct gen_spec *spec, uint32_t *cmds, int size, int engine) struct gen_field_iterator iter; char *token = NULL; int idx = 0, dword_num = 0; - gen_field_iterator_init(&iter, inst, p); + gen_field_iterator_init(&iter, inst, p, + option_color == COLOR_ALWAYS); while (gen_field_iterator_next(&iter)) { idx = 0; print_dword_val(&iter, offset, &dword_num); diff --git a/src/intel/tools/decoder.c b/src/intel/tools/decoder.c index 267b821404c..cab527143bc 100644 --- a/src/intel/tools/decoder.c +++ b/src/intel/tools/decoder.c @@ -594,11 +594,14 @@ gen_group_get_length(struct gen_group *group, const uint32_t *p) void gen_field_iterator_init(struct gen_field_iterator *iter, - struct gen_group *group, const uint32_t *p) + struct gen_group *group, + const uint32_t *p, + bool print_colors) { iter->group = group; iter->p = p; iter->i = 0; + iter->print_colors = print_colors; } bool @@ -632,10 +635,13 @@ gen_field_iterator_next(struct gen_field_iterator *iter) snprintf(iter->value, sizeof(iter->value), "%"PRIu64, field(v.qw, f->start, f->end)); break; - case GEN_TYPE_BOOL: + case GEN_TYPE_BOOL: { + const char *true_string = + iter->print_colors ? "\e[0;35mtrue\e[0m" : "true"; snprintf(iter->value, sizeof(iter->value), - "%s", field(v.qw, f->start, f->end) ? "true" : "false"); + "%s", field(v.qw, f->start, f->end) ? true_string : "false"); break; + } case GEN_TYPE_FLOAT: snprintf(iter->value, sizeof(iter->value), "%f", v.f); break; diff --git a/src/intel/tools/decoder.h b/src/intel/tools/decoder.h index bbeaa0ac831..9a677beab50 100644 --- a/src/intel/tools/decoder.h +++ b/src/intel/tools/decoder.h @@ -55,6 +55,7 @@ struct gen_field_iterator { char value[128]; const uint32_t *p; int i; + bool print_colors; }; struct gen_group { @@ -101,7 +102,9 @@ struct gen_field { }; void gen_field_iterator_init(struct gen_field_iterator *iter, - struct gen_group *group, const uint32_t *p); + struct gen_group *group, + const uint32_t *p, + bool print_colors); bool gen_field_iterator_next(struct gen_field_iterator *iter);