← Back to Guides
Settings

CS2 FPS Optimization & PC Settings for Max FPS

A hardware-aware guide to maximizing CS2 FPS - Windows settings, GPU panel, launch options, and config tweaks, each explained by why it gains frames.

Most FPS guides hand you a list of switches and tell you to copy a pro’s config. This one treats FPS as an engineering problem: every recommendation below has a reason, and the reason is specific to how CS2’s Source 2 engine runs on modern hardware.

Why CS2 Is CPU-Bound (and What That Means for Your Upgrade Path)

CS2 runs on Source 2 with subtick input. The server timestamps your inputs at high resolution regardless of frame rate, but the client still renders at discrete frame intervals, so a higher client FPS gives you a fresher image at the moment you click. The practical consequence: once your GPU can render the scene fast enough, the CPU becomes the bottleneck long before the GPU does. At competitive (low) settings on a decent card, you are almost always CPU-limited.

AnimGraph 2 shipped to the live CS2 client on April 21 2026. Valve’s animation rewrite delivered roughly 5-8% average FPS uplift on strong CPUs and up to about 12% on weaker CPUs, with the biggest gains landing on mid-range and older chips that were previously bottlenecked by the old animation state machine. If you last benchmarked this game before that patch, your baseline has already shifted.

The 1% low matters more than peak FPS. A setup that averages 400 FPS but dips to 80 in a smoke throw feels worse to play than one that averages 280 and never drops below 220. Every recommendation here targets floor FPS, not ceiling.

Upgrade path signal: at a matched GPU, swapping a mid-range CPU like a Ryzen 5 5600 for a Ryzen 7 7800X3D produces a large CS2 uplift in community benchmarks, with the gap widening the more CPU-bound your settings are. That kind of delta is impossible to reach through software alone. If you are on a 4-core or 4-thread CPU from 2018-2020, no launch option will fix it.

Step 1 - Windows Before You Touch CS2

Get Windows into the right state first. In-game settings on a misconfigured OS are noise.

Power plan. Windows defaults to Balanced, which throttles CPU clocks when load drops momentarily between frames. Switch to High Performance, or enable Ultimate Performance (hidden by default) in PowerShell:

powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61

This alone can cut clock-throttle stutter without touching a single game setting.

XMP / EXPO in BIOS. DDR4 and DDR5 ship running at JEDEC base speeds (often 2133 or 4800 MT/s) until you manually enable the XMP (Intel) or EXPO (AMD) profile in BIOS. Running RAM at its rated speed instead of base can give a meaningful FPS bump in CPU-bound titles like CS2, since memory bandwidth and latency feed directly into the CPU-limited frame path. Check CPU-Z, Memory tab: if DRAM Frequency shows less than half your kit’s rated speed, XMP is off.

Hardware-Accelerated GPU Scheduling (HAGS). Enable it at Settings > System > Display > Graphics > Change Default Graphics Settings. HAGS moves GPU scheduling from the CPU driver to the GPU hardware, trimming latency overhead. Community testing in early 2026 reads net-positive on most current hardware. If you see regressions after enabling it, toggle it off and retest.

Game Mode. Leave it off if it is causing you trouble, test it if it is not. Windows Game Mode is supposed to prioritize the foreground game, but some community frame-time testing has shown worse pacing with it on, likely from how it reshuffles background process scheduling. There is no settled consensus either way, so treat it as machine-specific. Settings > Gaming > Game Mode. Benchmark both states on your own machine before committing.

Background apps. Turn off Discord hardware acceleration (Discord Settings > Advanced > Hardware Acceleration), close spare browser tabs, and close OBS if you are not streaming. CS2 does not saturate RAM on most systems, but CPU scheduler contention from background apps degrades 1% lows.

Step 2 - GPU Driver Panel (NVIDIA and AMD)

NVIDIA. Open NVIDIA Control Panel > Manage 3D Settings > Program Settings > Counter-Strike 2.

  • Power Management Mode > Prefer Maximum Performance (stops the GPU downclocking between frames).
  • Enable NVIDIA Reflex in-game (Settings > Video) and set it to Enabled + Boost. Reflex trims the render queue to reduce total system latency. Note the trade: it can shave a little off your average FPS on purpose (it stops surplus frames piling up), while improving frame-time stability and real input lag. On a supported card it is the highest-impact latency setting you have. Boost specifically only helps when you are GPU-bound, so on a fast card at low settings its effect is small.

