Actually Grimrock 2 seems to be multi-threaded.
I created a simple console application that checks how
many threads a specific process is using.
The rule of thumb is easy; if a process is using
more threads than initial system is providing, then this process is
multi-threaded.
For example, my
Intel Core i3 370M has 2 physical cores but Windows are reporting 4 cores.
Well, i don't really have 4 cores but
4 threads and windows counts them as 4 cores.
In fact if you call that piece of Windows API code:
Code: Select all
SYSTEM_INFO sysinfo;
GetSystemInfo( &sysinfo );
// sysinfo.dwNumberOfProcessors -> gives me 4
So, first point is that what Windows are showing on
Performance page is not really the total Core usage per core,
but rather the Total Thread usage per
Thread. This is due to
Hyper-Threading.
As i said, i created a console application which is hard-coded to seek out
grimrock2.exe and then traversing all threads the game is using. Based on the fact: if the
number of threads used > total threads of system (cpu-wise), then we can be sure the process is
multi-threaded.
TESTS
// output 1: (my OpenGL application, named CROSS.exe, using no multi-threading at all) //////////////////////
Code: Select all
CPU/Thread number for Intel(R) Core(TM: 4
Printing threads for Pid: 83768 (CROSS.exe)
Thread ID: 83730
Thread ID: 83354
Thread ID: 83410
Thread ID: 83220
End printing threads for Pid: 83768
Conclusion: Since my system providing 2 physical cores and 4 threads and my CROSS.exe using 4 threads, my application
is not multi-threaded, no matter how high the usage is per-thread; this is OS just doing it's job.
// output 2: (grimrock2.exe) ///////////////////////////////////////////////////////////////
Code: Select all
CPU/Thread number for Intel(R) Core(TM: 4
Printing threads for Pid: 89268 (grim
Thread #0 with ID: 90468
Thread #1 with ID: 88984
Thread #2 with ID: 90656
Thread #3 with ID: 86948
Thread #4 with ID: 89388
Thread #5 with ID: 47916
End printing threads for Pid: 89268
Conclusion: Grimrock 2 indeed is a multi-threaded application since it
uses more threads than system providing (4), although i suppose the bottleneck is low-GPUs.
I uploaded my application (with source for anyone's allergic to .exe)
here