Hi,
Using Visual Studio 2015 and the concurrency visualizer plugin (which is a nice tool btw) I found that while my app has bad perf (ie 10 fps), all threads (they are 4 of them) are mostly idling.
The rendering thread is spending 24 ms emitting draw command (with dx12), then for 80 ms it mostly sleeps, periodically waking up (likely to know if synchronisation did occur). The GPU workload is small even if it takes 24 ms to submit a command list and complete almost immediatly.
The 3 others threads are idling, periodically waking up too.
Is there an easy way to determine which part of the code is making a thread idle ? Since this is a big project, and involves runtime compiled code, wrapping every std::mutex/std::sleep/std::wait_for inside a logging function is quite difficult (likely to miss a wait mechanism, ...).
Since there are tools that recognises when a thread is idling I would expect there are tools that would help to know what makes a thread idle ?
Regards, Vincent.