Patch/guide for CPU speed FPS (If you play competitively click this)

Part 1 applies to AMD processor users only:

Explanation:
Basically the game uses intels compiler which will penalize AMD processors unless you patch the game using the directions below. The menu performance otherwise is very sluggish and the general in game performance is worse without patching it. Some other programs benefit from this patch, like carnivores reborn which now allows a much higher LOD on this ryzen 3700X 4.35Ghz 1:1ed 3733 CAS 16 1T (Virginized tertiaries).

More information:

The actual instructions:
[ / w w w . anger . o r g /optimize/intel_dispatch_patch.zIp ]( h t t p s : / / w w w .agner. o r g /optimize/intel_dispatch_patch.zip)

1: Download from the link that he shows in the video I linked above on YouTube around 11 minutes.

2: Google visual studios 2017 and download that too. Dont worry about the 30 day time out. The feature we are using is still fully accessible for free.

3: Open the game followed by opening the patch. The green “attach…” area click and locate the game instance in the menu.

4: Run intel_mkl_cpuid_patch.c. The game will crash as a result of being patched. That’s all there is to it. You can play online without worrying about anti cheats just fine.

It worked easily for StarCraft 2. The game is SIGNIFICANTLY faster because its now using the SSE3 instruction set. Some applications it may not without running visual studios as an admin. If you have to do this with any application simply open a new project when it offers to reboot it under admin, and look for c#, then go to open file and find intel_mkl_cpuid_patch.c. From there go to “debug” and find “attach to process”. From there do the same thing and it will work.

(Edit: I recently discovered there is a change in the code, SC2 can now use 4 threads!)

Part 2 applies to both intel and AMD:
Requirements are 6 hardware threads or more. This can include 4 core i7s, or ryzens with hyperthreading.

1: Download process lasso. Find StarCraft II as its running in the menu and change the CPU affinity using the chart below.

2:
6 core i5 (…core 0, 1, 2, 3)
4 core 8 thread i7 (…0, 2, 4, 6)
6 core 12 thread i7 (0, 2, 4, 6)
10 core 20 thread i9 (0, 2, 4, 6)

The pattern if your CPU isn’t listed is a question of, does it have hyperthreading.

6 core Phenom (0, 2, 4, 6)
FX series (0, 2, 4, 6)
Ryzen series (0, 2, 4, 6)

FX series shares cache (So you want to avoid sharing that resource when possible) like hyperthreading does, and ryzen actually has hyperthreading. That’s it, you are now done. On ryzen 2 with 8 cores, I tried splitting the game to cores 0, 2, 8, 10 as the 16mb cache pool is split. The game performance tanked compared to just using 0, 2, 4, 6 so just stick with the above.

The TLDR version of Part 2 (Read at your own risk):
This guide is meant for people with 6 CPU cores or more. It also focuses solely on the primary bottleneck in the game and will not waste your time walking you through how to change graphics settings because all of you reading this are perfectly capable of testing that per machine oneself without me getting in the way as i could only do.

Starcraft 2 only uses 4 threads (At some point it was only 2!) at any one given time. If for example you have a 6 core processor like some i5’s, microsofts thread scheduler will juggle the game across all 6 cores. However under CPU bound scenarios, which starcraft 2 is very CPU limited. This is made worse with an i7 with 4 additional logical core handled threads.

Hyperthreading is basically a physical piece of hardware like a texas instruments calculator crunching math, sharing cache with a main core, and a floating point unit. The reason people disable hyperthreading on i7s and get better performance a lot of the time, is because most game engines only use 4 threads, and trying to use more only results in performance degradation. Only a handful of games actually can take advantage of hyperthreading basically speaking. Examples: Witcher 3, Crysis 3, Battlefield 4, DX12, Vulkan. Logical processors, the hardware source of hyperthreading perform about around 25% of a full fledged core. It only makes sense to use them for games, if the game is programmed to use more threads asynchronously without penalization or if you can outright avoid using weaker logical cores altogether when it doesn’t serve you. Most games not utilizing this i7 feature, is precisely why for years an i5 was enough for gaming. That was basically taken as wisdom, along with specific ram speeds that generally ignored overclocked memory controllers faster ram could interface with. With the public mind you tend to get approximations, not specifics.

