anegostudios / VintageStory-Issues

Vintage Story's public issue tracker for reporting bugs, crashes and the like
47 stars 16 forks source link

poor fps and lagspikes on Manjaro linux #476

Open Eypsi1on opened 4 years ago

Eypsi1on commented 4 years ago

I have tried to play Vintage Story ever since I installed manjaro but the performance was quite spotty. Then I got busy and distracted to test and report it further but now here we go. I have done tests on both Windows 7 (yes I should get rid of it I know) and Manjaro Linux kernel 5.4.21-1.

Specs: DxDiag_Eypsilon.txt inxi -Fxz_Eypsilon.txt

I wanted to test on 4.19 kernel but I either forgot or it changed to 5.4.21-1 on it's own I guess.

Game version: 1.12.9-rc.1 (was not any better with previous ones) Unmodded Singleplayer Unedited standard playstyle with 256 world height

I followed the wiki debugging instructions with .debug logticks20 and .edi and took plenty of screenshots with the fps graph I generated a map and made copy of it to use on both systems and I went the same direction to get consistent results. Both tests were with "high" presets but framerate locked at 120 and without vsync. But I also did another one on linux with minimal settings but with same view distance of 256.

Logs: LogsLinuxHigh.zip LogsLinuxMinimum-ish.zip LogsLinuxHigh.zip

Screenshots

Linux High 2020-03-17_18-12-27 2020-03-17_18-16-34 2020-03-17_18-28-22 2020-03-17_18-11-18

The fps is rather unstable. Constant periodic frame drops which sometimes gets worse and creates either micro or significant stutter which in combat scenario makes the game hardly playable. Note the "minimum fps" is always below 60. The average being above 60 means nothing. Now I would like to upload the minimal setting screenshot ones but it turns out when you have resolution slider anything but 1x the ui is not in. So you have to trust me it was the same as high settings.

Windows 7 2020-03-17_18-37-55 2020-03-17_18-38-35 2020-03-17_18-39-00 2020-03-17_18-40-31 2020-03-17_18-44-15 2020-03-17_18-50-57

Windows is significantly better. It did drop a few times below 60 but only for split seconds and only sometimes. The rest of the time it was nice and smooth all the way actually making my 144hz monitor shine with it's smoothness.

Additional info

I don't know if this is exactly tied to the framerate issue but npcs do affect the framerate significantly so I devised a chicken test. I make walled off area and spawn chickens in and see how many I can handle. Fps unlimited. Linux 2020-03-17_20-29-39 2020-03-17_20-30-40 2020-03-17_20-31-28 Windows 7 When at sufficient distance the AI disables and stability improves 2020-03-17_19-16-42 2020-03-17_19-16-07 2020-03-17_19-17-43

Again windows is doing far better. Similar effect can be achieved by dropping items on floor one by one like arrows for example. I hope this report will be of some use and I am willing to redo or make more tests if necessary. Who knows maybe my manjaro setup is just crap.

tyronx commented 4 years ago

Very well reported, thanks. Have you checked if you are on the latest graphics driver on manjaro?

Eypsi1on commented 4 years ago

Yes I am on latest 440.64. image It also says so in the "inxi -Fxz_Eypsilon.txt" file albeit poorly as "nvidia v: 440.64". Closest thing I could find to dxdiag for manjaro.

copygirl commented 4 years ago

This could easily just be redirecting blame, but nVidia and their drivers are often frowned upon. There should be an alternate, open-source driver called "Nouveau". Maybe you could try that. Unfortunately I'm not that knowledgeable, however.

Eypsi1on commented 4 years ago

Looking it up Nouveau seems pretty crap compared to the proprietary drivers in benchmarks. Even if it did fix VS performance I still wouldn't like to keep it since I like to play other games and would hate switching constantly. But on that note I tried reverting to older drivers 435xx, 430xx, 418xx and 390xx doing just quick runs and it's the same issue. Didn't run full test with them.

tyronx commented 4 years ago

I had a look at the client-main.txt in LogsLinuxHigh.zip. The lag spikes occur in random systems, which tends to happen when CPU time is being taken away from the games process. And nothing related to rendering the world actually, so the graphics driver is probably fine.

Eypsi1on commented 4 years ago

Issues still persist in v.13.0-pre.3. Should I do the tests again?

Fluffkin commented 4 years ago

Not sure if it's the same lag spikes that you're recording (think actually it's one of them), but for me the game mostly runs smooth in Linux with Nvidia latest drivers. The "unplayable glitches" where fps drops to 1 or below for several seconds seem to be related to the game periodically auto saving. I've not tested much, but running the server as a separate process and logging the client in to it (on the same machine) seems to suffer from the lag drops much less (possibly entirely eliminated).

Fluffkin commented 4 years ago

Update - No running the server as a separate process doesn't cure the lag spikes. Turning graphics down to "Pathetic" doesn't help either. It appears to be server lag and it makes the game unplayable. When server lag is happening CPU usage actually seems to be less than usual. As if mono is taking a holiday (or waiting for something?). Got to admit it's a bit annoying. I played the demo a few months back and that was smooth as butter so decided to buy it, now I have an unplayable game instead.

I don't see any errors in the logs, but this is happening when it gets laggy:

18:46:20 [Server Warning] Server overloaded. A tick took 1041ms to complete.
18:46:23 [Server Warning] Server overloaded. A tick took 1437ms to complete.                                  
18:46:25 [Server Warning] Server overloaded. A tick took 1266ms to complete.                                  
18:46:28 [Server Warning] Server overloaded. A tick took 1723ms to complete.                                  
18:46:38 [Server Warning] Server overloaded. A tick took 1135ms to complete.                                  
18:46:40 [Server Warning] Server overloaded. A tick took 895ms to complete.                                   
18:46:45 [Server Warning] Server overloaded. A tick took 1170ms to complete.                                  
18:47:05 [Server Warning] Server overloaded. A tick took 623ms to complete.                                   
18:48:05 [Server Warning] Server overloaded. A tick took 703ms to complete.                                   
18:48:22 [Server Warning] Server overloaded. A tick took 1066ms to complete.                                  
18:48:36 [Server Warning] Server overloaded. A tick took 694ms to complete.                                   
18:48:40 [Server Warning] Server overloaded. A tick took 761ms to complete.                                   
18:48:41 [Server Warning] Server overloaded. A tick took 838ms to complete.                                   
18:48:45 [Server Warning] Server overloaded. A tick took 1127ms to complete.

This is on a Ryzen 5 3600x, so I really doubt lack of CPU power is the problem

JulianGro commented 3 years ago

Just for reference, I am on Nvidia as well and am not experiencing any lagspikes or microstutter even. Both singeplayer and on server. Linux Mint 19.3 with GTX 1080 Nvidia Proprietary 450.80.02, Mono JIT compiler version 6.12.0.107, Kernel 5.4.0-58-generic, i7-7800x 4,8GHz with acpi-cpufreq on Performance and NVME storage.

TheSHEEEP commented 3 years ago

The "unplayable glitches" where fps drops to 1 or below for several seconds seem to be related to the game periodically auto saving.

I am thinking the same. I experience these on both Manjaro and Ubuntu (on two different PCs) - though much less on the PC with the stronger CPU.

I think it is fair to say this isn't GPU-related at all. The graphics are simply not "high end" enough to make any of my PCs break a sweat from that. My bet is on the autosaving or something with the world generation (if it works like Minecraft in that the world is partly generated as you go somewhere) or AI. Anything that might happen in phases where there's nothing and phases with lots of activity.