ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.9k stars 1.04k forks source link

Resident Evil Village (1196590) #4811

Open NTMan opened 3 years ago

NTMan commented 3 years ago

Compatibility Report

System Information

I confirm:

steam-1196590.log

Symptoms

  1. Impossible to change display settings. Clicking on "Display" item in options has not any effect. Screenshot from 2021-05-08 03-15-04

  2. The game crashes after start.

Reproduction

Always. Below the demonstration video (will opened on youtube) Demonstration here

kisak-valve commented 3 years ago

Hello @NTMan, /usr/include/c++/11/array:188: std::array<_Tp, _Nm>::value_type& std::array<_Tp, _Nm>::operator[](std::array<_Tp, _Nm>::size_type) [with _Tp = unsigned int; long unsigned int _Nm = 512; std::array<_Tp, _Nm>::reference = unsigned int&; std::array<_Tp, _Nm>::size_type = long unsigned int]: Assertion '__n < this->size()' failed. looks like a line of interest from the log.

AwesamLinux commented 3 years ago

System Information

Compatibility Report

With Proton Experimental (6.3-20210507) I'm able to get into gameplay (played only like ~10 minutes though so far of the beginning). I can confirm that the display settings can't be changed. Also the cut-scene videos are just a place-holder image.

With regular Proton-6.3-3, the game crashes on launch. steam-1196590-experimental-6.3-20210507.log.zip steam-1196590-proton-6.3-3.log

NTMan commented 3 years ago

In Proton experimental-6.3-20210512b fixed bug with unable changing display settings. But the game still crashing at start. steam-1196590.log

Screenshot from 2021-05-13 05-56-16

UPD: Updating mesa solve this issue.

arzardk commented 3 years ago

Game is fully playable for me but returning to main menu crashes GPU Pop!_OS 20.10 Vega 56, Mesa 21.0.0 steam-1196590.log

CarnageDevs commented 3 years ago

Game works perfectly (excluding cutscenes) but I'm having an issue where after viewing notes, my mouse is unfocused on the game window and camera movement no longer works until I press ESC to open the pause menu and resume the game.

Happens on both borderless and fullscreen.

Running KDE on OpenSUSE Tumbleweed RTX 2080 Ti, driver ver 460.73

Realitaetsverlust commented 3 years ago

System Information:

Compatibility report Game works in general (apart from the graphics menu as OP described), but I have some very weird stripes in the game. 20210515175542_1

Cutscenes are all placeholders too, but that is due to media foundation afaik, so not unexpected.

kisak-valve commented 3 years ago

Hello @Realitaetsverlust, we'll probably want to re-evaluate rendering issues in this game and mesa/radv after https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10692 lands (or try a build of mesa which includes that merge request).

Realitaetsverlust commented 3 years ago

Hello @Realitaetsverlust, we'll probably want to re-evaluate rendering issues in this game and mesa/radv after https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10692 lands (or try a build of mesa which includes that merge request).

Thanks for the answer! I used whatever mhwd delivered me as driver, so I guess I'll just wait for the next rolling update. Thanks for the reply! :)

Hunk4TH commented 3 years ago

Working so far for me with Proton Experimental. However I notice fps drop when shooting an enemy or reloading. Anyone else experience this? I'm using a GTX 1070 I don't get this in Windows.

DomiStyle commented 3 years ago

@Hunk4TH Digital Foundry had the same issue. So it seems like it can happen on Windows too.

Not sure what causes it though, the demo ran perfectly fine on an AMD card.

Hunk4TH commented 3 years ago

@Hunk4TH Digital Foundry had the same issue. So it seems like it can happen on Windows too.

Not sure what causes it though, the demo ran perfectly fine on an AMD card.

That's odd. I beat it on Windows 10 and never encountered that issue. Of course everyone's setup is different. It's still enjoyable imo. Hopefully that occurrence can be fixed though! Of course I'm running KDE Plasma maybe that could be the issue too?

Equivocal90 commented 3 years ago

Game has been running well with Proton Experimental. Running it on mesa-git has resolved the striping issue that @Realitaetsverlust mentioned.