Developers do not list the maximum number of threads that can be taken advantage of before inducing needless juggling which leads to level 3 cache being dumped as information is passed off between different cores. This is called context switching. Microsofts software engineers for years have taken the “its good enough” approach to programming thread behavior, so to get better results you need to understand whats happening and take matters into ones own hands to get better performance.

What can be done to get better performance in starcraft 2? Well you can overclock the CPU cores. Everyone knows this… The cache and integrated memory controller however are pretty esoteric. Ram frequency, main ram timings, tertiary timings can be set using online charts. This done correctly is a tedious process. Crashing a machine by finding overclock limits will lead to silent data corruption nooblings. It can even corrupt a boot partition! You can also go insane lengths to trim overhead of the OS, by trimming bloat in every possible way short of hacking the kernal and reverse engineering it to detangle the excessive dependencies and often needless processes otherwise interminable. Cortana is that you? THIS HOWEVER IS NOT THE SCOPE OF THIS INFORMATION PIECE. The main focus is as plug and play with limited input as possible. You realistically cant expect the average person even confronted with the path to do so, to dig through a task scheduler, or regedit, or other drudgery because its a legitimate painful complex long process with opportunities for instances of service and task with diverse hardware, for things I cannot reasonably foresee. To take it to the truly polished conclusion (Raw speed) you need passion, dedication, and some level of intuition having had a bit of dirt under your nails with some help. For most of you dont worry about all that fine detail. Lets keep with things as simple as possible.

Download process lasso to take control of your CPU threads.

Playing with priority can introduce more problems than will be worthwhile with respect to the average person who understandably wont be willing to test every little change. A lot of them are program dependent. What matters more, is knowing what CPU architecture (core count, logical core presence) you have relative to the games needs to avoid context switching. In fact I do not recommend anyone disable hyperthreading in bios as this software used correctly makes it obsolete at best, and wasteful at worst as the logical cores can still at least help out by handling background operating system overhead instead of sometimes leaching from the same cores the game has to use. Learn what a CPU demanding program can take advantage of by benchmarking it with different settings especially at lower CPU clocks to introduce a visible scaling performance curve. Most of the time experience will be of sufficient expectation to get the desired result without really having to do this so you can get familiar with this for future optimization targets. Once you know it, you know it, like 1+1.

A 4 core 8 thread i7 like this machine will make the most of the hardware if starcraft 2 is set to core 0, 2, 4, and 6. This is because core 1 and core 3 are logical cores, weaker hardware, and is to be avoided. Ryzen CPUs with SMT will require the same settings as an i7. If you have a 6 core i5; core 0, 1, 3, 4 would be perfectly fine as there are no logical cores. If you have less than 6 cores there will be no gains to be had. The reason the game in old benchmarks performed better on 3 core over 2 core processors in old benchmarks is even with context switching, the OS in itself is a leach for CPU cycles competing with limited original 2 core resources the game needed. As core count goes up, the penalization increases.

Another trick you can do especially if you purpose built a machine for starcraft 2 like I did, is take the entire array of background listed services from process lassos UI, checking periodically to permanently assign as they semi randomly pop up and will not be necessarily running all the time, and put them on alternate cores that are not going to be handling the games 2 threads. How these are linked is in a staggered order. Example: Core 0 is a full fledged core, core 1 is the weaker logical core dependent, with core 2 being a fully realized core with core 3 being a logical core, and so on. If you have an 6 thread or more CPU, you can easily avoid giving work to the the logical cores sharing resources with the full fledged cores processing the game threads. This by far is the most profound change one can make to hasten frame consistency where CPU’s struggle. I recommend you disable process lassos logging completely as its just increasing overhead.

