ValveSoftware / csgo-osx-linux

Counter-Strike: Global Offensive
http://counter-strike.net
776 stars 69 forks source link

[Linux] Constant stuttering, massive FPS drop after a few minutes #141

Closed LukasSchauffele closed 8 years ago

LukasSchauffele commented 9 years ago

The game is unplayable for me. Menu is stuttering, hovering between 20-40 FPS. When in game, FPS seems stable around 120-160 but gameplay is very sluggish. It seems every couple of seconds the framerate drops completely, resulting in a very choppy gameplay experience. Since today, after a few minutes of playing the framerate drops to around 20 FPS and the only way to fix it, is to restart the game.

I'm running Ubuntu 14.04 with an Intel 2500K CPU and a Nvidia 560Ti GPU with the 343.22 drivers.

System information:

Processor Information: Vendor: GenuineIntel CPU Family: 0x6 CPU Model: 0x2a CPU Stepping: 0x7 CPU Type: 0x0 Speed: 3601 Mhz 4 logical processors 4 physical processors HyperThreading: Unsupported FCMOV: Supported SSE2: Supported SSE3: Supported SSSE3: Supported SSE4a: Unsupported SSE41: Supported SSE42: Supported

Network Information: Network Speed:

Operating System Version: Ubuntu 14.04.1 LTS (64 bit) Kernel Name: Linux Kernel Version: 3.13.0-36-generic X Server Vendor: The X.Org Foundation X Server Release: 11501000 X Window Manager: Compiz Steam Runtime Version: steam-runtime-release_2014-08-20

Video Card: Driver: NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2

