I’ve spent many nights trying to get CS:2 to run somewhat smooth in Linux, so I thought I’d share the combination of settings I’ve found to make it run flawlessly.

At 3840 x 1600 @ 160 Hz, my monitor seems to be pushing the limits of what my 6700 XT + i9-9900K desktop is able to handle. Running at monitor native resolution was not a great experience for competitive CS, both due to being too big at 38", and computer struggling to keep up with the resolution.

Downscaling to any of the lower native resolutions in CS2 would make the game a blurry mess. With the following settings, my FPS is close to what I’ve been seeing in Windows previously. I no longer dual boot, so I haven’t been able to confirm with actual stats.

Launch parameters

env LD_PRELOAD="" gamescope -W 2560 -H 1440 -w 2560 -h 1440 -r 160 -f --adaptive-sync --force-grab-cursor --framerate-limit 156 --mangoapp -- %command% -noreflex

On my 3840 x 1600 monitor, this gives me 1440p with black bars.

If you want to stretch the image you could add -S stretch or even downscale to 1080p:

-W 2560 -H 1440 -w 1920 -h 1080 -f -S stretch

Details

env LD_PRELOAD="" I had some random stutter after 40 min of gameplay, and I think this was the fix. I believe this stops the steam overlay renderer from being loaded.

--mangohud is optional, so you can run without it if you want, but will give you a nice, highly configurable monitoring overlay.

-noreflex gave me +20% FPS boost, and as far as I understand my GPU doesn’t even support reflex.

--force-grab-cursors is necessary, or the mouse will be inverted and locked to a tiny box in the middle of the screen for some reason.

Variable refresh rate

--adaptive-sync should be enabled if your monitor supports VRR (Freesync / GSync).

If you use Gnome, you have to enable VRR as an experimental feature for now

https://wiki.archlinux.org/title/Variable_refresh_rate

Refresh rate is not specified ingame without -r [your refresh rate here], but it seems like the game is running at whatever the refresh rate is set to in your DE, even though display settings are saying “60”.

--framerate-limit 156 To avoid VRR range exceedance, it is recommended to set a frame cap to ~3% below your refresh rate.

https://forums.blurbusters.com/viewtopic.php?t=12305

Graphics settings

When it comes to the graphic settings in CS2 I use freesync with vsync off. As far as I understand, vsync will only happen if the VRR range is exceeded. Therefore input lag will not be increased, as long as FPS is below your refresh rate. This seems accurate, as I could not notice any difference with it on/off after capping the FPS to 156. I was always very sensitive to the judder vsync introduced on traditional TN/VA panels, and it is in my opinion no longer noticeable with VRR.

If you don’t have VRR you should probably disable vsync to avoid judder. Tearing is generally preferred over judder for competitive game-play in my experience. Also:

More on VSync and VRR for CS:GO here. I assume the same goes for CS:2: https://forums.blurbusters.com/viewtopic.php?t=5714

Vibrating walls bug

This strange bug was the last missing piece. The polling rate button on my Logitech G603 was not pushed all the way over, and was stuck in “lo”. This caused stuttering when using the mouse. https://www.reddit.com/r/GlobalOffensive/comments/16fvki6/cs2_shaking_vibrating_walls_anyone/

Advanced graphics settings for balance between quality/visibility

  • Boost player contrast: Enabled
  • MSAA: 4x
  • Global Shadow: High
  • Dynamic Shadow: All
  • Texture filtering mode: Bilinear (this makes player models more visible)
  • Shader detail: Low
  • Particle Detail: Low
  • Ambient occlusion: Disabled
  • HDR: Quality
  • FidelityFX: Disabled

My machine for reference

  • OS: Fedora Linux 41 (Workstation Edition) x86_64
  • Kernel: 6.13.10-200.fc41.x86_64
  • Resolution: 3840x1600
  • DE: GNOME 47.5
  • CPU: Intel i9-9900K (16) @ 5.000GHz
  • GPU: AMD ATI Radeon RX 6700 XT

Disclaimer: I am not an expert on display panels (or Linux)

  • Arose8334@lemm.eeOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 days ago

    Without adaptive sync is still better than native resolution without gamescope, so I’m not sure why you’re so dismissive. I’m just trying to share a list of tweaks that made the experience better.

    • ag10n@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days ago

      my response is that adaptive sync, similar to vsync, is going to give you that smoothness. works for me on my LG 27GX790A

      the gamescope piece i get, good work there.

      • Arose8334@lemm.eeOP
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        3 days ago

        Thanks for the input. I’ve expanded on this point and tried to explain how it works in my original post.