Congratulations! You now have within the games limits of coding the maximal amount of resources isolated for the game itself.

This game in numerous scenarios will tank under 60hz no matter how potent your CPU is. Ive bought binned high end cutting edge consumer market CPUs and no matter what, if the game drops even 1 frame, to make the GPU monitor refresh synchronous, there will be frame duplication. Also called stutter. Essentially 1 frame drop will become 2 at the least to mathematically fit into the refresh set limit as the monitor doesnt just magically stop pumping more frames than the render can actually dish out. This is why G sync was marketed using starcraft 2 in one of its demos. To get a smooth experience you will need G sync or Freesync.

How do I test the end result? Well you got yourself some replays right? Pull up your framerate using fraps then use a 4 vs 4 replay and any locked camera position of a player (You see exactly what they saw during that match) and turn off ragdolls as they are not purely deterministic. I should also mention the before and after of speeding up the replay will stand out very obviously. It can actually save you time if you are one of those players that looks back at replays trying to improve.

Edit: Recently for whatever reason the game has begun to hang with the waiting for program to respond nonsense post in game going back into the menus. Its hit or miss if it comes back eventually or outright crashes. The solution is put StarCraft 2 on high priority instead of normal. It works perfectly again.

1 Like

Blizzard should consider a vulkan extension like crisis remaster used as it would offer a bit more offloading from the game logic ordinarily confined to 2 threads, and context switching would no longer be the default. For those that dont know, this is a very low overhead (cost) approach to improving very ancient code which means it would make a great patch. Nvidias IO technology would also be a great adoption since StarCraft II is the most deserv’ed of all the online RTS Sports.

The real winners would be 99% of the userbase because the game would be able if it was done properly, to maintain 60fps at all times on modern hardware, and gsync or freesync will no longer be a necessity, but instead a high end luxury if you want the game to not perform in truth, horribly. StarCraft 2 for years was the king of stutter fests, and heres to hoping we will get a native solution.

Thanks for adding 2 additional threads to this title. Im not sure exactly when this change was made and only just discovered it playing around with zen 2s cache limitation. This and the patch outlined above, will make this game run a fair bit more impressively than it has ever before as complexity ramps up in 4 vs 4.

Remember 64mbs + of unified L3 cache on zen 3s 5950X is going to feed those 4 threads more super high bandwidth gained IPC. You can also overclock 4 cores and aim for a higher than all core frequency which I havent bothered doing with this CPU since I know its about to be replaced anyway. Right now on this zen 2, the game can only really use 16mbs since the L3 is split. Even on 14nm the next intel product looks like its putting all its transistor eggs into a smaller number of larger baskets in chase of the best single threaded performance. I dont doubt it will beat zen 3 in this respect but im sure the DDR5 zen lineup will be its own beast. Time will tell. A 240hz monitor in 1 vs 1 is starting to make sense. Maybe higher. I havent done a lot of testing there yet. The performance is super valleyed from start to established gameplay though.

StarCraft 2 needs REFLEX. Give us the good.

Made it work thanks you! With process lasso tried first 4 cores then 6 and works pretty much better on 4v4 games as explample won +40fps

Is your “process lasso” doing something differently compared to the Task Manager in the Details tab (that also have a “set affinity” option) ?

Well guess, process lasso lets you set affinity “forever” like, you just set only 1 time and keeps with the same affinity everytime you open the game

Hi. What workload should i install with the Visual Studio? Is there any more information on how to apply this patch? thank you…

You want C++. I even got C# to work before, when I could even find it, I doubt it matters, but once you are in as admin if it makes you which with starcraft II it never asked me this… it just depends I guess.

Then to attach you need to go to the debug tab: Attach process. Thats it.