I've ran into a consistent crash to desktop attempting to cross a bridge several hours into the game. I ran the game again with logging enabled and caused the crash. Here is the log steam-1196590.tar.gz

It crashed 5-6 times at roughly the same spot and I tried to changing all the graphics settings to minimum at 720p but the crash still occurred.

kisak-valve commented 3 years ago

Hello @Equivocal90, in your log, it looks like the game hit the same assert as the opening post https://github.com/ValveSoftware/Proton/issues/4811#issuecomment-834898196.

SergeyLatyshev commented 3 years ago

The game stopped working after today's update. I see a black screen, and then the game closes. It worked fine before that (except for crashes when it ate too much VRAM, and also sometimes I saw white space instead of map and inventory). steam-1196590.zip

AwesamLinux commented 3 years ago

System Information

Retest Compatibility Report

Can confirm the game crashes on launch after todays update, just a window with a black screen that then closes.

Tried also with Proton Experimental and 6.12-GE-1

steam-1196590-6.12-GE-1.log steam-1196590-experimental-6.3-20210719.log steam-1196590-proton-6.3-5.log system_info.txt

kisak-valve commented 3 years ago

Hello @SergeyLatyshev, these look like some lines of interest from your log:

328:err:vkd3d_dxil_log_callback: dxil-spirv: Raw 16-bit load-store was used, which must be implemented with SSBO or BDA.
328:err:vkd3d_dxil_log_callback: dxil-spirv: Failed to convert function.
328:warn:create_shader_stage: Failed to compile shader, vkd3d result -3.
328:warn:d3d12_pipeline_state_init_compute: Failed to create Vulkan compute pipeline, hr 0x80070057.
[...]
324:err:vkd3d_dxil_log_callback: dxil-spirv: Invalid component type for image.

Which is followed by an access violation (c0000005). It hints that the game's trying to do something that VKD3D-Proton hasn't been taught to handle yet.

SergeyLatyshev commented 3 years ago

the game's trying to do something that VKD3D-Proton hasn't been taught to handle yet.

So, Capcom added something new and I'll have to wait for further VKD3D progress?

jarrard commented 3 years ago

Did this just start happening when you used a newer proton version? Maybe try a older proton version and see what happens.

Always possible they overwrite the workaround for this.

SergeyLatyshev commented 3 years ago

Did this just start happening when you used a newer proton version? Maybe try a older proton version and see what happens.

No, it was the same Experimental and 6.12-GE. What was changed is the game itself, it got an update yesterday that added AMD FSR and some changes regarding Denuvo.

Actually, I updated the Nvidia driver today from v465 to 470, and after that the game launched once. It ran at exactly 9 fps and crashed as soon as I pressed the inventory key. I had Proton logging turned off, so I don't have a log file, and the game cannot launch since that.

jarrard commented 3 years ago

Yeah maybe something in FSR support not quite ready for Linux atm. Hopefully very soon.

ChrisLauinger77 commented 3 years ago

