gallium/hud: add an option to rename each data source
useful for radeonsi performance counters v2: allow specifying both : and = Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
d995115b17
commit
e8bb97ce30
|
@ -789,6 +789,17 @@ hud_pane_create(unsigned x1, unsigned y1, unsigned x2, unsigned y2,
|
||||||
return pane;
|
return pane;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* replace '-' with a space */
|
||||||
|
static void
|
||||||
|
strip_hyphens(char *s)
|
||||||
|
{
|
||||||
|
while (*s) {
|
||||||
|
if (*s == '-')
|
||||||
|
*s = ' ';
|
||||||
|
s++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a graph to an existing pane.
|
* Add a graph to an existing pane.
|
||||||
* One pane can contain multiple graphs over each other.
|
* One pane can contain multiple graphs over each other.
|
||||||
|
@ -895,7 +906,7 @@ parse_string(const char *s, char *out)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; *s && *s != '+' && *s != ',' && *s != ':' && *s != ';';
|
for (i = 0; *s && *s != '+' && *s != ',' && *s != ':' && *s != ';' && *s != '=';
|
||||||
s++, out++, i++)
|
s++, out++, i++)
|
||||||
*out = *s;
|
*out = *s;
|
||||||
|
|
||||||
|
@ -1193,11 +1204,31 @@ hud_parse_env_var(struct hud_context *hud, const char *env)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fprintf(stderr, "gallium_hud: syntax error: unexpected '%c' (%i) "
|
fprintf(stderr, "gallium_hud: syntax error: unexpected '%c' (%i) "
|
||||||
"after ':'\n", *env, *env);
|
"after ':'\n", *env, *env);
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (*env == '=') {
|
||||||
|
env++;
|
||||||
|
|
||||||
|
if (!pane) {
|
||||||
|
fprintf(stderr, "gallium_hud: syntax error: unexpected '=', "
|
||||||
|
"expected a name\n");
|
||||||
|
fflush(stderr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
num = parse_string(env, s);
|
||||||
|
env += num;
|
||||||
|
|
||||||
|
strip_hyphens(s);
|
||||||
|
if (!LIST_IS_EMPTY(&pane->graph_list)) {
|
||||||
|
strcpy(LIST_ENTRY(struct hud_graph,
|
||||||
|
pane->graph_list.prev, head)->name, s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (*env == 0)
|
if (*env == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1274,6 +1305,8 @@ print_help(struct pipe_screen *screen)
|
||||||
puts(" for the given pane.");
|
puts(" for the given pane.");
|
||||||
puts(" ',' creates a new pane below the last one.");
|
puts(" ',' creates a new pane below the last one.");
|
||||||
puts(" ';' creates a new pane at the top of the next column.");
|
puts(" ';' creates a new pane at the top of the next column.");
|
||||||
|
puts(" '=' followed by a string, changes the name of the last data source");
|
||||||
|
puts(" to that string");
|
||||||
puts("");
|
puts("");
|
||||||
puts(" Example: GALLIUM_HUD=\"cpu,fps;primitives-generated\"");
|
puts(" Example: GALLIUM_HUD=\"cpu,fps;primitives-generated\"");
|
||||||
puts("");
|
puts("");
|
||||||
|
|
Loading…
Reference in New Issue