Driver Version:  4.4.0 NVIDIA 343.22
OpenGL Version: 4.4
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 60 Hz
VendorID:  0x10de
DeviceID:  0x1200
Number of Monitors:  2
Number of Logical Video Cards:  1
Primary Display Resolution:  1920 x 1080
Desktop Resolution: 3840 x 1080
Primary Display Size: 20.51" x 11.54"  (23.50" diag)
                                        52.1cm x 29.3cm  (59.7cm diag)
Primary Bus: PCI Express 16x
Primary VRAM: 1024 MB
Supported MSAA Modes:  2x 4x 8x 16x 

Sound card: Audio device: Realtek ALC889

Memory: RAM: 7968 Mb

Miscellaneous: UI Language: English LANG: en_AU.UTF-8 Microphone: Not set Total Hard Disk Space Available: 1862285 Mb Largest Free Hard Disk Block: 1730242 Mb

Installed software:

Recent Failure Reports:

Snevzor commented 9 years ago

Is multicore rendering enabled?

D-Code commented 9 years ago

Maybe this comment will help: https://github.com/ValveSoftware/Counter-Strike-Global-Offensive/issues/104#issuecomment-57914917

ghost commented 9 years ago

Same problem here: very high framerate (180 to 260fps) but get fraction-of-a-second pauses regularly. Ubuntu 14.04 and 14.10, Core i5 2500 oh H67 chipset. NVidia Geforce 760 GTX.

I turned multicore rendering on and off. No difference. Changing resolutions back and forth. No change.

I've tried nvidia versions 331, 340, and 343 (from xorg-edgers). Same resutls. I even installed a fresh version of lubuntu with no extra packages. Played it with ALSA only and then with pulseaudio. Same thing.

I tried 3 different sound cards: integrated, HDMI on graphics card, and USB audio. No difference.

I'm really excited about playing this game in linux, so if any of the devs need help running profilers or diagnostics, I'm happy to give feedback if I can.

EDIT: After a bit of experimentation, I discovered that the setting Options->Video->Model/Texture Detail to Low greatly decreases the amount of 'chop', even if all the other settings are on High or Very High.

Maybe this goes without saying, but the game in Windows is completely smooth after a couple of minutes after loading.

Another observation is that Borderland Pre-Sequel gets choppy after loading a new area. The behavior is almost the same. Is this Nvidia driver + Geforce 760 specific behavior?

d2kx commented 9 years ago

Can't remember which setting it was (think it was either texture quality or shader quality), but after setting them to Low, all stuttering were completely fixed with the opensource radeon stack (Mesa 10.3.0) for me (and I would expect similar behaviour with AMD Catalyst, because I had the exact same stutters there despite okay-ish FPS).

ghost commented 9 years ago

I'm now noticing that this doesn't happen when there are few or no real players in a deathmatch server. The more human players that join, the more frequent and long the "chunks" become.

janpansa commented 9 years ago

I had the same issues on my old hardware, not tested on the new hardware yet, however, I am playing cs go on my windows partition now because of this, because when you play competitve mode and that happens, you are screwed.

d2kx commented 9 years ago

Just to update. The weird stutters are gone now. There are still stutters if you are playing for the first time, at least with AMD Catalyst, but that is expected behaviour because the shaders are compiled once and written into the shader cache. After that, it's smooth now.

d2kx commented 9 years ago

Another update:

With the new AMD Catalyst 15.3 Beta (fglrx 15.200, special driver avaible for Ubuntu) even the initial stutters are completely gone for me. I noticed that the AMD OpenGL binary shader cache is also a bit smaller which was related to this, so it seems they improved the behaviour. But the behaviour of the game itself is also improved. There used to be a "downloads" directory with some kind of shadercache, which doesn't exist anymore in the current CSGO releases. Anyways, my point is, that with the newest CSGO and the newest drivers/AMD Catalyst, this issue is fixed and the performance is totally acceptable.

As far as I know, the full/public release of the AMD Catalyst 15.3 driver is happening in four days, on 19.03.2015

janpansa commented 9 years ago

Update - So far I have not had any issues where the game fps dropped and or the game crashed. Thx for the fixes.

sandikata commented 9 years ago

d2kx i still dont understand what you mean ? To delete whole game and userdata for specific game and then reinstall game ?!

I am on Gentoo with catalyst 15.3 updated to 15.5 still same issue, insane framedrop and input lag

AMD FX8320 PowerColor HD 7870 GHZ Edition 2GB GDDR5 256Bit 16GB RAM SSD/HDD

Tele42 commented 8 years ago

Fglrx has a long standing issue with stuttering when used with the Source engine. It is now obsolete in favor of AMD's new AMDGPU-PRO hybrid driver and their open source driver in Mesa.

For overall performance issues, starting with #1111, we are switching to a common issue report to keep this issue tracker manageable.

asaoppenheimer commented 7 years ago

guys it seems i found the solution. just type -gl command in boot settings of cs go in steam. it will enable opengl mode. i tried it on 3 pc with Ubuntu and Linux Mint installed. it helped me. before i had 30fps even in menu of the game. now 140 on dust2 when playing.

kisak-valve commented 7 years ago

Hello @asaoppenheimer, that launch option should make no difference with the native CS:GO client. Are you using the windows client in wine?

sandikata commented 7 years ago

So i tried it on linux it gives some boost, and graphics improvement, but i still in struggle with input devices..

asaoppenheimer commented 7 years ago

No, without wine.

sandikata commented 7 years ago

but still with hard framedrops... and input lag

X3eRo0 commented 2 years ago

This fixed my fps drops (works for intel cpus apparently) Disable thermald service:

sudo systemctl stop thermald.service
sudo systemctl disable thermald.service
kisak-valve commented 2 years ago

I should be noted that disabling thermald on modern Intel CPU can lead to some hardware (laptop hardware in particular) running hotter than is acceptable and on many systems, if the socket temperature reaches 100°C, then it will trigger a failsafe and immediately halt the system.

You should look into tuning thermald so that it throttles the CPU sooner under heavy load so that it gives more consistent results overall and doesn't need to use the lower max CPU speeds to keep the system at the target temperature. For example, I had a Sandybridge laptop which thermald would try to use RAPL before other mechanisms, but it barely had any effect so the system would overshoot the target temperature under load, then have to overcompensate until it briefly saw safe temperatures, and then throttle up and repeat the throttling cycle over again.