It does also not start any more for me after the update :( https://gist.github.com/ChrisLauinger77/ac3f8a7cf89c1499688617bbad1d0cdb

Oschowa commented 3 years ago

The crashes with the new update are caused by the added fp16 FSR shaders and should be fixed in vkd3d-proton master. Users on older AMD gpus will also need this Mesa patch for FSR to look correctly: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12004
I hope the vkd3d-proton fixes can make it into the next experimental update, in the meantime, you can manually overwrite the 64bit d3d12.dll shipped by Proton with a build of vkd3d-proton master to make it work again.

Oschowa commented 3 years ago

Also the game needs to be launched with WINEDLLOVERRIDES=dxgi=b %command% to get any kind of decent performance as recent Proton is missing the dxgi factory workaround for dxvk's dxgi.

NTMan commented 3 years ago

Also the game needs to be launched with WINEDLLOVERRIDES=dxgi=b %command% to get any kind of decent performance as recent Proton is missing the dxgi factory workaround for dxvk's dxgi.

Also without WINEDLLOVERRIDES=dxgi=b %command% the current Proton Experimental 6.3-20210723b leads memory leak.

Screenshot from 2021-07-24 03-47-43 steam-1196590-without-overrides.log

SergeyLatyshev commented 3 years ago

Updated today Proton Experimental runs the game fine, even FSR works (but sometimes the game crashes when I change FSR settings). The game consumes too much RAM though, about 17 GB, even with WINEDLLOVERRIDES=dxgi=b.

ChrisLauinger77 commented 3 years ago

It works 4 me as well - could finish the game now

Mershl commented 3 years ago

Proton experimental + Latest Game Patch shows blue flames on pillars while FSR is enabled. The issue is immediatly fixed once FSR is disabled.

proton-experimental-20210730 + mesa 21.1.6 + RADV + RX6800 Screencast of the issue: https://streamable.com/terer1

Oschowa commented 3 years ago

@Mershl i can reproduce this on the vkd3d-proton version shipped in Proton Experimental, but it seems to already be fixed in vkd3d-proton master - it works fine if I overwrite the d3d12.dll in Proton - Experimental/files/lib64/wine/vkd3d-proton with a vkd3d-proton master build. @aeikum for awareness that vkd3d-proton might need a bump in Experimental :)

NTMan commented 3 years ago

After latest update Resident Evil 8 crashes for me:

  1. When I load save when I go to Karl Heisenberg factory first time. steam-1196590-1.log https://youtu.be/Nr97A8fMozU

  2. When I load save when I go to Donna Beneviento first time. steam-1196590-2.log https://youtu.be/piUZTpkWc28

  3. When I start new game. steam-1196590-3.log https://youtu.be/hJX0Yqr7tgg

All these crashes unites one error "Unhandled exception: assertion failed in 64-bit code"

kisak-valve commented 3 years ago

Hello @NTMan, your assert has changed slightly from before: /usr/include/c++/11/array:188: std::array<_Tp, _Nm>::value_type& std::array<_Tp, _Nm>::operator[](std::array<_Tp, _Nm>::size_type) [with _Tp = aco::{anonymous}::Idx; long unsigned int _Nm = 512; std::array<_Tp, _Nm>::reference = aco::{anonymous}::Idx&; std::array<_Tp, _Nm>::size_type = long unsigned int]: Assertion '__n < this->size()' failed.

Venemo commented 3 years ago

@NTMan Thanks for the bug report. How do you get the logs that contain the mesa assertion failures? I'm able to reproduce a game crash but I can't see any of these assertion failures here. I simply get this:

wine: Unhandled page fault on read access to 000000000000000C at address 000000035E594CB6 (thread 0148)
Venemo commented 3 years ago

I did find a possible ACO issue by replaying the game's Fossil file. We emit invalid IR when fddx or fddy have a uniform source. I was able to fix that issue, but the game still crashes here, and I still don't see an assertion failure.

Venemo commented 3 years ago

I switched to Proton-6.16-GE-1 and with latest mesa, now I can no longer reproduce a crash in Resident Evil Village.

NTMan commented 3 years ago

I switched to Proton-6.16-GE-1 and with latest mesa, now I can no longer reproduce a crash in Resident Evil Village.

For me nothing changed the game still crashing with Proton-6.16-GE-1 and latest mesa https://gitlab.freedesktop.org/mesa/mesa/-/commit/a6a89aaa2f2943532d99d9bc7b80106a1740f237 Only RADV_DEBUG=llvm helps workaround this problem.

https://youtu.be/FR82FKQbZWA

steam-1196590.log

Venemo commented 3 years ago

@NTMan Please let me know what graphics settings you use in the game. I used the "balanced" preset for my testing.

NTMan commented 3 years ago

@NTMan Please let me know what graphics settings you use in the game. I used the "balanced" preset for my testing.

