This can be used to test multiple GPUs

Signed-off-by: Alex Xie <[email protected]>
---
 tests/amdgpu/amdgpu_test.c | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/tests/amdgpu/amdgpu_test.c b/tests/amdgpu/amdgpu_test.c
index e42ef9d..2437db4 100644
--- a/tests/amdgpu/amdgpu_test.c
+++ b/tests/amdgpu/amdgpu_test.c
@@ -108,12 +108,14 @@ static void display_test_suites(void)
 
 
 /** Help string for command line parameters */
-static const char usage[] = "Usage: %s [-hl] [<-s <suite id>> [-t <test 
id>]]\n"
-                               "where:\n"
-                               "       l - Display all suites and their 
tests\n"
-                               "       h - Display this help\n";
+static const char usage[] =
+       "Usage: %s [-hl] [<-s <suite id>> [-t <test id>]] [-d <device_id>]\n"
+       "where:\n"
+       "       l - Display all suites and their tests\n"
+       "       d - Choose which device to run tests\n"
+       "       h - Display this help\n";
 /** Specified options strings for getopt */
-static const char options[]   = "hls:t:";
+static const char options[]   = "hls:t:d:";
 
 /* Open AMD devices.
  * Return the number of AMD device openned.
@@ -238,6 +240,7 @@ int main(int argc, char **argv)
        int i = 0;
        int suite_id = -1;      /* By default run everything */
        int test_id  = -1;      /* By default run all tests in the suite */
+       int device_id = 0;      /* By default run most tests on device 0 */
        CU_pSuite pSuite = NULL;
        CU_pTest  pTest  = NULL;
 
@@ -266,6 +269,9 @@ int main(int argc, char **argv)
                case 't':
                        test_id = atoi(optarg);
                        break;
+               case 'd':
+                       device_id = atoi(optarg);
+                       break;
                case '?':
                case 'h':
                        fprintf(stderr, usage, argv[0]);
@@ -283,6 +289,15 @@ int main(int argc, char **argv)
                exit(EXIT_FAILURE);
        }
 
+       if (device_id) {
+               /* Most tests run on device 0.
+                * Swap the chosen device to device 0.
+                */
+               i = drm_amdgpu[0];
+               drm_amdgpu[0] = drm_amdgpu[device_id];
+               drm_amdgpu[device_id] = i;
+       }
+
        amdgpu_print_devices();
 
        /* Initialize test suites to run */
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to