ValveSoftware / csgo-osx-linux

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

Panorama HUD numerical indicators cause FPS spikes #1741

Open henrym11106 opened 6 years ago

henrym11106 commented 6 years ago

My system information

While playing on Linux, the numerical HUD elements (i.e. ammo counter, round timer, DM bonus weapon timer) in the Panorama UI cause a significant FPS stutter/spike every time any of them update (e.g. when a shot is fired, the moment ammo is reloaded, every tick of any timer, etc.)

the issue is always present, it is just most obvious at lower FPS. disabling the HUD via "cl_drawhud 0" eliminates the spiking. with HUD disabled in DM, the bonus timers may appear, resulting in an FPS spike once per second (on every tick of the timer) until the bonus ends.

This issue is easily observed in FPS-stable, GPU-bound situations below 100 FPS by reloading while strafing with no timers visible (e.g. training mode), or by strafing with one timer visible.

it is also easily observed at any stable frame rate by watching the "cl_showfps 2" indicator while any in-game timer ticks, upon reloading any weapon, disabling HUD in an empty DM and waiting for a bonus weapon timer etc.

this behaviour appears to be absent on the same hardware under Windows, and the old Scaleform UI does not currently suffer from this under Linux on my setup at least. this is consistent across the two computers I tried, Arch and Ubuntu on the same machine, and four different kernels in Arch. so far I only tested AMD GPUs and on the open driver under Linux. I will test an nvidia GPU in the near future.

kisak-valve commented 6 years ago

Hello @henrym11106, since you mentioned other AMD gpus, what other ATi/AMD generations are you seeing this with? In particular, I'm wondering if only VLIW-based ATi chipsets are affected.

henrym11106 commented 6 years ago

I only have a few "Terascale 2" based chips on hand, unfortunately.

may or may not be related: remembering this brief article prompted my suspicion of the timers in the first place.

I will test an nvidia card tonight.

henrym11106 commented 6 years ago

No HUD-related spiking with nvidia that I could find for both open and closed-source drivers under linux.

kisak-valve commented 6 years ago

Possibly related to #1702.

henrym11106 commented 6 years ago

I'm getting that problem also, it happens at high resolutions in the main menu. I commented there.

henrym11106 commented 6 years ago

The issue is present on an Intel HD4600 (Haswell) iGPU, but it's less visible as frame-pacing is consistently jumpy, even with the HUD disabled. the peaks in the FPS counter are obvious.

looking more and more like it's due to a lack of 2D hardware acceleration for VP9, VP8, (etc.) on Linux for some hardware.

henrym11106 commented 6 years ago

Looks like this issue does not occur on an R9-380.

viasux commented 3 years ago

May be related to this, although I have not experienced the issue when other UI elements are updated.

2657

henrym11106 commented 3 years ago

Likely related. I haven't tested other hardware but it appears to be limited to the Linux CSGO client and it only affects some on-screen timers.

henrym11106 commented 3 years ago

It seems to me that the panorama hud causes disproportionate CPU utilization on Linux as of now, at least on GCN 2 and 3 GPUs and AMDGPU. running a more CPU-constrained benchmark on Linux results in a 5-8% increase in FPS with cl_drawhud 0 and I also observed a small framerate dip every time the hud round timer updates. higher graphics settings appear to reduce this effect.

viasux commented 3 years ago

I have an amd cpu

henrym11106 commented 2 years ago

This issue does not appear to be present with the Vulkan renderer