Usually I use "Max" preset with 4K ![Screenshot from 2021-08-30 23-50-18](https://user-images.githubusercontent.com/200750/131389931-fb21575f-5db2-40d9-8255-1d5189b90ad2.png) ![Screenshot from 2021-08-30 23-50-23](https://user-images.githubusercontent.com/200750/131389821-00fa2742-c8c3-423f-a633-11dc4fe1d95a.png)

As you suggested I also checked the game with "balanced" preset. And I can confirm that crash still happening also with "balanced" preset .

steam-1196590-Max.log steam-1196590-Balanced.log

Venemo commented 3 years ago

@NTMan Looking at the two log files attached to your last comment, I no longer see any message in the log like the previous assertion failure, nor anything else that would indicate a mesa crash.

NTMan commented 3 years ago

@NTMan Looking at the two log files attached to your last comment, I no longer see any message in the log like the previous assertion failure, nor anything else that would indicate a mesa crash.

Looks like Proton GE is less verbose than Proton Experimental. The line with EXCEPTION_WINE_ASSERTION is present in the log with same code.

131388.327:0110:0254:fixme:secur32:get_mac_algid unknown algorithm 200, cipher 23
131398.202:0110:014c:trace:seh:dispatch_exception code=80000101 flags=1 addr=00007F344ADDD743 ip=00007F344ADDD743 tid=014c
131398.202:0110:014c:warn:seh:dispatch_exception EXCEPTION_WINE_ASSERTION exception (code=80000101) raised
Venemo commented 3 years ago

@NTMan I will try the "Max" settings tomorrow. I'm pretty sure that the game is stable for me on "Balanced". At least, I can start a new game and get as far as the snowy scene, without a crash.

Are there any other settings in the game which may be different on your machine?

Do you use a packaged version of mesa or do you build the latest main for yourself?

Can you please try this environment variable? ACO_DEBUG=noopt

Thank you!

NTMan commented 3 years ago

@NTMan I will try the "Max" settings tomorrow. I'm pretty sure that the game is stable for me on "Balanced". At least, I can start a new game and get as far as the snowy scene, without a crash.

Are there any other settings in the game which may be different on your machine?

I has two machines with same configs: ROG Strix X570-I/Ryzen 3950X/64GB RAM/Radeon 6900XT/512Gb SSD/18Tb HDD/4K monitor The only difference between them is the used filesystem on one ext4, on the other xfs. The game crashes both there and there. I almost forgot to mention that the Resizable Bar is enabled everywhere.

Do you use a packaged version of mesa or do you build the latest main for yourself?

I checked both mesa. My distro shipping with mesa 21.2.1-3 and with this mesa the game crashes too. steam-1196590-mesa-a6a89aaa2f2943532d99d9bc7b80106a1740f237.log steam-1196590-mesa-21.2.1-3.log

Can you please try this environment variable? ACO_DEBUG=noopt

Hmm, I can confirm that this environment variable fixes crashes on both mesa versions. steam-1196590-mesa-a6a89aaa2f2943532d99d9bc7b80106a1740f237-ACO_DEBUG=noopt.log steam-1196590-mesa-21.2.1-3-ACO_DEBUG=noopt.log

Venemo commented 3 years ago

Thanks @NTMan - I have a very similar system: Ryzen 3900X with RX 6900XT. I don't know why I don't see the crash, but I'll try again.

Do you have a save game to reproduce the crash? Or does the game crash for you immediately after starting a new game?

If the game works with ACO_DEBUG=noopt that means the crash is an optimizer bug. Judging by the assertion you had in the logs, it's likely a bug in the post-RA optimizer.

NTMan commented 3 years ago

Thanks @NTMan - I have a very similar system: Ryzen 3900X with RX 6900XT. I don't know why I don't see the crash, but I'll try again.

Do you have a save game to reproduce the crash? Or does the game crash for you immediately after starting a new game?

Starting new game with any difficulty is enough. The main thing is initial video begin playing.

Venemo commented 3 years ago

@NTMan Do you use GCC or clang for building mesa? Also do you use any experimental compiler features such as LTO? Can you please share with me what commands you used when you built mesa? Just asking so that I can reproduce exactly what you have.

NTMan commented 3 years ago

@NTMan Do you use GCC or clang for building mesa? Also do you use any experimental compiler features such as LTO? Can you please share with me what commands you used when you built mesa? Just asking so that I can reproduce exactly what you have.

GCC with options

LTO_FLAGS="-fcommon -g0 -ffat-lto-objects -flto-odr-type-merging"
export CFLAGS="$CFLAGS -falign-functions=32 -fno-semantic-interposition $LTO_FLAGS "
export FCFLAGS="$CFLAGS -falign-functions=32 -fno-semantic-interposition $LTO_FLAGS "
export FFLAGS="$CFLAGS -falign-functions=32 -fno-semantic-interposition $LTO_FLAGS "
export CXXFLAGS="$CXXFLAGS -std=c++14 -falign-functions=32 -fno-semantic-interposition $LTO_FLAGS "
export LDFLAGS="$LDFLAG0S -flto=8 "

build.log

Venemo commented 3 years ago

I ran your export commands before meson, then compiled with ninja as usual. I can't reproduce the crash still... From the build log I see that you also use Fedora. Can you send me the rpm files that you built? Maybe I can try those.

NTMan commented 3 years ago

I ran your export commands before meson, then compiled with ninja as usual. I can't reproduce the crash still... From the build log I see that you also use Fedora. Can you send me the rpm files that you built? Maybe I can try those.

mesa.spec[remove].txt

Here is all rpms: https://drive.google.com/drive/folders/1ygVHf5JeQ2tSSU89xAxWEi0nhmzfwIJC?usp=sharing

Venemo commented 3 years ago

Thanks. Is this really a build for Fedora 36? It seems that it can't be installed on Fedora 34 due to missing dependencies.
I also tried building the .spec file, but fedpkg doesn't work with it. Can you give me some instructions how to build it?

Also, I think this is a typo:
export LDFLAGS="$LDFLAG0S -flto=8 " should be:
export LDFLAGS="$LDFLAGS -flto=8 "

NTMan commented 3 years ago

Thanks. Is this really a build for Fedora 36?

Yes. Fedora Rawhide switched to F36 branch.

It seems that it can't be installed on Fedora 34 due to missing dependencies.

Yes, needed fresh glibc and llvm.

I also tried building the .spec file, but fedpkg doesn't work with it. Can you give me some instructions how to build it?

1. Download source mesa archive.
$ spectool -g -R mesa.spec

2. Create source rpm
$ rpmbuild -bs mesa.spec

3. Build rpm packages with mock container.
$ mock -r fedora-rawhide-i386 --rebuild ~/rpmbuild/SRPMS/mesa-21.3.0-0.3.20210830.20.a6a89aa.fc36.src.rpm && mock -r fedora-rawhide-x86_64 --rebuild ~/rpmbuild/SRPMS/mesa-21.3.0-0.3.20210830.20.a6a89aa.fc36.src.rpm

Of course for F34 instead of fedora-rawhide-i386 and fedora-rawhide-x86_64 should be used fedora-34-i386 and fedora-34-x86_64 values.

Missed source files you can extract from src.rpm package.

Venemo commented 3 years ago

Can you confirm that this patch fixes the crash? https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12664

NTMan commented 3 years ago

Can you confirm that this patch fixes the crash? https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12664

This patch helps only for the game "Aliens: Fireteam Elite", unfortunately "Resident Evil Village" still crashes.

/usr/include/c++/11/array:188: std::array<_Tp, _Nm>::value_type& std::array<_Tp, _Nm>::operator[](std::array<_Tp, _Nm>::size_type) [with _Tp = unsigned int; long unsigned int _Nm = 512; std::array<_Tp, _Nm>::reference = unsigned int&; std::array<_Tp, _Nm>::size_type = long unsigned int]: Assertion '__n < this->size()' failed.
45778.643:010c:0144:trace:seh:dispatch_exception code=80000101 flags=1 addr=00007FA529921743 ip=00007FA529921743 tid=0144
45778.643:010c:0144:err:seh:dispatch_exception Fatal EXCEPTION_WINE_ASSERTION exception (code=80000101) raised

steam-1196590-6.16-GE-1.log steam-1196590-experimental-6.3-20210830.log