diff options
author | Steven Toth <[email protected]> | 2016-09-29 08:11:00 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2016-09-29 17:51:15 -0600 |
commit | 1d466b9b04662d41a403ea8fd617a5365750b1de (patch) | |
tree | 80c131f35a5c2a06e4541eeb995e77924df9380a /src/gallium/auxiliary/hud/hud_context.c | |
parent | 3abe68b8282496688186157b51da5600ac540906 (diff) |
gallium/hud: Add power sensor support
Implement support for power based sensors, reporting units in
milli-watts and watts.
Also, minor cleanup - change the related if block to a switch.
Tested with two different power sensors, including the nouveau
'power1' sensors on a GTX950 card.
Signed-off-by: Steven Toth <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/hud/hud_context.c')
-rw-r--r-- | src/gallium/auxiliary/hud/hud_context.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c index a82cdf273e0..34454888831 100644 --- a/src/gallium/auxiliary/hud/hud_context.c +++ b/src/gallium/auxiliary/hud/hud_context.c @@ -261,6 +261,7 @@ number_to_human_readable(uint64_t num, uint64_t max_value, static const char *temperature_units[] = {" C"}; static const char *volt_units[] = {" mV", " V"}; static const char *amp_units[] = {" mA", " A"}; + static const char *watt_units[] = {" mW", " W"}; const char **units; unsigned max_unit; @@ -301,6 +302,10 @@ number_to_human_readable(uint64_t num, uint64_t max_value, max_unit = ARRAY_SIZE(hz_units)-1; units = hz_units; break; + case PIPE_DRIVER_QUERY_TYPE_WATTS: + max_unit = ARRAY_SIZE(watt_units)-1; + units = watt_units; + break; default: if (max_value == 100) { max_unit = ARRAY_SIZE(percent_units)-1; @@ -1067,6 +1072,11 @@ hud_parse_env_var(struct hud_context *hud, const char *env) SENSORS_CURRENT_CURRENT); pane->type = PIPE_DRIVER_QUERY_TYPE_AMPS; } + else if (sscanf(name, "sensors_pow_cu-%s", arg_name) == 1) { + hud_sensors_temp_graph_install(pane, arg_name, + SENSORS_POWER_CURRENT); + pane->type = PIPE_DRIVER_QUERY_TYPE_WATTS; + } #endif else if (strcmp(name, "samples-passed") == 0 && has_occlusion_query(hud->pipe->screen)) { |