Optimization talks

I hope all is well, and I must say I am very excited for this game to be released. I was just looking through the forums and I have noticed that a lot of people are complaining about how bad the performance is. I have to wonder if these folks are new to RTS games or if it is really that bad. There has never been a current GEN RTS release and run supreme at time of launch. WC3 wasn’t 60 FPS, starcraft, starcraft 2, none of them. They were all absolutely brutal at launch. When a RTS game is “State of the art” or up to date with current PC hardware, it is brutal on said hardware. I understand the need to want better performance, but, it sounds like people need to turn settings down a bit. You have all these units that need their own textures, you have hero units with millions of polygons, the map and environment. If you have a mid range CPU, or GPU forget even trying to max it out. You can’t and shouldn’t compare what graphical settings you should be running to what you normally run in Steam games or WoW, that just isn’t how it works.

Game is not optimized trust me. I run at high fps but have frame drops and freezes.

5 Likes

What are your specs? Frame drops and running at high frames doesn’t go hand in hand. If you have frame drops your hardware is trying to catch up.

Ryzen 2600x and Gtx 1070 with 16Gb memory and Ssd. I run assassin’s Creed origins better which is a terribly optimized game and very heavy. Reforged keeps my CPU and VGA below 30%.

1 Like

Origins is also 2 years old, not compareable since it optimized to use all cores and threads. Also, CPU overall percentage isnt a good indicator. It depends on the core percentage and how many it uses. I can almost bet it isn’t using all 6 cores and 12 threads, but, if you checked the actual core and thread usage you will see the ones being used being hammered. If your GPU isn’t running at 100% it is being bottlenecked.

Have you played the actual beta? Game freezes when a new model is loading, like you build it for the first time or a new unit comes for the first time. It’s defo optimization problems. They already acknowledged that the game has perf issues. Check the knows issues list.

2 Likes

I looked at the thread and found this

"Additional info:
Maybe this has something to do with amd (ryzen?) cpus. I switched my video card to an old i5 and it’s not showing the same behavior, I’m also playing multiple games without restarting.
Rx580 video card
My main rig:
MSI b450 tomahawk
Ryzen 7 2700
16gb Ram

The i5 is this old thing, at least 6 years old… i slapped the card in and saw none of the freezing/stuttering."

I’ll record a video later to inspect the cpu behavior during the game.

When i say I run at high fps i mean 190+

Did you guys update the driver? I’m seriously getting no lag at all in regular matchups at max settings 144fps and it can’t just be me.

Those frame drops are not spec dependent since models are loaded “on the fly” from the disk right now, a sign of lack of optimization. Also the engine is probably running in debug mode to constantly collect data to send the devs which is hurting performance aswell. At release in my opinion perforamnce will be better: no lag upon loading models (e.g. when you want to build a new building) and the overall FPS will be 30% better. Its just my opinion tho.

2 Likes

I ran some tests. Looks like I was mistaken about GPU usage. So basically 30-40% CPU usage and 70-85% GPU usage. I see SSD spikes when building new stuff which means game is reading from the disk which is very bad during an actual game.

x_https://drive.google.com/open?id=1XBfYFpAulyxNJwsbIp9qYa_Rrz15jG-Z

2 Likes

You’re not the only one, I am having no issues at all. I am also running it on a 4TB HDD. So compared to and SSD and models loading, i should be having way more issues…

i7 6700k 1080 Ti.

-Shrugs-

I don’t know

Except Warcraft III has on average run at well over 300 FPS for a decade now. The issue is that the core game engine is not changing much at all, and only the graphics have been improved at the cost of 1/10 of the FPS. Additionally there are some people with high end hardware having issues running the game above 30 FPS, while others with lower end hardware are closer to 60.

Blizzard has openly admitted that optimization has not been a low priority until recently. I would not be surprised if there are huge improvements in performance.

Assassins Creed could be considered one of the best optimized games in recent times? It makes heavy use of multi core CPUs and does benefit from having 6 or 8 cores. Sure it does not scale much beyond that and like all games becomes single thread performance bound, but still that utilization is why it is still used for real-world benchmarking CPU and GPU performance.

Assuming you were referring to the modern entries in the series. Older ones will obviously not target 6-8 core CPUs.

Warcraft III only has 1 heavy thread. Hopefully reforged adds some graphic helpers but it is unlikely it will change anything beyond that.

You should consider upgrading your display from VGA to either Display Port or HDMI. VGA is heavily obsoleted now and should only really be used by retro enthusiasts.

If you meant GPU then low utilization will be due to a bottleneck else where. For example CPU single thread performance or thread joins.

Warcraft III has always done that. Just now the asset stalls would be 4-16 times longer because Warcraft III has to load 4-16 times as many texture files for the same unit compared with classic. I think units can have at least 4 texture layers (separate files) per texture, and many models have had their meshes split to use different textures (each potentially with 4 textures) to allow weapon and armor to be more easily modified by custom map makers in future.

One can combat this to some extent by using a SSD. If one is already using a SSD and has such bad asset stalls then Blizzard would need to optimize asset loading so that each required texture gets loaded in parallel so as to fully utilize the performance of modern SSDs.

Zen+ Ryzen processors were slow, but not that slow. They would certainly tie or beat a stock Intel processor from 6 or more years ago.

Possibly some sort of multi-threading issue? Maybe restrict Warcraft III reforged to only running on 4 cores 4 threads of a CPU.

