Operating System: Windows 7
Render System: Gl3+
Hardware: Core i7 6700, GTX 1070
After doing a bunch of optimizations on my shaders, I've been able to drastically reduce the GPU usage on my game(~6ms according to nSight)
However, Root::renderOneFrame still takes ~10ms, which I think is quite high.
Note: to have stable timings while profiling, I temporarily moved most of Worker thread tasks to the main thread, which doesn't reduce overall performances for my "simple" scene, and even improves them a little bit
Here is a picture from Optick showing one frame:
_updateAllRenderTargets takes 7.556ms in total here.
If we only look at the part I called "main scene" in the picture:
- 99 draw calls
- RenderPhase02: 1.938ms
- _renderVisibleObjects: 1.155ms .Doing more precise profiling tells me RenderSystem::_setPass takes around 30% of the time, rest is SceneManager::renderSingleObject
- If I comment the ultimates glDraw**** calls in RenderSystem::_render, I save 0.5ms.
GL State Cache Manager is enabled, disabling it slightly reduces the performances, nothing magical here.
Compositors seems to take more CPU time than I initially expected too.
Am I doing something wrong somewhere or does these timings looks normal to you ?