Protontricks Issue

Hi everyone, there's this issue I've been banging my against for a good while and that's trying to use protontricks with Steam games. In this instance I'm talking specifically about Serious Sam 4, the game runs and stutters terribly but the suggested solution is to get the game running in Vulkan with "protontricks 257420 d3dcompiler_47" otherwise the game crashes when Vulkan is selected. However nobody is explaining how to actually use this trick on the ProtonDB page itself and I can't find anything in my searches, even though d3dcompiler_47 is already installed in that prefix.

I could really use some help here, the game is great fun but the horrible stuttering makes it nigh impossible to enjoy.

 System:
  Kernel: 6.0.11-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=d1811421-52d9-438e-bac3-684cad066ec0 rw rootflags=subvol=@
    quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    loglevel=3 ibt=off
  Desktop: Cinnamon v: 5.6.4 tk: GTK v: 3.24.35 wm: muffin vt: 7 dm: LightDM
    v: 1.32.0 Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Desktop System: Tactus product: Custom v: N/A
    serial: <superuser required>
  Mobo: ASUSTeK model: ROG STRIX X570-E GAMING WIFI II v: Rev X.0x
    serial: <superuser required> UEFI: American Megatrends v: 4101
    date: 09/10/2021
Battery:
  Device-1: hidpp_battery_0 model: Logitech G305 Lightspeed Wireless Gaming
    Mouse serial: <filter> charge: 100% (should be ignored) rechargeable: yes
    status: discharging