This is not the first time for such a thing to exist. Many modern games suffer from this problem on Intel’s latest I5 9600K due to it being a 6 core 6 thread part. The same games run perfectly on the Ryzen 6 core processors (6 core 12 thread), on the I7 (8 core 8 thread) and I9 (8 core 16 thread) processors.

This introduces other variables because recording video itself is resource intensive. Even if GPU encoder acceleration is used, it still requires CPU I/O and memory bandwidth to move the results.

I think Warcraft III has always done this, as I recall asset stalls in such situation always being there. Just with the 4-16 times the texture count that can quickly add up to a good part of a second or more if installed on a mechanical drive. Each texture file requires at least 1 random read operation.

That is how RTS engines work. StarCraft II and HotS are no exception. StarCraft II even used to allow one to see how much time was lost recently due to asset stalls.

Appears likely GPU bound. Reaching 100% GPU utilization is near impossible even for the most optimized of games, especially if optimizing input latency, hence as GPU approaches 90% utilization one can start to consider it as the major bottleneck.

Another low thread count part. 4 core 8 thread. Another reason to try out if restricting Reforged to running on only 4 cores of a processor alters performance.

Of course original WC3 is going to run 300 FPS now, it’s from 2003, when it launched it ran like hot garbage maxed out unless you had the “Best” of it’s time.
I do, however, agree that AC Origins is one of the best optimized games ever hands down. But, he isn’t saying he has a VGA port, VGA stands for Video Graphics Adapter, AKA the hardware itself, not the port. I’m not even sure that 1070’s even shipped with a VGA port, which is the card he has. When I quoted that comment from the thread, I was pointing out Blizzard probably needs to set the code to run better on Ryzen. That is what we’re saying. Nobody was speaking of their “Performance compared to intel” However, I am running this game on an old 6700k, and a 1080 Ti utilizing an HDD. That last comment was merely stating I should be having more issues than an SSD, and I am having none at all. GPU’s reaching 90-100% usage means it is being utilized fully and that the CPU isn’t holding it back. You WANT your GPU to be the “Bottleneck” at or as close to 100% as possible… I can play almost anything and my 1080 Ti will be very close to 100% utilization at all times in 4k. GPU’s at 100% good, CPU’s at 100% NOT good.

I forgot to mention that i run the game in 1080p and it should run buttery smooth.

I didnt really see any difference in the performance while recording the video.

Actually it stands for Video Graphics Array ( VGA ).

VGA is referred to as an “Array” instead of an “adapter” because it was implemented from the start as a single chip

And to quote Wikipedia again…

Video Graphics Array ( VGA ) is a graphics standard for video display controller first introduced with the IBM PS/2 line of computers in 1987.

Hence VGA refers to the display controller which generates the VGA singles that the VGA connector carries. It does not specify any sort of graphic acceleration, just a way to output graphics.

Ryzen executes x86-64 code. There is no magic to make such code run faster on it. It can be compiled to be specifically optimized for such processors, but the gain is a few percent at the cost of regression on Intel CPUs and potentially even other generations of Ryzen processor.

I recall seeing people with modern Intel processors also having the same issue so I suspect it is a multithreading issue with high core count/thread count parts rather than AMD Ryzen CPUs specifically.

100% utilization of a single part of the GPU (since GPUs run different parts in parallel) is not possible without frame buffering. Frame buffering increases input lag. It is very difficult to balance the two which is why one can consider that a game is GPU bottlenecked around 90%. Better coded games get closer to 100%. A difference of 15% from 100% utilization is at most an increase of frame rate by 17%.

GPUs manage their memory controller separately from actual graphic/compute tasks, as exposed by modern graphics APIs like Vulkan. This means that it is possible to saturate the memory bandwidth of a GPU to 100%, causing a bottleneck, while shader/compute units are not at 100%. The opposite is also possible. Hence another reason why “100% utilization” is not really a viable metric for detecting a GPU bottleneck.

Textures and model are data. Code uses this data.

The only game I know of that stored such things as code was Age of Empires (I forget if 1 or 2). In order to get smooth terrain blending without dedicated graphic acceleration on the slow hardware of the time they created a format and system where by the blend pattern would be compiled into some sort of proprietary format which then would be compiled on load into dedicated blend functions which could be called when drawing the graphics.

I never said 100% usage is a bad thing. I was saying that it is near impossible for games to achieve without buffering command queues (which I did say incorrectly above) which negatively impacts responsiveness. Seeing 85-95% GPU usage could be a sign of a GPU bottleneck as the game might not be able to push the GPU to 100% utilization.

1 Like

But his GPU was hitting near 85% which shows very high utilization and might indicate a GPU related bottleneck.

As I have been saying, simple utilization percentages are not a direct gauge for a bottleneck. An application might only load a CPU to less then 20% but still be CPU bottlenecked because its single task is scheduled on the CPU for 100% of the time and only uses 1 or 2 threads. Making this even more confusing is that CPU usage treats SMT threads as cores when it comes to reporting utilization, so a processor may report that it is 50% utilized when the actual computational resources are 75% or more utilized due to how SMT works.

Except for that to happen one must identify what is making it run slowly to start with. The compilers used already generate code that runs efficiently on both Intel and AMD CPUs. Intel and AMD make sure of that by optimizing their processors around the needs of compiled code.

I still suggest people try limiting the thread affinity of the Reforged beta to 4-8 threads in case that makes a difference. If it does then that can be provided as feedback for the developers to look into improving.

Have an Elsa moment and let it go.

1 Like