summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2015-04-13 19:47:14 +0000
committerMatt Turner <mattst88@gmail.com>2015-04-13 14:16:20 -0700
commit42e58822ce1d9237f4ce1693976dbc27107d30cd (patch)
treea32b11478c37bfc080bd4a32420f0f525763a338
parent4ed9fa04cf125b63db0555c5af1a96f5061d52d4 (diff)
run.c: Add -1 option for disabling multi-threading
Reviewed-by: Matt Turner <mattst88@gmail.com>
-rw-r--r--run.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/run.c b/run.c
index 222c6a1..a995ba7 100644
--- a/run.c
+++ b/run.c
@@ -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;