DobryPC.pl
Game optimization Updated: May 15, 2026

CPU Affinity, CPU Sets and processor affinity in games — what is the difference?

A practical explanation of CPU Affinity, CPU Sets and processor affinity in Windows. When it makes sense in games, when it is placebo and why CPU Sets are usually a safer starting point than hard affinity.

Published: May 15, 2026 Last updated: May 15, 2026
CPU Sets CPU Affinity processor affinity CS2 Windows 11

Why this guide exists

CS2 optimization guides often mention terms like CPU Affinity, CPU Sets, processor affinity, “disable Core 0”, “disable SMT” or “use only physical cores”. The problem is that most of this advice is thrown around without context.

This guide explains what these terms actually mean, how hard affinity differs from CPU Sets and why in competitive games it is usually better to start with safer, reversible methods.

If you are reading the main CS2 guide, you can return here afterwards: CS2 — best settings for FPS, stable 1% lows and low input lag.

In short: CPU Affinity vs CPU Sets

TermPractical meaningHow it works in practice
CPU Affinityprocessor affinityHard-limits a process to selected logical processors.
CPU SetsCPU processor setsGives Windows a suggestion about which CPUs the process should prefer by default.
Core 0 OFFexcluding Core 0 from the gameAttempts to leave the first core for Windows and background processes.
SMT/HT OFF for the gameexcluding logical sibling threads from the gameAttempts to keep the game on physical cores only.

In short: CPU Affinity is more aggressive, while CPU Sets are softer and usually more reasonable for testing.

What is CPU Affinity, or processor affinity?

CPU Affinity, also called processor affinity, defines which logical processors a process is allowed to run on. Microsoft describes SetProcessAffinityMask as a function that sets an affinity mask for the threads of a process. In practice, this means a hard instruction: “this process may run only on these cores/threads”.

This can be useful for testing, but it also has downsides:

  • it is easy to go too far and take too many resources away from the game,
  • you can make frametime worse instead of better,
  • the Windows scheduler has less freedom,
  • on CPUs with multiple processor groups, the topic becomes more complicated,
  • some games and launchers may react poorly to overly aggressive settings.

That is why I would treat hard processor affinity as a diagnostic tool, not as the first universal tweak for everyone.

What are CPU Sets?

CPU Sets are a newer and softer approach. Microsoft describes SetProcessDefaultCpuSets as setting the default CPU Sets assignment for the threads of a process. New threads inherit these CPU Sets unless they have their own settings.

In practice, CPU Sets tell Windows something closer to:

“Prefer these CPUs for this process, but do not break the scheduler logic as aggressively as classic affinity does.”

That is why for games, especially games with strong anti-cheat systems, CPU Sets are usually a more reasonable direction than hard affinity.

Why do people disable Core 0?

Core 0 is the first logical core seen by the system. Historically, many system processes, drivers and background tasks could more often end up there. That is where the idea comes from: do not give Core 0 to the game, and leave it for the system.

Does it always help? No.

It may help when:

  • the game is strongly CPU-bound,
  • you have many background processes,
  • you are trying to improve 1% lows,
  • your CPU has enough spare cores,
  • you test the same scene before and after.

It may hurt when:

  • you have too few cores,
  • the game needs every available thread,
  • you do it blindly,
  • the scheduler would have done a better job by itself,
  • you copy someone else’s settings without testing.

SMT / Hyper-Threading — should you disable it?

SMT on AMD and Hyper-Threading on Intel mean that one physical core appears to the system as two logical threads. In competitive games, some people test limiting the game to physical cores only, because it may improve frametime predictability.

But this is not a magic rule. In CS2, on my tested Ryzen 7 7800X3D, the best direction was Core 0 OFF + SMT/HT OFF through CPU Sets, but that does not mean every CPU should use the same setting.

