protonscr

The Last of Us 1, performance worse than Windows

vkd3dopen
HansKristian-Work/vkd3d-proton#2671 · opened 2025-10-23 by rcv11x · updated 2026-07-26 · 9 comments · github
Rrcv11x 2025-10-23 github

Hello, first of all, sorry if this doesn't belong here, but I think since it's a dx12 game, it's a good idea to include it.

Well, it turns out I've been testing The Last of Us Part 1's performance on Linux and Windows for several months, and on Linux, it's easily ~20 fps slower. However, The Last of Us Part 2 on Linux runs like Windows or even surpasses it in fps and stability (it's a better port). Would it be possible to investigate why this is happening? It would be great to fix it, if possible.

Software information

Name of the game, settings used etc.

System information

  • GPU: AMD RX 9070 XT 16Gb
  • Driver: mesa 25.2.5
  • Wine version:
  • VKD3D-Proton version: Test on ProtonGE 20 and proton experimental

Log files

Please attach Proton or Wine logs as a text file:

  • When using Proton, set the Steam launch options for your game to PROTON_LOG=1 %command% and attach the corresponding steam-xxxxx.log file in your home directory.
  • When using regular Wine, use wine game.exe > game.log 2>&1 and attach the resulting game.log file.
HHansKristian-Work maintainer 2025-10-23 github

Which settings are you using? Is RT enabled? Can it be reproduced early in the game?

Rrcv11x 2025-10-24 github

I run the game with settings at 1440p Ultra. The game does not have RT. These settings are the same in Windows 11 Pro and Linux CachyOS. Do you think you could look into this stability and FPS issue? Thank you very much.

HHansKristian-Work maintainer 2025-10-24 github

Well, everything I'm seeing so far is that it's just heavily CPU bound for some reason, and the game just crashes on boot on Windows (tried everything I could to fix it, but nothing), so I cannot do comparisons myself <_<.

Rrcv11x 2025-10-24 github

Do you need me to help you with anything to make comparisons or screenshots, logs...??

HHansKristian-Work maintainer 2025-10-24 github

Was finally able to make game work on windows, and yes, even with GPU fully loaded at 100%, there's some bullshit going on with GPU perf. We'll investigate.

HHansKristian-Work maintainer 2025-10-24 github

Fun. It seems like AMD is doing some very special app-opt on some of the heavy lighting shaders.

$ ./d3d12-replayer.exe --json /e/tlou/cs_light_froxels_and_temporal/capture.json
[INFO]: Total ticks: 219634544, total timestamps: 1159
[INFO]: Total time per dispatch: 1895.035 us

post@DESKTOP-RT1V3M4 MINGW64 ~/git/d3d12-replayer/build-mingw/output/bin
$ cp d3d12-replayer.exe tlou-i.exe

post@DESKTOP-RT1V3M4 MINGW64 ~/git/d3d12-replayer/build-mingw/output/bin
$ ./tlou-i.exe --json /e/tlou/cs_light_froxels_and_temporal/capture.json
[INFO]: Total ticks: 46513240, total timestamps: 652
[INFO]: Total time per dispatch: 713.393 us

RADV is hitting some extremely bad performance in this particular shader for whatever reason, so that likely explains a lot of why ultra is so slow.

HHansKristian-Work maintainer 2025-10-24 github
Rrcv11x 2025-10-24 github

Wow, thanks for the help and the report! I hope it gets fixed with Mesa.

I have two questions:

  1. If I lower the graphics to high, will it work well?
  2. With Mesa 25.3, which is in rc2, will it be fixed in time?
Kkilhaasi 2026-07-26 github

Update to my earlier comment: I ran a native-Linux control test (Counter-Strike 2, Source 2, no Proton) at the same settings/resolution and it also shows the identical periodic stall (~60-100→15 FPS, same ~7-9s-scale cycle), while Team Fortress 2 (Source 1, native) stays completely clean. So Proton/VKD3D-Proton is not the root cause here — TLOU and RoboCop (both DX12-via-VKD3D-Proton) are affected, but so is a fully native Vulkan title (CS2), while a simpler native renderer (TF2) is unaffected. Looks like the actual common factor is renderer complexity (multi-queue/async-compute usage) interacting with the RTX 5080 + nvidia-open/GSP firmware stack, not the Proton translation layer itself. Filed as NVIDIA/open-gpu-kernel-modules#1260 with full data — leaving this comment for visibility since it still affects this title under Proton.

Proton versions

Launch options