diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2015-04-13 19:47:14 +0000 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2015-04-13 14:16:20 -0700 |
commit | 42e58822ce1d9237f4ce1693976dbc27107d30cd (patch) | |
tree | a32b11478c37bfc080bd4a32420f0f525763a338 | |
parent | 4ed9fa04cf125b63db0555c5af1a96f5061d52d4 (diff) |
run.c: Add -1 option for disabling multi-threading
Reviewed-by: Matt Turner <mattst88@gmail.com>
-rw-r--r-- | run.c | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -276,7 +276,9 @@ const struct platform platforms[] = { void print_usage(const char *prog_name) { fprintf(stderr, - "Usage: %s [-p <platform>] <directories and *.shader_test files>\n", + "Usage: %s [-p <platform>] <directories and *.shader_test files>\n" + "Other options: \n" + " -1 Disable multi-threading\n", prog_name); } @@ -286,7 +288,9 @@ main(int argc, char **argv) int opt; - while((opt = getopt(argc, argv, "p:")) != -1) { + max_threads = omp_get_max_threads(); + + while((opt = getopt(argc, argv, "1p:")) != -1) { switch(opt) { case 'p': { const struct platform *platform = NULL; @@ -309,6 +313,9 @@ main(int argc, char **argv) setenv("INTEL_DEVID_OVERRIDE", platform->pci_id, 1); break; } + case '1': + max_threads = 1; + break; default: fprintf(stderr, "Unknown option: %x\n", opt); print_usage(argv[0]); @@ -487,7 +494,6 @@ main(int argc, char **argv) ftw(argv[i], gather_shader_test, 100); } - max_threads = omp_get_max_threads(); current_shader_names = calloc(max_threads, sizeof(const char *)); if (signal(SIGABRT, abort_handler) == SIG_ERR) @@ -495,7 +501,7 @@ main(int argc, char **argv) if (signal(SIGSEGV, abort_handler) == SIG_ERR) fprintf(stderr, "WARNING: could not install SIGSEGV handler.\n"); - #pragma omp parallel if(shader_test_length > max_threads) + #pragma omp parallel if(max_threads > 1 && shader_test_length > max_threads) { const char *current_shader_name; unsigned shaders_compiled = 0; |