General rule:

  • 8 strong X3D cores: testing physical cores can make sense,
  • 6-core CPU / older processor: be careful, because you can easily take too much away from the game,
  • Intel with P-cores/E-cores: the logic is different, because you also have performance and efficiency cores,
  • laptop: check temperatures and power limits first, then think about affinity.

Why you should not touch the anti-cheat process

Do not mess with anti-cheat processes. This especially applies to FACEIT AC, Vanguard, BattlEye, Easy Anti-Cheat and similar systems.

Do not set weird affinity rules for them. Do not try to restrict them. Do not use tools that promise “anti-cheat optimization”.

The safe DobryPC.pl boundary is simple:

  • you can test normal settings for the game process,
  • you can test Windows settings, GPU drivers and in-game settings,
  • we do not bypass anti-cheat,
  • we do not modify game memory,
  • we do not use injectors,
  • we do not touch security processes in suspicious ways.

How to test CPU Sets properly

Do not make 20 changes at once. A proper test should look like this:

  1. Run a baseline benchmark without changes.
  2. Save average FPS, 1% low, 0.1% low and frametime.
  3. Apply only one change, for example Core 0 OFF.
  4. Run the same test again.
  5. Only then test SMT/HT OFF.
  6. Compare not only average FPS, but also stability.

If your results look like this:

ConfigurationAverage FPS1% lowFrametimeConclusion
Defaulthigherlowerless consistentnot always the best in practice
CPU Setsslightly lowerhighermore consistentoften better for competitive play

Then the second configuration may feel better even if average FPS is slightly lower.

What can you use to set CPU Sets or processor affinity?

For my own tests, I used my own hobby project: ProcessCoreOptimizer. It is a simple tool created mainly to make testing CPU assignment easier, without manually changing everything through Task Manager.

I am also working on a more advanced utility called FrameHub. It is meant to become a broader game and Windows optimization hub. The core optimization / CPU assignment feature is already available there, but the project is still in development, so I would treat it as my own hobby/testing tool rather than a magic FPS booster.

If you want a more established and professional solution, you can check Process Lasso. It is a well-known Windows process management tool that can manage process behavior, priorities, affinity and CPU-related rules. For many users, it will be the more mature option compared to small hobby projects.

No matter which tool you use, the rule is the same:

  • do not change everything blindly,
  • do not copy someone else’s profile 1:1 without testing,
  • change one thing at a time,
  • record results before and after,
  • look beyond average FPS — check 1% lows, 0.1% lows and frametime,
  • do not touch anti-cheat processes.

Treat my tools as testing helpers, not as a guaranteed performance fix. On one CPU, CPU Sets may improve consistency. On another, they may do nothing. On a third system, they may even make things worse. That is why proper testing matters more than the tool itself.

What should you set in CS2?

For CS2, the sensible order is:

  1. First, configure in-game settings.
  2. Then Windows 11 and drivers.
  3. Then launch options.
  4. Then test Reflex / Anti-Lag.
  5. Only at the end, test CPU Sets.

Do not start optimization with processor affinity. This is an advanced step, not the first click after installing the game.

Quick recommendations

ScenarioRecommendation
You do not know what you are doingDo not touch affinity. Start with in-game settings and Windows.
You have a Ryzen X3D and play competitive gamesCPU Sets are worth testing.
You have a 6-core CPUBe very careful with disabling SMT/HT.
You have Intel with P-cores/E-coresTest separately, because the logic is different from Ryzen 7 X3D.
You play FACEITDo not mess with the FACEIT AC process.
You want a measurable resultUse CapFrameX or a repeatable benchmark.

Summary

CPU Affinity, or processor affinity, is a hard assignment of a process to selected cores. CPU Sets are a softer way of suggesting to Windows where the process should run. In competitive games, CPU Sets are usually a more reasonable testing direction than aggressive affinity.

However, this is not the first step of optimization. First configure CS2, Windows and drivers. Only when you have a repeatable test and know what you are measuring should you start experimenting with CPU Sets.

Read next:

Technical sources