ValveSoftware / Proton

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

Knuckle Sandwich Demo (2121940) #6526

Open londiebrondie opened 1 year ago

londiebrondie commented 1 year ago

Compatibility Report

System Information

I confirm:

Symptoms

Before you get in-game, you have the option to "Play from the Beginning" or "Skip to Chapter 1". If you select "Play from Beginning", the game runs fine until reach the "Space Cleaner" minigame (it crashes). If you choose the "Skip to Chapter 1" option, the game crashes while attempting to load in the map. In the log I included, I choose the "Skip to Chapter 1" option.

Log

steam-2121940.log

Reproduction

  1. Boot into the game using Proton
  2. When given the option, do not change any settings
  3. When given the option to, "Skip to Chapter 1"
  4. Wait for the game to crash! It only takes a few seconds :)

Suspicions

My major suspicion is that using dxvk-2.1 is breaking the game, and that dxvk-2.0 will fix the game. Where did I get this idea? Well, I tried using bottles (with sys-wine 7.0.1 and dxvk 2.0) and it ran just fine. If I switched to dxvk 2.1 however, the game would crash. I would definitely compile a custom version of proton with dxvk-2.0 to test my theory, but I unfortunately don't know how to do that.

kisak-valve commented 1 year ago

Hello @londiebrondie, these look like some lines of interest from the log:

FATAL ERROR in Vertex Shader compilation

ShaderName: blur_shdr

memory:67:25: E5005: Function "transpose" is not defined.

at gml_Object_clouds_Draw_0
kisak-valve commented 1 year ago

Possibly already implemented in upstream vkd3d-shader: https://gitlab.winehq.org/wine/vkd3d/-/commit/09e7218539a3c636bcb5282c573b7295f5432f8b

londiebrondie commented 1 year ago

Alright @kisak-valve, thanks for your input. What happens now?

Blisto91 commented 1 year ago

If that's the issue then it will likely get pulled in in a future proton update.

londiebrondie commented 1 year ago

This is important, so please read it @kisak-valve. I've solved the problem, I've found the stinky file. I found out that, in order to get the game to work, you need to replace the /syswow64/d3dcompiler_43.dll included in Proton Experimental with the d3dcompiler43.dll that's included in bottles. I noticed that the d3dcompiler43.dll in Proton Experimental is 380.4 KiB (389,558), meanwhile the d3dcompiler_43.dll in bottles is 2.0 MiB (2,106,216). Maybe the one in Proton Experimental is outdated? I don't know exactly where the bottles app gets its d3dcompiler files from, but something tells me you'd find it on this page: https://usebottles.com/database/dependencies/

Keep me updated on what happens please 👍

Blisto91 commented 1 year ago

Those bottles dependencies are the native Windows ones

londiebrondie commented 1 year ago

Those bottles dependencies are the native Windows ones

Weird, then why does the game work with that .dll file?

Blisto91 commented 1 year ago

Because there is a bug or missing implementation with the one Proton (wine) provides. Afaik there have been some upstream work on these dll's since Proton 7 was made. So perhaps if we are lucky it'll work with Proton 8 which will be based on upstream wine 8.x

londiebrondie commented 10 months ago

NOTE: This has not been fixed yet. The full game releases in a few weeks.

hdkronke commented 9 months ago

I encountered this exact issue while playing the full version of Knuckle Sandwich. I hope this gets fixed soon!

hdkronke commented 9 months ago

Potential solution here: https://steamcommunity.com/app/1012570/discussions/0/4039227870118935892/

londiebrondie commented 9 months ago

Potential solution here: https://steamcommunity.com/app/1012570/discussions/0/4039227870118935892/

Yes this solution works because I made it and they just took it :joy: At least they linked to my original message