Leave everything else at application-controlled defaults. Do not enable DLSS for CS2: the game does not need upscaling, and any blur in a competitive shooter is a problem.

AMD. Open AMD Software (Adrenalin) > Gaming > Counter-Strike 2 (or Global Graphics if you have not added it per-game).

  • Radeon Chill > Off. Chill caps FPS dynamically based on input, which is the opposite of what you want.
  • Radeon Boost > Off. It lowers resolution under motion, which is harmful in a competitive shooter.

Anti-Lag 2 is enabled in-game, not in the driver panel. Valve integrated AMD’s Anti-Lag 2 SDK directly into the Source 2 engine, so you turn it on in CS2’s own Advanced Video settings rather than as a per-game toggle in Adrenalin. The Adrenalin software still has to be installed and current for the option to be available (recent driver required), but the actual switch lives in the game. This is the AMD analogue to NVIDIA Reflex, which is also an in-game toggle. If Anti-Lag 2 does not appear in your CS2 Advanced Video settings, update your AMD driver and confirm your card is supported.

If you are coming from a fresh driver install or switching major versions, do a clean install with DDU (Display Driver Uninstaller) in safe mode. Stale driver state causes hard-to-diagnose stutters that look like game problems.

Step 3 - CS2 Launch Options That Actually Work in 2026

In Steam, right-click Counter-Strike 2 > Properties > General > Launch Options.

Keep:

-nojoy -refresh 240 +exec autoexec.cfg

Replace 240 with your monitor’s actual refresh rate. -nojoy disables joystick polling. -refresh tells CS2 your refresh rate explicitly, which helps only if some part of your setup mis-detects it; the old -freq flag does nothing in Source 2, so use -refresh instead. CS2 normally reads the correct rate from Windows, so set your refresh rate in Windows Display Settings first and only reach for this flag if the game keeps launching at the wrong Hz. +exec autoexec.cfg runs your config at startup, see the autoexec guide for the full setup. Set fps_max inside that autoexec rather than as a launch option (covered in Step 4), so you can change it without restarting Steam.

Note that -novid is dead weight in CS2: it skipped the intro video in CS:GO, but CS2 has no intro video, so the flag does nothing. Drop it.

Drop anything you carried over from CS:GO. Legacy DirectX flags (-d3d9ex, -gl), forced thread counts (-threads 8), and -tickrate 128 are either no-ops or actively harmful in Source 2. -tickrate does nothing because CS2 uses subtick, not a client-set tickrate. -threads is the clearest one to drop: Source 2 manages its own thread scheduling, and forcing a count generally does not help and can hurt. The cleaner-than-CS:GO position in 2026 is to omit -threads entirely and let the engine decide.

-high sets CS2’s process priority to High. It has marginal effect on most modern systems and no known downside. Keep it if your launch string already has it; skip it if you are building from scratch.

Step 4 - FPS Cap Strategy

Uncapped FPS is not always the fastest-feeling option, and the pro field is genuinely split on it (see the video settings guide for the recorded distribution).

Without a cap, the GPU swings between fully loaded and near-idle between frames. That power-state switching can introduce frame-pacing inconsistency: a frame every 2ms, then 8ms, then 3ms, which reads as stutter even when the average FPS looks fine. On a system with plenty of CPU headroom this may not show up at all, which is why the pros who report a value are split between uncapped and a cap.

The practical approaches:

  • Uncapped (fps_max 0) if your frametimes are already smooth and you have CPU headroom. More frames means a fresher image at click time.
  • A cap slightly above your refresh rate if your frametimes are erratic. On 240Hz, a cap around 360 keeps the GPU continuously loaded with a frame ready, without the full thermal and power overhead of uncapped.
  • Avoid capping exactly at your refresh rate (for example fps_max 240 on 240Hz). Any momentary dip below the cap causes a missed frame; the buffer matters.

Set fps_max in your autoexec, not as a launch option, so you can tune it without restarting Steam.

Step 5 - In-Game Video Settings for Maximum FPS

One setting dominates the FPS conversation: Global Shadow Quality.

