How to use all CPU cores for Camera.Render with Multi-threaded Graphics Jobs? Optimisations - not working?
How to use Multi-threaded Graphics Job optimisations?
Hi everyone,
I have a project (less of a game, more of an application) which uses many tens of cameras in a scene, all rendering at one time. (Don't ask why, it has to be this way!)
Needless to say, when running the application, this nearly maxes-out one CPU core since the rendering pipeline is single-threaded. It drops the frame rate very low as a result. (GPU, memory etc are well below 100% load - the CPU is the bottleneck here)
I was greatly relieved to see that Unity has an option called "Graphics Jobs (experimental)" which is specifically designed to split the rendering across multiple threads, and as such, multiple cores.
However, with this option enabled and DirectX12 set at the top of the graphics APIs list, I would expect that the CPU can now be fully utilised, namely all CPU cores can be engaged in active rendering. However, it seems to still be that the application is still only utilising around 40% of my CPU's potential whilst delivering a low frame rate. Surely, it should only drop the frame rate once it has maxed out the CPU? It doesn't seem that the individual cores are being used any differently. Why can I not maximise the output frame-rate by utilising close to 100% of all cores on my CPU (in total, including any additional programs which are running)?
Essentially I would like to know how I can get Unity to use all of my CPU cores to their full potential so as to get as high a frame rate as possible whilst having as many cameras in my scene at once... ...I thought Graphics Jobs would solve this? ...Unless I'm using them incorrectly or not using the correct combination of settings?
As an aside, my CPU is a i7-4790 @3.6ghz and my GPU is a 980Ti using DX12, 32gb ram
Your answer
Follow this Question
Related Questions
Control and Render massive sprites in a single Gameobject 0 Answers
Using graphics.DrawMeshNow to update a render texture 0 Answers
Draw multiple material using Graphics.DrawMesh 0 Answers
DrawMeshInstanced has bad perfomance on some Android devices 0 Answers
Particles invisible in bottom half of game viewport 0 Answers