aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Grois <andi@grois.info>2018-03-17 22:39:45 +0100
committerAndreas Grois <andi@grois.info>2018-03-17 22:39:45 +0100
commitf3f67518d7eb74c868b523851ec482cd2177c3ce (patch)
treeaf2a9203a1f04196da903608945607079ae79f73
parentc2018354129a4a6eff1649eaba4d99756b537ed3 (diff)
Adjust default workgroup sizes to better match recommended values.
AMD recommends a local workgroup size of 256.
-rw-r--r--BuddhaTest/include/Helpers.h8
-rw-r--r--BuddhaTest/src/Helpers.cpp10
2 files changed, 9 insertions, 9 deletions
diff --git a/BuddhaTest/include/Helpers.h b/BuddhaTest/include/Helpers.h
index a585b88..d89c97e 100644
--- a/BuddhaTest/include/Helpers.h
+++ b/BuddhaTest/include/Helpers.h
@@ -38,12 +38,12 @@ namespace Helpers
unsigned int orbitLengthGreen = 100;
unsigned int orbitLengthBlue = 1000;
- unsigned int localWorkgroupSizeX = 1024;
- unsigned int localWorkgroupSizeY = 1;
+ unsigned int localWorkgroupSizeX = 16;
+ unsigned int localWorkgroupSizeY = 16;
unsigned int localWorkgroupSizeZ = 1;
- unsigned int globalWorkGroupSizeX = 1024;
- unsigned int globalWorkGroupSizeY = 1;
+ unsigned int globalWorkGroupSizeX = 64;
+ unsigned int globalWorkGroupSizeY = 64;
unsigned int globalWorkGroupSizeZ = 1;
unsigned int targetFrameRate = 60;
diff --git a/BuddhaTest/src/Helpers.cpp b/BuddhaTest/src/Helpers.cpp
index ed895c4..5385866 100644
--- a/BuddhaTest/src/Helpers.cpp
+++ b/BuddhaTest/src/Helpers.cpp
@@ -356,12 +356,12 @@ namespace Helpers
"--orbitLengthRed [integer] : Maximum number of iterations for escaping orbits to color red. 10 by default." << std::endl <<
"--orbitLengthGreen [integer] : Maximum number of iterations for escaping orbits to color green. 100 by default." << std::endl <<
"--orbitLengthBlue [integer] : Maximum number of iterations for escaping orbits to color blue. 1000 by default." << std::endl <<
- "--localWorkgroupSizeX [integer] : How \"parallel\" the computation should be. Maximum possible value depends on GPU and drivers. The default is 1024. Values up to 1024 are guaranteed to work." << std::endl <<
- "--localWorkgroupSizeY [integer] : How \"parallel\" the computation should be. Maximum possible value depends on GPU and drivers. The default is 1. Values up to 1024 are guaranteed to work." << std::endl <<
- "--localWorkgroupSizeZ [integer] : How \"parallel\" the computation should be. Maximum possible value depends on GPU and drivers. The default of 1. Values up to 1024 are guaranteed to work." << std::endl <<
+ "--localWorkgroupSizeX [integer] : How \"parallel\" the computation should be. Maximum possible and optimal value depends on GPU and drivers. The default is 16. Values up to 1024 are guaranteed to work." << std::endl <<
+ "--localWorkgroupSizeY [integer] : How \"parallel\" the computation should be. Maximum possible and optimal value depends on GPU and drivers. The default is 16. Values up to 1024 are guaranteed to work." << std::endl <<
+ "--localWorkgroupSizeZ [integer] : How \"parallel\" the computation should be. Maximum possible and optimal value depends on GPU and drivers. The default of 1. Values up to 64 are guaranteed to work." << std::endl <<
"\tNOTE: There's also a limit on the product of the three local workgroup sizes, for which a number smaller or equal to 1024 is guaranteed to work. Higher numbers might work and run faster. Feel free to experiment." << std::endl <<
- "--globalWorkgroupSizeX [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 1024." << std::endl <<
- "--globalWorkgroupSizeY [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 1." << std::endl <<
+ "--globalWorkgroupSizeX [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 64." << std::endl <<
+ "--globalWorkgroupSizeY [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 64." << std::endl <<
"--globalWorkgroupSizeZ [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 1." << std::endl <<
"--targetFrameRate [integer] : The number of iterations per frame will dynamically adjust to approximately reach this framerate. Default: 60." << std::endl <<
"--ignoreMaxBufferSize [0,1] : If set to 1, a failed maximum buffer size check is not treated as error. Some graphics drivers report lower values than their absolute limit. Do this on your own risk, though." << std::endl;