To Blizzards credit I think that the patch might indeed be obsolete as I brought it to their attention and it appears to be fixed as of months and months ago. You are welcome to test it yourself and report your findings. Im presently doing a massive project surrounding raytracing and im not to the CPU optimization part yet which is going to be a worthwhile nightmare long term anyway.

The context switching (L3 cache dumping) aversion part however still stands as a useful tweak provided you have the hardware.

While we are on the subject of software fixes, last I checked warcraft 3s shadows in game medium and higher are broken. They kind of flash in and out of existence. Its also a shame the depth buffer is so useless in both games. I wish it would be natively supported by the devs so the concerns for cheating dont ruin any beauty I could otherwise coax out of this ancient code. I think they should really replace FXAA with predication SMAA stacked with fidelityFX too. The graphical difference is not trivial because even at 4k the in game AA blurs textures. Its complete garbage, and im not being dramatically mean. Its basically cheap quincunx. They are image quality siblings with FXAA being far more efficient and a HAIR less trash.

Im producing a sort of propaganda to encourage devs for some of my favorite games to maybe consider adding more value to their products as they are timeless classics. Results generally speak for themselves. Some software benefits more than others. For example N64 raytracing is nearly useless unless its a specific title, although the console technically could render raytracing. Rare the developer that made Goldeneye used it in several of their later games. The only issue is the console cant render complexity with it at the same time. Raytracing really does need to become standardized as more and more hardware supports it.

My present project is still in the mapping phase. Id like to see raytracing natively implemented in reforged and starcraft II. Honestly all Blizzard should do is up the geometry a little, add some tessellation, upscale the textures and give them a bit of love with a human pass in places it could resolve better, add detail textures, use the open source superior AA algorithm , and raytracing. Optimize the game a little bit more and I would be totally OK with paying a little money for a remastered version legit. Also im not sure what texture compression starcraft II uses, but if the assets still natively exist, give us the option to turn that off.

Also giving us the actual 3D render of the cutscenes, would be a sought after benchmark people would appreciate. A toggle for prerendering would also make sense.

“Sculpture is the art of the intelligence.”
-Pablo Picasso

“A man paints with his brains and not with his hands.”
-Michelangelo

“Are you sure/That we are awake? It seems to me/That yet we sleep, we dream.”
-William Shakespeare

“Painting is poetry that is seen rather than felt, and poetry is painting that is felt rather than seen.”
-Leonardo da Vinci

“Art is the only serious thing in the world. And the artist is the only person who is never serious.”
-Oscar Wilde

“May the :tooth: Force :tooth: be with you.”
-George Lucas

“Consider the :hammer: subtleness :hammer: of the sea; how its most dreaded creatures glide under water, unapparent for the most part, and treacherously hidden beneath the loveliest tints of azure. Consider also the devilish brilliance and :brain: beauty :brain: of many of its most remorseless tribes, as the dainty embellished shape of many species of sharks. Consider, once more, the universal cannibalism of the sea; all whose creatures prey upon each other, carrying on eternal war since the world began. Consider all this; and then turn to the green, gentle, and most docile earth; consider them both, the sea and the land; and do you not find a strange analogy to something in yourself? For as this appalling ocean surrounds the verdant land, so in the soul of man there lies one insular Tahiti, full of peace and joy, but encompassed by all the horrors of the half-known life.”
-Herman Melville

“Love of beauty is :shark: taste :shark:. The creation of beauty is art.”
-Ralph Waldo Emerson

“If it can bleed, we can kill it.”
-Arnold Schwarzenegger

“Every one of us is, in the cosmic perspective, precious. If a human disagrees with you, let him live. In a hundred billion galaxies, you will not find another.”
-Carl Sagan

“Indubitably, magic is one of the subtlest and most difficult of the sciences and arts. There is more opportunity for errors of comprehension, judgment and practice than in any other branch of physics.”
-Aleister Crowley

“Science does not know its debt to imagination.”
-Ralph Waldo Emerson