CPU:
  Info: model: AMD Ryzen 9 5900X bits: 64 type: MT MCP arch: Zen 3 gen: 4
    level: v3 note: check built: 2021-22 process: TSMC n7 (7nm)
    family: 0x19 (25) model-id: 0x21 (33) stepping: 2 microcode: 0xA201204
  Topology: cpus: 1x cores: 12 tpc: 2 threads: 24 smt: enabled cache:
    L1: 768 KiB desc: d-12x32 KiB; i-12x32 KiB L2: 6 MiB desc: 12x512 KiB
    L3: 64 MiB desc: 2x32 MiB
  Speed (MHz): avg: 3686 high: 3700 min/max: 2200/4950 boost: enabled
    scaling: driver: acpi-cpufreq governor: performance cores: 1: 3700 2: 3700
    3: 3700 4: 3593 5: 3700 6: 3700 7: 3700 8: 3700 9: 3700 10: 3700 11: 3700
    12: 3700 13: 3700 14: 3700 15: 3700 16: 3593 17: 3700 18: 3590 19: 3700
    20: 3700 21: 3700 22: 3700 23: 3700 24: 3700 bogomips: 177263
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  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 status: Not affected
  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, IBRS_FW,
    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 21 [Radeon RX 6800/6800 XT / 6900 XT] vendor: Gigabyte
    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-2
    empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 0c:00.0 chip-ID: 1002:73bf
    class-ID: 0300
  Display: x11 server: X.Org v: 21.1.4 with: Xwayland v: 22.1.5 driver: X:
    loaded: amdgpu unloaded: modesetting,radeon alternate: fbdev,vesa
    dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 96 s-size: 677x381mm (26.65x15.00")
    s-diag: 777mm (30.58")
  Monitor-1: DP-2 mapped: DisplayPort-1 model: Gigabyte AORUS FI32Q
    serial: <filter> built: 2021 res: 2560x1440 dpi: 93 gamma: 1.2
    size: 698x392mm (27.48x15.43") diag: 801mm (31.5") ratio: 16:9 modes:
    max: 2560x1440 min: 720x400
  API: OpenGL v: 4.6 Mesa 22.2.3 renderer: AMD Radeon RX 6800 XT (navi21
    LLVM 14.0.6 DRM 3.48 6.0.11-zen1-1-zen) direct render: Yes
Audio:
  Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel v: kernel pcie:
    bus-ID: 1-3:2 chip-ID: 19f7:0003 gen: 4 class-ID: 0300 speed: 16 GT/s
    lanes: 16 bus-ID: 0c:00.1 chip-ID: 1002:ab28 class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 0e:00.4 chip-ID: 1022:1487 class-ID: 0403
  Device-3: RODE Microphones NT-USB type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Device-4: Creative Pebble V3 type: USB
    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 5-2:2 chip-ID: 041e:3272
    class-ID: 0300 serial: <filter>
  Sound API: ALSA v: k6.0.11-zen1-1-zen running: yes
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.61 running: yes
Network:
  Device-1: MEDIATEK MT7921K Wi-Fi 6E 80MHz driver: mt7921e v: kernel pcie:
    gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 04:00.0 chip-ID: 14c3:0608
    class-ID: 0280
  IF: wlp4s0 state: up mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 05:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp5s0 state: down mac: <filter>
  Device-3: Intel I211 Gigabit Network vendor: ASUSTeK driver: igb v: kernel
    pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: d000 bus-ID: 06:00.0
    chip-ID: 8086:1539 class-ID: 0200
  IF: enp6s0 state: up speed: 100 Mbps duplex: full mac: <filter>
Bluetooth:
  Device-1: MediaTek Wireless_Device type: USB driver: btusb v: 0.8
    bus-ID: 1-6:4 chip-ID: 0e8d:0608 class-ID: e001 serial: <filter>
  Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
Drives:
  Local Storage: total: 8.19 TiB used: 3.8 TiB (46.4%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Seagate model: FireCuda 530
    ZP1000GM30013 size: 931.51 GiB block-size: physical: 512 B logical: 512 B
    speed: 63.2 Gb/s lanes: 4 type: SSD serial: <filter> rev: SU6SM001
    temp: 41.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 870 QVO 2TB
    size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 2B6Q
  ID-3: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST2000DM008-2FR102
    size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 7200 serial: <filter> rev: 0001
  ID-4: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST4000NE001-2MA101
    size: 3.64 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 7200 serial: <filter> rev: EN01
Partition:
  ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 125.64 GiB (13.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 125.64 GiB (13.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 125.64 GiB (13.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 125.64 GiB (13.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 62.71 GiB used: 1024 KiB (0.0%)
    priority: 100 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 40.0 C mobo: 34.0 C gpu: amdgpu temp: 62.0 C
    mem: 62.0 C
  Fan Speeds (RPM): N/A gpu: amdgpu fan: 0
Info:
  Processes: 479 Uptime: 3h 12m wakeups: 3 Memory: 62.71 GiB
  used: 8.33 GiB (13.3%) Init: systemd v: 252 default: graphical
  tool: systemctl Compilers: gcc: 12.2.0 Packages: 1455 pm: pacman pkgs: 1443
  libs: 412 tools: paru pm: flatpak pkgs: 12 Shell: fish v: 3.5.1
  default: Bash v: 5.1.16 running-in: gnome-terminal inxi: 3.3.23
Garuda (2.6.10-1):
  System install date:     2022-11-20
  Last full system update: 2022-12-08
  Is partially upgraded:   No
  Relevant software:       NetworkManager
  Windows dual boot:       No/Undetected
  Snapshots:               Snapper
  Failed units:

Did you see this post on Protondb? I suggest checking out some of the comments.

As reported by many users I need to use the following (I have an Nvidia card):

protontricks 257420 d3dcompiler_47
add "+gfxapi D3D12 +sfxapi" to the command argument in Steam (and if the games ask about the game driver just ignore it and press "cancel" to launch the game.
2 Likes

Looks like GloriousEggroll worked on patches for that game some time ago. If what @RodneyCK mentioned doesn't work, I would try ProtonGE.

2 Likes

Yes I've seen that, my issue comes from not knowing how to launch the game from Steam with "protontricks 257420 d3dcompiler_47", I've not use Protontricks this way before so I'm stumped on how to actually use it with games launched through Steam. Selecting the game via Protontricks in the menu just opens up winetricks and putting "protontricks 257420 d3dcompiler_47" into the launch command doesn't do anything neither, as the game will still crash when selecting Vulkan.

Yes I'm using ProtonGE, specifically version 7.41. It definitely helps improve the performance, especially with ASync enabled but it hasn't solved the underlying excess of stutter. It appears using "protontricks 257420 d3dcompiler_47" and then selecting the Vulkan renderer is the fix, I just don't know how to use it when launching the game through Steam unfortunately.

To my knowledge, Protontricks is a lot like, if not the same as Winetricks, only for Steam. You don't run games through either, they are just tools to install MS dlls, and other game related components. Once you install d3dcompiler_47 via Protontricks, then that is all you should need. You start the game as you normally do via Steam.

Regarding putting 'protontricks 257420 d3dcompiler_47' in the launch command, don't do this. You can try what I mentioned above;
"add "+gfxapi D3D12 +sfxapi" to the command argument..." and see if that works.

Edit to add: I haven't really gone through what is required of this game so there may be additional components need to be installed via Protontricks besides d3dcompiler_47. That is for you to determine, but regardless, Protontricks should have it for you to install. good luck!!

2 Likes

That's certainly interesting, by all accounts the game shouldn't be crashing when changing the renderer to Vulkan :thinking: I decided to try opening the game via the local files through using Protontricks, setting the prefix to Serious Sam 4's and changing the renderer seems to work that way? Which is incredibly bizarre to me, must be something to do with Steam if that's the case :confused: Not really a solution, but I guess it's a workaround of some sort until a more concrete answer is found.

But after all my time playing Sam 4 on my old Windows PC I know the engine is not super well optimised and is well known for having issues on AMD cards so it could very well be a case where the stutter can never be fixed in it's entirety.

But thanks a ton for the help! Really appreciate the gesture and educating me on Protontricks nonetheless!

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.