Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/4] tools/intel_gpu_top: Fix clients header width when no clients
@ 2023-10-11  8:38 Tvrtko Ursulin
  2023-10-11  8:38 ` [igt-dev] [PATCH i-g-t 2/4] tools/intel_gpu_top: Fix client layout on first sample period Tvrtko Ursulin
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Tvrtko Ursulin @ 2023-10-11  8:38 UTC (permalink / raw)
  To: igt-dev, Intel-gfx; +Cc: Tvrtko Ursulin

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Recent refactoring broke the clients header in cases when there are no
clients displayed. To fix it we need to account the width of the "NAME"
label.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
 tools/intel_gpu_top.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 10601e66b18e..60fe06917531 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -1967,6 +1967,8 @@ print_clients_header(struct igt_drm_clients *clients, int lines,
 		     int con_w, int con_h, int *class_w)
 {
 	struct intel_clients *iclients = clients->private_data;
+	const int max_name_len = clients->max_name_len < 4 ?
+				 4 : clients->max_name_len; /* At least "NAME" */
 
 	if (output_mode == INTERACTIVE) {
 		unsigned int num_active = 0;
@@ -1990,9 +1992,8 @@ print_clients_header(struct igt_drm_clients *clients, int lines,
 					num_active++;
 			}
 
-			*class_w = width =
-				(con_w - len - clients->max_name_len - 1) /
-				num_active;
+			*class_w = width = (con_w - len - max_name_len - 1) /
+					   num_active;
 
 			for (i = 0; i <= iclients->classes.max_engine_id; i++) {
 				const char *name = iclients->classes.names[i];
-- 
2.39.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 3/4] tools/intel_gpu_top: Optimise interactive display a bit
  2023-10-10 11:07 ` [igt-dev] [PATCH i-g-t 3/4] tools/intel_gpu_top: Optimise interactive display a bit Tvrtko Ursulin
@ 2023-10-10 16:35 Kamil Konieczny
  2023-10-11  8:28 ` [igt-dev] " Tvrtko Ursulin
  -1 siblings, 1 reply; 10+ messages in thread
From: Kamil Konieczny @ 2023-10-10 16:35 UTC (permalink / raw)
  To: igt-dev; +Cc: Intel-gfx, Tvrtko Ursulin

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
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 0/4] Fix various intel_gpu_top UI layout issues
@ 2023-10-10 11:07 Tvrtko Ursulin
  2023-10-10 11:07 ` [igt-dev] [PATCH i-g-t 3/4] tools/intel_gpu_top: Optimise interactive display a bit Tvrtko Ursulin
  0 siblings, 1 reply; 10+ messages in thread
From: Tvrtko Ursulin @ 2023-10-10 11:07 UTC (permalink / raw)
  To: igt-dev, Intel-gfx; +Cc: Tvrtko Ursulin

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

A collection of small fixes around various edge case scenarios.

Tvrtko Ursulin (4):
  tools/intel_gpu_top: Fix clients header width when no clients
  tools/intel_gpu_top: Fix client layout on first sample period
  tools/intel_gpu_top: Optimise interactive display a bit
  tools/intel_gpu_top: Handle narrow terminals more gracefully

 tools/intel_gpu_top.c | 66 +++++++++++++++++++++++++++++++++----------
 1 file changed, 51 insertions(+), 15 deletions(-)

-- 
2.39.2

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-10-12  8:07 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-11  8:38 [igt-dev] [PATCH i-g-t 1/4] tools/intel_gpu_top: Fix clients header width when no clients Tvrtko Ursulin
2023-10-11  8:38 ` [igt-dev] [PATCH i-g-t 2/4] tools/intel_gpu_top: Fix client layout on first sample period Tvrtko Ursulin
2023-10-11  8:38 ` [igt-dev] [PATCH i-g-t 3/4] tools/intel_gpu_top: Optimise interactive display a bit Tvrtko Ursulin
2023-10-11 12:40   ` Kamil Konieczny
2023-10-12  8:07     ` Tvrtko Ursulin
2023-10-11  8:38 ` [igt-dev] [PATCH i-g-t 4/4] tools/intel_gpu_top: Handle narrow terminals more gracefully Tvrtko Ursulin
2023-10-11 14:46 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/4] tools/intel_gpu_top: Fix clients header width when no clients Patchwork
2023-10-11 15:13 ` [igt-dev] ✓ CI.xeBAT: success " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2023-10-10 16:35 [igt-dev] [Intel-gfx] [PATCH i-g-t 3/4] tools/intel_gpu_top: Optimise interactive display a bit Kamil Konieczny
2023-10-11  8:28 ` [igt-dev] " Tvrtko Ursulin
2023-10-10 11:07 [igt-dev] [PATCH i-g-t 0/4] Fix various intel_gpu_top UI layout issues Tvrtko Ursulin
2023-10-10 11:07 ` [igt-dev] [PATCH i-g-t 3/4] tools/intel_gpu_top: Optimise interactive display a bit Tvrtko Ursulin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox