Message ID | 20231010110714.749239-4-tvrtko.ursulin@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix various intel_gpu_top UI layout issues | expand |
Hi Tvrtko, On 2023-10-10 at 12:07:13 +0100, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > Padding the percentage bars and table columns with spaces happens quite a > lot so lets do better than putchar at a time. Have a table of visually > empty strings and build the required length out of those chunks. > > While at it, also move the percentage bar table into its function scope. > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > --- > tools/intel_gpu_top.c | 38 +++++++++++++++++++++++++++++++++----- > 1 file changed, 33 insertions(+), 5 deletions(-) > > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > index c5abd0c92155..472ce3f13ba9 100644 > --- a/tools/intel_gpu_top.c > +++ b/tools/intel_gpu_top.c > @@ -926,14 +926,40 @@ static void free_display_clients(struct igt_drm_clients *clients) > free(clients); > } > > -static const char *bars[] = { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" }; > - > static unsigned int n_spaces(const unsigned int n) > { > - unsigned int i; > + static const char *spaces[] = { > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > +#define MAX_SPACES 19 ----^^^^^^^^^^^^^^^^^^^^ imho better sizeof(spaces) > + }; > + unsigned int i, r = n; > > - for (i = 0; i < n; i++) > - putchar(' '); > + while (r) { > + if (r > MAX_SPACES) > + i = MAX_SPACES - 1; > + else > + i = r - 1; > + fputs(spaces[i], stdout); > + r -= i + 1; > + } > > return n; > } > @@ -941,6 +967,8 @@ static unsigned int n_spaces(const unsigned int n) > static void > print_percentage_bar(double percent, double max, int max_len, bool numeric) > { > + static const char *bars[] = > + { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" }; Please write it in one line or start with '= {' as checkpatch.pl is complaining here. Regards, Kamil > int bar_len, i, len = max_len - 2; > const int w = 8; > > -- > 2.39.2 >
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c index c5abd0c92155..472ce3f13ba9 100644 --- a/tools/intel_gpu_top.c +++ b/tools/intel_gpu_top.c @@ -926,14 +926,40 @@ static void free_display_clients(struct igt_drm_clients *clients) free(clients); } -static const char *bars[] = { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" }; - static unsigned int n_spaces(const unsigned int n) { - unsigned int i; + static const char *spaces[] = { + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", +#define MAX_SPACES 19 + }; + unsigned int i, r = n; - for (i = 0; i < n; i++) - putchar(' '); + while (r) { + if (r > MAX_SPACES) + i = MAX_SPACES - 1; + else + i = r - 1; + fputs(spaces[i], stdout); + r -= i + 1; + } return n; } @@ -941,6 +967,8 @@ static unsigned int n_spaces(const unsigned int n) static void print_percentage_bar(double percent, double max, int max_len, bool numeric) { + static const char *bars[] = + { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" }; int bar_len, i, len = max_len - 2; const int w = 8;