Major FPS drop and Heavy CPU strain when Dynamic Cam is enabled under CPU Bottleneck
V1rtuou5 opened this issue · 6 comments
Dynamic Cam is causing Massive FPS reduction when under a CPU bottleneck in comparison to typical addon performance hit. Under my careful observation, DC causes an insane 21% FPS hit when the CPU is limiting the FPS, a 37 FPS drop in my case!
I'm linking screenshots showing that ONLY DC is enabled during testing and that GPU usage % is under the 90% threshold therefore proving it's a CPU bottleneck.
Such a wonderful addon that I can't play without, but sadly needs drastic performance optimization, I believe in you!
So, I discovered the "overclock" mode of my screen, which allowed me to go up to 160 FPS. However, I can achieve this FPS regardless of whether DynamicCam is enabled or not. Maybe my CPU is too powerfull to become the bottle-neck at 160 FPS? I have an "Intel(R) Xeon(R) W-11855M CPU @ 3.20GHz". Or it has to do with your specific DynamicCam settings. How many DynamicCam situations do you have enabled? Could you try what happens if you disable these?
Wow, this is fascinating. It is true that DynamicCam does some calculations on every frame update. E.g. making adjustments to other variables according to the current camera zoom level. I can have a look at the respective functions and see if I can cut some corners. But I am not sure how to even test it. My monitor can "only" display 144 FPS. So how can I even reach the state where the CPU becomes the bottle neck... (?)
I made sure to set everything to default and the performance drop is still there. To see how much the addon limits the cpu you'll want to disable anything that caps FPS such as Vsync, MSI Afterburner / Rivatuner FPS cap etc.
Make sure your GPU usage % isn't around 90% or higher. If you're FPS is not limited by CPU then turn up View distance, environment distance and shadows since these hit CPU hard.
You will also need a software to closely monitor FPS, GPU usage, and frametimes while in-game. The gold standard is MSI Afterburner https://www.msi.com/Landing/afterburner/graphics-cards
If you want I can assist setting it up properly for you over a Discord call to make sure testing parameters are proper. Discord is V1rtuou5#2213
Thanks for your tipps! With vsync disabled, I managed to get max FPS regardless of my monitor's refresh rate.
I found some graphics settings that gave me ~90% GPU usage. And in fact I can now see a difference between DC enabled (~130 FPS) and DC disabled (~140 FPS).
I had an initial look at what was my first suspect. Maybe you can do the same in your setup and tell me your findings:
In the DC code, look into the files
MouseZoom.lua
UiHideModule.lua
Core.lua
There you will find several lines which include the string ':SetScript("OnUpdate",'
Comment these lines (preceede with --) and /reload the WoW UI.
Do you see a difference?
We identified the issue being caused by using CreateFrame("PlayerModel"):
https://www.wowinterface.com/forums/showthread.php?t=59749
This was only needed for advanced zooming.
It was made optional since version 2.6.0.