“Signs toss knot notes dead tomb ash a nation.”
-Ralph Waldo Emerson

“Sigh ends tuss’ snot no it start doom’match N/A shown.”
-Ralph Waldo Emerson

Important concepts: Doom and match are unified in sound at the M, which is the 13th letter of the alphabet. Debt=Taxation.

“God grant that men of principle shall be our principal men.”
-Thomas Jefferson

“Perhaps what I am is not as important as what I can offer you in exchange for coming all this way. Some believe the fate of our worlds is inflexible. My employers disagree. They authorize me to nudge things in a particular direction from time to time. What would you want nudged Ms. Vance?”
-G’ Man

"The law of causality, I believe, like much that passes muster among philosophers, is a relic of a bygone age, surviving, like the monarchy, only because it is erroneously supposed to do no harm.:
-Bertrand Russell

Does Quantum Mechanics undermine causality? - YouTube The thing about fantasy, is you can take some liberties to tell a story, even if its partially based on the real world.

“It’s hard to build models of inflation that don’t lead to a multiverse. It’s not impossible, so I think there’s still certainly research that needs to be done. But most models of inflation do lead to a multiverse, and evidence for inflation will be pushing us in the direction of taking [the idea of a] multiverse seriously.”
-Alan H. Guth

“The brain weighs only three pounds, yet it is the most complex object in the solar system.”
-Michio Kaku

“We are the Western World. We read, see, think. Left. To. Right. We can’t help it. …The problem with Top to Bottom is that it’s unAmerican. We want to begin in the depths and climb our way upward. But our typographic system argues against this and wins, and images follow suit. …What you have to be careful to remember about Big and Small, is that they can extend to infinity in either direction. Consider: Big can always be bigger and Small smaller. The atom is the Universe and vice versa. And they’re both identical. …Left to Right, Top to Bottom, Big and Small; on a two-dimensional plane, all of these tools rely on a relative truth. Now we come to In Front Of and In Back of, which for us are big, fat lies. Very useful though, and the first of many at your disposal.”
-Chip Kidd

As much as this would be a wise decision it’s probably 5 years too late, unfortunately. Maybe more?

Activision doesn’t want to put money into StarCraft 2 so anything that’s not a server breaking is pretty much on us to implement, if it can be implemented.

Too bad, I remember Blizzard from the 90s…now though, they’re just Activision under a different branding - and the results are scathing for Blizzard meanwhile Activision gets that sweet, sweet WoW money.

Nope, they’re Activision under a different branding, and (almost?) nothing left of the original staff. :face_with_monocle:

1 Like

Thank you, man. I did that and it worked. Unfortunately it made no difference to me. My AMD Fx 8350 needs to be replaced anyways, I guess…

The only thing you can do now since they just decided to fix it with me being obnoxious, is put the game on cores 0, 2, 4, 6 with that cpu. If you’re really desperate you can put the OS on everything else. That cpu is trash. Go buy a zen 2 or 9th gen intel if you want value and aren’t made of money.

It wouldn’t cost them very much to remaster and charge for it. Reforged honestly isnt that bad at least at present. The shadow rendering bug though is absurd.

Hi @lucifer1776

Thank you for this. I have set the CPU affinity with process lasso on my ryzen 3900x.

There is one thing that i didnt understand, step 3.
“3: Open the game followed by opening the patch. The green “attach…” area click and locate the game instance in the menu.”

I have downloaded the files and can open them in visual code.
I have started sc2, running.
Where do I find this " The green “attach…” to browse to the game instance? and in what menu? :slight_smile:

brgs

Bjorn

1 Like

for anyone reading in the future, the author of this post suggests that the visual studio patch is no longer necessary. Ultimate Starcraft 2 Optimization Guide ((CPU)) - #54 by Lucifer1776-1788 - General Discussion - SC2 Forums

Does this apply to macOS?? Does it work for macOS?