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

Default mode is to aggreate engines per class but some users would prefer
to be able to start in physical engine mode too.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
Cc: Dmitry Rogozhkin <dmitry.v.rogozh...@intel.com>
Reviewed-by: Kamil Konieczny <kamil.koniec...@linux.intel.com>
---
 man/intel_gpu_top.rst | 3 +++
 tools/intel_gpu_top.c | 9 +++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/man/intel_gpu_top.rst b/man/intel_gpu_top.rst
index caf0a9f9432c..69834756b81e 100644
--- a/man/intel_gpu_top.rst
+++ b/man/intel_gpu_top.rst
@@ -49,6 +49,9 @@ OPTIONS
 -d
     Select a specific GPU using one of the supported filters.
 
+-p
+   Default to showing physical engines instead of aggregated classes.
+
 RUNTIME CONTROL
 ===============
 
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index c4d98de4fe31..e91b47baf72b 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -1268,6 +1268,7 @@ usage(const char *appname)
                "\t[-s <ms>]       Refresh period in milliseconds (default 
%ums).\n"
                "\t[-L]            List all cards.\n"
                "\t[-d <device>]   Device filter, please check manual page for 
more details.\n"
+               "\t[-p]            Default to showing physical engines instead 
of classes.\n"
                "\n",
                appname, DEFAULT_PERIOD_MS);
        igt_device_print_filter_types();
@@ -2446,6 +2447,7 @@ int main(int argc, char **argv)
 {
        unsigned int period_us = DEFAULT_PERIOD_MS * 1000;
        struct clients *clients = NULL;
+       bool physical_engines = false;
        int con_w = -1, con_h = -1;
        char *output_path = NULL;
        struct engines *engines;
@@ -2456,7 +2458,7 @@ int main(int argc, char **argv)
        char *codename = NULL;
 
        /* Parse options */
-       while ((ch = getopt(argc, argv, "o:s:d:JLlh")) != -1) {
+       while ((ch = getopt(argc, argv, "o:s:d:pJLlh")) != -1) {
                switch (ch) {
                case 'o':
                        output_path = optarg;
@@ -2467,6 +2469,9 @@ int main(int argc, char **argv)
                case 'd':
                        opt_device = strdup(optarg);
                        break;
+               case 'p':
+                       physical_engines = true;
+                       break;
                case 'J':
                        output_mode = JSON;
                        break;
@@ -2508,7 +2513,7 @@ int main(int argc, char **argv)
        case INTERACTIVE:
                pops = &term_pops;
                interactive_stdin();
-               class_view = true;
+               class_view = !physical_engines;
                break;
        case STDOUT:
                pops = &stdout_pops;
-- 
2.34.1

Reply via email to