mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-11 01:46:14 +00:00
Limit printing to terminal height in intel_gpu_top.
When using intel_gpu_top in a small terminal, the most important information (ring idle/busy units) scrolls off the top of the screen. This patch limits the number of lines printed to the terminal height so that the most idle units (at the bottom) are truncated instead. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
94a180c0c9
commit
b4b8aafc61
@ -29,6 +29,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <err.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include "intel_gpu_tools.h"
|
||||
#include "instdone.h"
|
||||
|
||||
@ -257,6 +258,13 @@ int main(int argc, char **argv)
|
||||
qsort(top_bits_sorted, num_instdone_bits,
|
||||
sizeof(struct top_bit *), top_bits_sort);
|
||||
|
||||
/* Limit the number of lines printed to the terminal height so the
|
||||
* most important info (at the top) will stay on screen. */
|
||||
unsigned short int max_lines = -1;
|
||||
struct winsize ws;
|
||||
if (ioctl(0, TIOCGWINSZ, &ws) != -1)
|
||||
max_lines = ws.ws_row - 6; /* exclude header lines */
|
||||
|
||||
printf("%s", clear_screen);
|
||||
|
||||
print_clock_info();
|
||||
@ -275,11 +283,13 @@ int main(int argc, char **argv)
|
||||
if (top_bits_sorted[i]->count < 1)
|
||||
break;
|
||||
|
||||
percent = top_bits_sorted[i]->count / SAMPLES_TO_PERCENT_RATIO;
|
||||
len = printf("%30s: %3d%%: ",
|
||||
top_bits_sorted[i]->bit->name,
|
||||
percent);
|
||||
print_percentage_bar (percent, len);
|
||||
if (i < max_lines) {
|
||||
percent = top_bits_sorted[i]->count / SAMPLES_TO_PERCENT_RATIO;
|
||||
len = printf("%30s: %3d%%: ",
|
||||
top_bits_sorted[i]->bit->name,
|
||||
percent);
|
||||
print_percentage_bar (percent, len);
|
||||
}
|
||||
|
||||
top_bits_sorted[i]->count = 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user