MMO game works well with Proton but stutters with ethernet connection - help troubleshoot

I’m playing Elder Scrolls Online and the game is working very well, constant FPS 60 on 60hz monitor, no problems.

However, when pvp battles are tough (cyrodiil), I get stutterings and even server disconnections. I thought it was game-side. I talked with other players and they didn’t experience it. I then switched to W11 and noticed there were no stutterings, everything was fluid.

It only happens when there’s loads of action going on.

So it’s linux. How can I troubleshoot this? Seems the internet connection, the way the game is connected - is to blame.

I’m using Manjaro XFCE, default ethernet kernel driver.

Welcome to Manjaro! :smiling_face_with_three_hearts:

  1. Please read the information behind this link. It will help you to post necessary information.
  1. Please press the three dots below your post and then press the :pencil2:
  • If you give us information about your system, we can see what we’re talking about and make better suggestions.
  • You can do this by using inxi in a terminal or in console.
sudo inxi --admin --verbosity=7 --filter --no-host --width
  • Personally identifiable information such as serial numbers and MAC addresses are filtered out by this command
  • Presenting the information in this way allows everyone to be familiar with the format and quickly find the items they need without missing anything.
  1. Copy the output from inxi (including the command) and paste it into your post.
  • To make it more readable, add 3 backticks ``` on an extra line before and after the pasted text.

Have you already :mag: for your problem in the forum ? (Wisdom lies in asking → listening → reading :wink: )

    System:
  Kernel: 6.5.13-4-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: tsc available: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.5-x86_64
    root=UUID=ee566288-0ef9-4188-b026-f10948b277aa rw quiet splash apparmor=1
    security=apparmor udev.log_priority=3
  Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm
    v: 4.18.0 dm: LightDM v: 1.32.0 Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: Micro-Star model: B450 TOMAHAWK MAX (MS-7C02) v: 1.0
    serial: <filter> UEFI: American Megatrends LLC. v: 3.I0 date: 10/14/2023
Battery:
  Message: No system battery data found. Is one present?
Memory:
  System RAM: total: 32 GiB available: 31.27 GiB used: 4.24 GiB (13.6%)
  Array-1: capacity: 128 GiB slots: 4 modules: 2 EC: None
    max-module-size: 32 GiB note: est.
  Device-1: DIMM 0 type: no module installed
  Device-2: DIMM 1 type: DDR4 detail: synchronous unbuffered (unregistered)
    size: 16 GiB speed: 3200 MT/s volts: curr: 1.2 min: 1.2 max: 1.2
    width (bits): data: 64 total: 64 manufacturer: Kingston
    part-no: KHX3200C16D4/16GX serial: <filter>
  Device-3: DIMM 0 type: no module installed
  Device-4: DIMM 1 type: DDR4 detail: synchronous unbuffered (unregistered)
    size: 16 GiB speed: 3200 MT/s volts: curr: 1.2 min: 1.2 max: 1.2
    width (bits): data: 64 total: 64 manufacturer: Kingston
    part-no: KHX3200C16D4/16GX serial: <filter>
CPU:
  Info: model: AMD Ryzen 7 3700X socket: AM4 bits: 64 type: MT MCP arch: Zen 2
    gen: 3 level: v3 note: check built: 2020-22 process: TSMC n7 (7nm)
    family: 0x17 (23) model-id: 0x71 (113) stepping: 0 microcode: 0x8701030
  Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB L3: 32 MiB
    desc: 2x16 MiB
  Speed (MHz): avg: 2287 high: 3600 min/max: 2200/4426 boost: enabled
    base/boost: 3600/4400 scaling: driver: acpi-cpufreq governor: schedutil
    volts: 1.1 V ext-clock: 100 MHz cores: 1: 2200 2: 2200 3: 2200 4: 2200
    5: 2200 6: 2200 7: 2200 8: 2200 9: 3600 10: 2200 11: 2200 12: 2200 13: 2200
    14: 2200 15: 2200 16: 2200 bogomips: 115247
  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 bmi1
    bmi2 bpext cat_l3 cdp_l3 clflush clflushopt clwb clzero cmov cmp_legacy
    constant_tsc cpb cpuid cqm cqm_llc cqm_mbm_local cqm_mbm_total
    cqm_occup_llc cr8_legacy cx16 cx8 de decodeassists extapic extd_apicid
    f16c flushbyasid fma fpu fsgsbase fxsr fxsr_opt ht hw_pstate ibpb ibs
    irperf lahf_lm lbrv lm mba mca mce misalignsse mmx mmxext monitor movbe
    msr mtrr mwaitx nonstop_tsc nopl npt nrip_save nx osvw overflow_recov pae
    pat pausefilter pclmulqdq pdpe1gb perfctr_core perfctr_llc perfctr_nb
    pfthreshold pge pni popcnt pse pse36 rapl rdpid rdpru rdrand rdseed rdt_a
    rdtscp rep_good sep sev sev_es sha_ni skinit smap smca smep ssbd sse sse2
    sse4_1 sse4_2 sse4a ssse3 stibp succor svm svm_lock syscall tce topoext
    tsc tsc_scale umip v_spec_ctrl v_vmsave_vmload vgif vmcb_clean vme vmmcall
    wbnoinvd wdt x2apic xgetbv1 xsave xsavec xsaveerptr xsaveopt
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed mitigation: untrained return thunk; SMT enabled with STIBP
    protection
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, STIBP:
    always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Navi 23 [Radeon RX 6650 XT / 6700S 6800S] vendor: Sapphire
    driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm)
    built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 16 ports:
    active: DP-1,HDMI-A-1 empty: DP-2,DP-3 bus-ID: 28:00.0 chip-ID: 1002:73ef
    class-ID: 0300
  Display: x11 server: X.org v: 1.21.1.10 compositor: xfwm v: 4.18.0 driver:
    X: loaded: amdgpu unloaded: modesetting,radeon alternate: fbdev,vesa
    dri: radeonsi gpu: amdgpu display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 3840x1200 s-size: <missing: xdpyinfo>
  Monitor-1: DP-1 mapped: DisplayPort-0 pos: primary,left model: Dell U2415
    serial: <filter> built: 2019 res: 1920x1200 hz: 60 dpi: 94 gamma: 1.2
    size: 518x324mm (20.39x12.76") diag: 611mm (24.1") ratio: 16:10 modes:
    max: 1920x1200 min: 720x400
  Monitor-2: HDMI-A-1 mapped: HDMI-A-0 pos: right model: Dell U2415
    serial: <filter> built: 2015 res: 1920x1200 hz: 60 dpi: 94 gamma: 1.2
    size: 518x324mm (20.39x12.76") diag: 611mm (24.1") ratio: 16:10 modes:
    max: 1920x1200 min: 720x400
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast surfaceless: drv: radeonsi x11: drv: radeonsi
    inactive: gbm,wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 23.1.9-manjaro1.1
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 6650 XT (navi23 LLVM
    16.0.6 DRM 3.54 6.5.13-4-MANJARO) device-ID: 1002:73ef memory: 7.81 GiB
    unified: no
Audio:
  Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel v: kernel pcie:
    gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 28:00.1 chip-ID: 1002:ab28
    class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 2a:00.4 chip-ID: 1022:1487 class-ID: 0403
  API: ALSA v: k6.5.13-4-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.0.0 status: n/a (root, process) tools: pw-cli
  Server-3: PulseAudio v: 16.1 status: active (root, process)
    with: pulseaudio-alsa type: plugin tools: pacat,pactl,pavucontrol
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Micro-Star MSI driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 port: f000 bus-ID: 22:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp34s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Message: No bluetooth data found.
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 2.27 TiB used: 1.85 TiB (81.2%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
    model: SSD 970 EVO Plus 500GB size: 465.76 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 2B2QEXM7 temp: 41.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Western Digital
    model: WD2003FZEX-00SRLA0 size: 1.82 TiB block-size: physical: 4096 B
    logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 7200 serial: <filter>
    fw-rev: 1A01 scheme: GPT
  Optical-1: /dev/sr0 vendor: HL-DT-ST model: DVDRAM GH24NSD1 rev: LG00
    dev-links: cdrom
  Features: speed: 12 multisession: yes audio: yes dvd: yes
    rw: cd-r,cd-rw,dvd-r,dvd-ram state: running
Partition:
  ID-1: / raw-size: 38 GiB size: 37.11 GiB (97.64%) used: 17.87 GiB (48.2%)
    fs: ext4 block-size: 4096 B dev: /dev/nvme0n1p4 maj-min: 259:4 label: N/A
    uuid: ee566288-0ef9-4188-b026-f10948b277aa
  ID-2: /boot/efi raw-size: 100 MiB size: 96 MiB (96.00%)
    used: 73.2 MiB (76.3%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
    maj-min: 259:1 label: N/A uuid: 721D-0188
  ID-3: /mnt/14D826C5D826A548 raw-size: 1.82 TiB size: 1.82 TiB (100.00%)
    used: 1.52 TiB (83.4%) fs: ntfs block-size: 4096 B dev: /dev/sda1
    maj-min: 8:1 label: Foto uuid: 14D826C5D826A548
  ID-4: /mnt/441A1DF41A1DE428 raw-size: 427.06 GiB size: 427.06 GiB (100.00%)
    used: 319.08 GiB (74.7%) fs: ntfs block-size: 4096 B dev: /dev/nvme0n1p3
    maj-min: 259:3 label: N/A uuid: 441A1DF41A1DE428
Swap:
  Alert: No swap data was found.
Unmounted:
  ID-1: /dev/nvme0n1p2 maj-min: 259:2 size: 16 MiB fs: N/A label: N/A uuid: N/A
  ID-2: /dev/nvme0n1p5 maj-min: 259:5 size: 605 MiB fs: ntfs label: N/A
    uuid: FE80E2C680E2850D
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 10 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-2: 1-2:2 info: Texas Instruments TUSB8041 4-Port Hub ports: 4 rev: 2.1
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 0451:8142
    class-ID: 0900
  Hub-3: 1-2.4:4 info: Texas Instruments TUSB8041 4-Port Hub ports: 4
    rev: 2.1 speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 0451:8142
    class-ID: 0900
  Device-1: 1-2.4.3:6 info: Texas Instruments Instruments USBtoI2C Solution
    type: HID driver: hid-generic,usbhid interfaces: 1 rev: 1.1
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 100mA
    chip-ID: 0451:ca01 class-ID: 0300 serial: <filter>
  Device-2: 1-8:3 info: Logitech Keyboard K120 type: keyboard,HID
    driver: hid-generic,usbhid interfaces: 2 rev: 1.1 speed: 1.5 Mb/s (183 KiB/s)
    lanes: 1 mode: 1.0 power: 90mA chip-ID: 046d:c31c class-ID: 0300
  Device-3: 1-9:5 info: Logitech M185 compact wireless mouse type: mouse
    driver: hid-generic,usbhid interfaces: 1 rev: 1.1 speed: 12 Mb/s (1.4 MiB/s)
    lanes: 1 mode: 1.1 power: 50mA chip-ID: 046d:c542 class-ID: 0301
  Hub-4: 2-0:1 info: super-speed hub ports: 4 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-5: 2-2:2 info: Texas Instruments TUSB8041 4-Port Hub ports: 4 rev: 3.0
    speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 chip-ID: 0451:8140
    class-ID: 0900
  Hub-6: 2-2.4:3 info: Texas Instruments TUSB8041 4-Port Hub ports: 4
    rev: 3.0 speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1
    chip-ID: 0451:8140 class-ID: 0900
  Hub-7: 3-0:1 info: hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-8: 4-0:1 info: super-speed hub ports: 4 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 48.1 C mobo: N/A gpu: amdgpu temp: 43.0 C
    mem: 44.0 C
  Fan Speeds (rpm): N/A gpu: amdgpu fan: 0
Info:
  Processes: 365 Uptime: 3m wakeups: 0 Init: systemd v: 254 default: graphical
  tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6 Packages: pm: pacman
  pkgs: 1109 libs: 329 tools: pamac pm: flatpak pkgs: 0 Shell: Sudo (sudo)
  v: 1.9.15p2 default: Bash v: 5.2.21 running-in: xfce4-terminal inxi: 3.3.31

Probably a delay because of dns requests. Try using a local dns cache like dnsmasq with NetworkManager.

1 Like

Will do now. do you think I should raise the cache, like suggested in that wiki?

/etc/NetworkManager/dnsmasq.d/cache.conf

cache-size=1000

Or leave default as is and try?

Usually the default should be fine.

I’m curious, do you happen to know default dns cache size in Windows 10/11?

I think it’s a bit better with dnsmasq, but still has slight delays. I will try to increase the cache and see if it was a placebo or not.

Also why dnsmasq isn’t enabled by default during manjaro install (it’s installed, just not enabled)?

ipconfig /displaydns

It is a built-in feature. Windows is mainly used on the Desktop, therefore it is that way.

Because it is optional. Usually it resolve each dns request and doesn’t cache it. Linux is mainly used in the server environment and a dns cache on the same system is not necessary and can even be counterproductive. Usually there is a dns server with a cache in the same network, which is shared by a mount of servers.

Usually there is also no problem with that, only if your public dns server of your provider cannot keep up with your requests, thus slows you down. If your game client would request real IPs and not a Domain, then it would eliminate that.

1 Like

Sadly, I still get stutterings. Maybe it’s a bit better, but ping frequently goes from 60-100 to 500-999+ during massive fights.

It happens in Linux only. Game’s ping in W11 is much more stable and there’s no delay.

During big fights with more than 40 players on the screen at once, they move erratically. You see them in one place then there’s like 0.5-1 sec delay and they reappear somewhere else. In W11, the action is fluid.
When fights are smaller, like up to 20 players or so, there’s no stuttering, no delay.

Thanks for the explanation for dnsmasq. I will leave it enabled, since I use Linux as a desktop PC and not server.

Hm… that reminds of Bufferbloat now when I rethink. Idk what exactly the difference between TCP/UDP requests are in your scenario, but it leads me to the conclusion that your router or something on route, cache a lot for some reason and therefore delay the requests/respond. Usually that is prevented by AQM, in other words: prioritization on the router. Here are the ports to prioritize on the router: Support | The Elder Scrolls Online

Secondly you can adjust the ECN (default is 2):

sudo systctl -w net.ipv4.tcp_ecn=1

0: ECN is disabled.
1: ECN is enabled for outgoing connections (TCP packets sent may have the ECN flag set).
2: ECN is enabled for incoming connections (TCP packets with the ECN flag set are accepted).

I did all of the above, but I’m not certain the ports are open now.

When I do telnet 192.168.0.11 80 I get connection refused. I used some websites to test if ports are open and it said they are closed.

To get the local IP address I used in the settings I got it with:

ip addr show enp34s0 | grep 'inet ' | awk '{print $2}' | cut -f1 -d'/'

Well I hope you didn’t open them inbound, but outbound. Usually a software firewall would block outbound ports. A Router blocks always all inbound ports, and don’t open them if you no valid reason.

I said: Prioritize them. Something like that (example fritzbox):

God please, no. Telnet, really? Use nmap. Anyway it is good they are closed inbound, they should be open outbound what is usually the case.

1 Like

I followed one tutorial for ESO settings for the router I have.

What I got is this:

Bear with me, I’m an outsider when networks are concerned. I can set basic stuff, I know what’s what, but when it gets a little bit complicated, I’m lost.

Anyhow, the settings I made in the router didn’t make any much difference in the game. It still stutters, sometimes is better, but I cannot say it’s because of the ports I did in the settings.

I didn’t change anything in the firewall.

Port forwarding means: Make the port public available aka inbound ports. The website say outbound. So actually it is the opposite, and can be really dangerous. Don’t do that. Only if server is running and others need to connect to you.

That was expected.

However. I don’t know exactly what Windows does differently than Linux in your specific case. But it should also be clear that Wine/Proton is only a translation layer, and not a 1:1 copy of Windows. In any case, you can analyze the traffic, but I don’t own the game and you only have rudimentary knowledge in the area. I don’t know how I could help without being there locally.

1 Like

Thanks. I did what that tutorial suggested, step by step. Not sure why they used something that was opposite of what was needed, or even potentially dangerous.

I have found something called Advanced Port Triggering in my router. It says:

This page allows configuration of dynamic triggers to specific devices on the LAN.
This allows for special applications that require specific port numbers with bi-directional
traffic to function properly. Applications such as video conferencing, voice, gaming,
and some messenging program features may require these special settings.

Hopefully that’s the place. That’s the only thing I have closest to ‘prioritization’. Nothing else.

I understand, yes, that’s true. I can hope maybe some of our guys on this forum plays ESO and can share some insight.

Not all routers have that setting. Or it may be called something else like QoS (Quality of Service). I don’t think your router is the problem anyway given that it works fine in Windows.

It might be worth trying the r8168 dkms driver instead of the default r8169 kernel driver;

sudo mhwd -i pci network-r8168

If that doesn’t help, or makes things worse, it’s easily removed again with;

sudo mhwd -r pci network-r8168
1 Like

Wanted to try it but got this message

linux65-r8168: install reason has been set to 'explicitly installed'
modprobe: FATAL: Module r8168 not found in directory /lib/modules/6.5.13-4-MANJARO

You’re running an EOL kernel. Install 6.6 LTS.

I updated the kernel and have the driver, but it doesn’t work. So I switched back to r8169.

Will see today if the game behaves better with a new kernel (drivers) though.

Aside:- You can test which ports are exposed to the Internet using Steve Gibson’s Shields Up suite of online tools. Despite being obviously Windows-centric in terminologies, the site has existed for many years and is well-regarded.

I hope this is a useful bookmark. Cheers.