Dropping shadows to Low or Very Low is worth a large chunk of FPS on most hardware, because the shadow pass casts from dynamic light sources across every player model and effect. For pure max-FPS it is the single highest-ROI change in the video panel.

There is a real trade here, and it is worth stating plainly: a meaningful share of the pro field actually runs shadows High, because an enemy’s shadow can reveal a player you cannot see directly around a corner or off a wall. So this is FPS versus information, not a free win. The full recorded split lives in the video settings guide. If you are chasing frames on weaker hardware, drop them; if you have headroom, the information may be worth the cost.

Other high-impact settings:

  • Display Mode > Fullscreen (not Fullscreen Windowed). Exclusive fullscreen bypasses the Windows desktop compositor, which otherwise adds latency and CPU overhead. Borderless is convenient for alt-tabbing; fullscreen is the lower-latency choice, and the pro field runs it almost without exception.
  • Resolution and aspect ratio. Dropping to 1280x960 or 1024x768 (stretched or black bars) is common at the pro level: fewer pixels to fill, and stretched widens player models. It is a trade between FPS and image clarity. See CS2 4:3 vs 16:9 for the full decision; we won’t re-litigate it here.
  • Model / Texture Detail. Mostly VRAM-bound, not CPU-bound. On a card with 8GB+ VRAM, Low to Medium costs you almost nothing. Pushing high textures on a 4GB card can cause VRAM thrash and hurt FPS.

For the full breakdown of every video setting, with the recorded pro distribution behind each one, see the CS2 video settings guide.

Step 6 - Autoexec Config Tweaks

A few console commands belong in your autoexec.cfg and are not exposed in the UI:

r_dynamic 0                        // disables dynamic lighting from impacts/effects
cl_ragdoll_physics_enable 0        // disables ragdoll physics on death (CPU saving)

r_dynamic 0 removes the dynamic lighting pass triggered by bullet impacts, grenade flashes, and fire. On lower-end systems this is worth a solid FPS bump; on high-end hardware the gain is smaller but nonzero. cl_ragdoll_physics_enable 0 stops the CPU simulating dead player bodies, which matters most late in a round with several bodies on the ground. Both are CPU-side savings, so the weaker your CPU the more they show up in your 1% lows.

Do not add cl_forcepreload 1. It is a CS:GO-era command that is disabled in Source 2; setting it does nothing useful and is associated with stutter and memory issues rather than smoother loading. If you carried it over from an old CS:GO config, drop it (this is the same logic as Step 3, dump the dead flags).

Also disable Steam Cloud sync for CS2 (Steam > Counter-Strike 2 > Properties > General > uncheck “Keep game saves in the Steam Cloud”). Steam Cloud can overwrite local config changes with cloud-synced versions after updates.

How Much FPS to Expect

ChangeTypical effect
AnimGraph 2 (shipped April 21 2026)~5-8% average on strong CPUs, up to ~12% on weaker CPUs
XMP / EXPO enabled (was off before)meaningful in CPU-bound CS2
Shadows to Low (any hardware)large FPS gain, but costs shadow info
r_dynamic 0 + ragdoll off (lower-end)moderate FPS gain
Mid-range to high-end CPU swaplarge gain when CPU-bound
Fullscreen vs Fullscreen Windowedlatency more than raw FPS

Stack the software gains first. If you have applied everything here and you are still CPU-limited below 200 FPS on a 240Hz display, the next lever is hardware, specifically the CPU.

Verifying Your Gains

In-game FPS counter. cl_showfps 1 prints a live FPS counter to the corner (set it in console or autoexec). The old CS:GO net_graph does not exist in the same form in CS2; cl_showfps is the replacement.

Frame time, not just FPS. A steady 250 FPS plays better than a spiking 350. cl_showfps 2 adds min/avg statistics plus frame time (higher levels exist: 3 adds server data, 4 reports averaged FPS, frame-ms, and server-ms). Watch for consistent values, not a high number that bounces.

Baseline before you start. Before applying anything here, record about 5 minutes on an offline workshop map (Aim_Botz works), and note your average and 1% low. Apply changes in order (Windows, GPU panel, launch options, config) and re-test after each group. That tells you exactly which change moved the needle on your specific hardware and which did nothing.

Map choice matters. Some maps are far more demanding than others. Benchmark on the same map every time, in the same area, with the same bot count, or your comparisons are noise.