ValveSoftware / Proton

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

Forspoken (1680880) #6474

Open zixaphir opened 1 year ago

zixaphir commented 1 year ago

Compatibility Report

System Information

I confirm:

Symptoms

Game launches to an error dialog titled Luminous.RenderInterface that reads D3D12Core.dll(DirectX.AgilitySDK) didn't be installed on your Windows. Please update Windows.

Reproduction

Attempt to launch game.

steam-1680880.log

SercanDmr commented 1 year ago

RTX 2080 - Same.

Yupy commented 1 year ago

Same here, RX 6600XT

NTMan commented 1 year ago

System Information

steam-1680880.log

Symptoms

At the launch game pop's error "D3D12Core.dll(DirectX AgilitySDK) didn't be installed on your Windows. Please update Windows.".

Screenshot from 2023-01-24 23-38-46

Yupy commented 1 year ago

I found a way on reddit how to make it work, just launch steam with: -steamdeck

NTMan commented 1 year ago

I found a way on reddit how to make it work, just launch steam with: -steamdeck

The game launched, but the graphics look like they are from 2013 even in 4K (soapy textures, angular models). Is this related to this key or is it like that in itself?

steam-1680880-steamdeck.log

Screenshot from 2023-01-25 01-54-32

Katherine1 commented 1 year ago

Looks about the same for me too.

GPU: NVIDIA RTX 3080ti mobile

LiamDawe commented 1 year ago

Launch option: SteamDeck=1 %command%

That works too, but I can't get it above 30FPS. Vsync off and FPS limit set to 120FPS just does nothing here for me on NVIDIA.

ADHDefy commented 1 year ago

I have the same issue as detailed above. SteamDeck=1 %command% does allow it to launch, but changing the graphics settings to anything from the default "low" causes the game to crash.

Katherine1 commented 1 year ago

Launch option: SteamDeck=1 %command%

That works too, but I can't get it above 30FPS. Vsync off and FPS limit set to 120FPS just does nothing here for me on NVIDIA.

It's probably related to the workaround. It seems like the game has some special code paths for the steamdeck, and that may be handicapping things.

materusPL commented 1 year ago

It seems with SteamDeck=1 it is not using D3D12Core.dll at all so probably can't use higher settings because of it. When I moved this dll to be used by proton (it's in game folder) games starts without SteamDeck=1 but is stuck on loading.

Bitwolfies commented 1 year ago

Really hope Valve bans workarounds like this, what happens when Proton can support D3D12 for this game properly and its never able to use it cause of their check. Even if it only applies to the Deck that still means its unable to use it without you knowing to add steamdeck=0 (not even sure if that works on the deck.) This is a bad behavior imo.

Laruni commented 1 year ago

Same here, Radeon RX 590 Series.

SercanDmr commented 1 year ago

Update: It's Working Fine Now. -> No need "SteamDeck=1". | Nvidia RTX 2080

My standard launch command for every game (Nvidia) ->

PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 gamemoderun %command%

materusPL commented 1 year ago

I can confirm it starts now without any parameters, but textures and models still seems to load in low quality and FPS still low. Settings seems to only change fog and water.

Bitwolfies commented 1 year ago

Update: It's Working Fine Now. -> No need "SteamDeck=1". | Nvidia RTX 2080

My standard launch command for every game (Nvidia) ->

PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 gamemoderun %command%

That’s cause valve updated proton to auto apply the steam deck command to forespoken. Wonder if SteamDeck=0 works as a command.

materusPL commented 1 year ago

Update: It's Working Fine Now. -> No need "SteamDeck=1". | Nvidia RTX 2080 My standard launch command for every game (Nvidia) -> PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 gamemoderun %command%

That’s cause valve updated proton to auto apply the steam deck command to forespoken. Wonder if SteamDeck=0 works as a command.

Just checked. SteamDeck=0 brings back D3D12Core.dll error

rabidcopy commented 1 year ago

I hope this doesn't become a trend. If the game works on Steam Deck it should work on Linux, and if it works on Linux it should work on Steam Deck. (with the exception being when the Steam Deck's hardware specifications aren't enough to run the game at acceptable performance, but even then, the game should still launch)

zixaphir commented 1 year ago

While arguably "playable" now, this "Steam Deck code path" is clearly not ideal. The game suffers from framerate issues on all platforms, it seems, but I don't think I've run into anybody on Linux able to consistently hit above mid-20s fps, even without hitting full CPU or GPU usage, while I know Windows users who are faring far better. Along with that, the busted LOD models everywhere are visually atrocious, inconsistent, and are clearly incorrect.

Loading times are also an isssue, but I'm willing to chock that down due to lack of DirectStorage (which my system wouldn't support on Windows anyways)

Katherine1 commented 1 year ago

The vkd3d-proton ticket: https://github.com/HansKristian-Work/vkd3d-proton/issues/1390

mohamadaljaf commented 1 year ago

Here's a stub DLL patch for Wine that returns the lowest SDK version. 0001-d3d12core-Add-stub-DLL.txt

Tsubajashi commented 1 year ago

While arguably "playable" now, this "Steam Deck code path" is clearly not ideal. The game suffers from framerate issues on all platforms, it seems, but I don't think I've run into anybody on Linux able to consistently hit above mid-20s fps, even without hitting full CPU or GPU usage, while I know Windows users who are faring far better. Along with that, the busted LOD models everywhere are visually atrocious, inconsistent, and are clearly incorrect.

Loading times are also an isssue, but I'm willing to chock that down due to lack of DirectStorage (which my system wouldn't support on Windows anyways)

it seems like that someone atleast got the demo running relatively well for the GPU used (as far as i can see) https://www.youtube.com/watch?v=TZV7zBON8EY

zixaphir commented 1 year ago

it seems like that someone atleast got the demo running relatively well for the GPU used (as far as i can see) https://www.youtube.com/watch?v=TZV7zBON8EY

I'm not sure how they're doing that, but according to their Reddit Post, that's out-of-the-box with Proton-GE. I've been trying to download the demo to see if there's a difference between that and the main game, but for whatever reason, Steam isn't letting me install it right now.

jseph1234 commented 1 year ago

RTX 3080 with latest Nvidia Driver. Trying to play the Demo and that same message came up at launch

jseph1234 commented 1 year ago

I copied the D3D12Core.dll from Forspoken D3D12 Folder within the Forspoken Game Folder to My Windows C:\Windows\System32 folder and the Game lanched perfectly without any Launch Parameters needed

zixaphir commented 1 year ago

I copied the D3D12Core.dll to My Windows C:\Windows\System32 folder and the Game lanched perfectly without any Launch Parameters needed

Trying this, I got different results depending on the version of Proton used:

Experimental [standard/bleeding-edge]: ntdll.dll error. Game appears to be working, but the dialog obscures the screen, game does not respond to input, and closing/confirming the dialog force-closes the game.

Proton Next: extremely long loading time followed by game locking up.

And then Denuvo locked me out of the game for 24 hours while I was trying to test other/get more information to post :D

mohamadaljaf commented 1 year ago

d3d12core.zip Here's my Wine compiled d3d12core.dll. Please let me know if it fixes the issue.

system32 SHA512 checksum cbc071a3bbe8f9c28fbd1e38309ff103b736d080b1abcd7492c74ef8af7234481ca5509889ad0b03950c0861f11b94f53dd66688161cbb2604cf9f5ba6b2ceb0

syswow64 SHA512 checksum 99978d17ffa6726715f2a9718ffd05a8e9a41e1590ca46b7f47bac68fa762673707b67069ca48753a92d79319c6b7d25bee862cbcb2131c7ddb23b8b43a18377

Katherine1 commented 1 year ago

Replying to https://github.com/ValveSoftware/Proton/issues/6474#issuecomment-1405954156

No good for me. I tried both dropping the dll into vkd3d-proton in Proton Experimental and tried directly replacing the dll in the game files and neither worked.

jseph1234 commented 1 year ago

Just to be clear. 1: Had Steam check the Integrity of the files 2. I copied D3D12Core.dll from Forspoken D3D12 Folder within the Forspoken Game Folder to My Windows C:\Windows\System32 folder

That resolved it for me and I just got done playing 40 Minutes in the Demo. Hope that Clarifies and helps you guyz

mohamadaljaf commented 1 year ago

Replying to https://github.com/ValveSoftware/Proton/issues/6474#issuecomment-1405958524

Did you try placing it in the wine prefix of the game (steamapps->compatdata) in the system32 and syswow64 folders? Also try running winecfg -> Library, and add d3d12core.

This dll doesn't do anything other than allow the game to check for its existence and version number. It's supposed to load its own shipped d3d12core after checking that it's newer than the windows one. So don't replace that shipped one with this.

Katherine1 commented 1 year ago

Did you try placing it in the wine prefix of the game (steamapps->compatdata) in the system32 and syswow64 folders? Also try running winecfg -> Library, and add d3d12core.

This dll doesn't do anything other than allow the game to check for its existence and version number. It's supposed to load it's own shipped d3d12core after checking that it's newer than the windows one. So don't replace that shipped one with this.

Dropping the dlls into the wine prefix got me past the dx12 error message. However I see an endless loading screen, so one problem down, onto the next.

mohamadaljaf commented 1 year ago

Replying to https://github.com/ValveSoftware/Proton/issues/6474#issuecomment-1405975113

Did you restore the d3d12core file that was in the game directory? Verifying the integrity of the files should restore it.

ajoneil commented 1 year ago

Dropping the dlls into the wine prefix got me past the dx12 error message. However I see an endless loading screen, so one problem down, onto the next.

Using -noDirectStorage as a command line argument fixes the infinite load for me, but then I hit the ntdll error. This is possibly a denuvo error, so perhaps that's not a problem for the demo?

Katherine1 commented 1 year ago

Did you restore the d3d12core file that was in the game directory? Verifying the integrity of the files should restore it.

Yes, I did.

Dropping the dlls into the wine prefix got me past the dx12 error message. However I see an endless loading screen, so one problem down, onto the next.

Using -noDirectStorage as a command line argument fixes the infinite load for me, but then I hit the ntdll error. This is possibly a denuvo error, so perhaps that's not a problem for the demo?

Ah, yeah. That got me past the loading spinner. Yeah, a failure to authenticate makes me think maybe a denuvo error. It would be odd for them to authenticate dlls without it being tied to drm, but who knows?

EDIT: After a little investigating, ntdll.dll is one of the dlls denuvo checks, so this is almost certainly a denuvo error.

mohamadaljaf commented 1 year ago

What does the ntdll error say? Could you also attach the proton log?

zixaphir commented 1 year ago

What does the ntdll error say? Could you also attach the proton log?

proton version: experimental (not bleeding-edge) launch options: PROTON_LOG=1 SteamDeck=0 %command% -noDirectStorage

ntdll.dll: signature failed to authenticate. Please try to reinstall

steam-1680880.log

mohamadaljaf commented 1 year ago

Thanks, the log doesn't say much other than it's using BCryptCreateHash to get a hash. I'm not sure if this is a denuvo problem, but the demo also has this issue. I guess it's possible the demo also has denuvo. It's literally hashing the ntdll file to check if it's been tampered with or not. I don't think there's a way to properly fix this with Wine/Proton, other than a hack patch of course. It actually checks more than ntdll too.

One thing to note is that if you don't press "OK" when the error dialog appears the game will continue loading the intro and the main menu, but you can't interact with it because of the dialog.

Regardless, there is a way to get it to run.

Workaround

From a working Windows 10 installation, has to be 1909 or higher I'm assuming, you have to copy all these dlls from system32 and syswow64 into the respective folders of the Wine prefix of the game, /steamapps/compatdata/2228080/

Talk about excessive.

I find it funny that it's hashing bcrypt through bcrypt lol, like "Trust me bro, this is a totally legit hash".

Note: You have to copy dxgi after starting the game otherwise it will be overwritten by Proton. I tried making it immutable and read-only but the game wouldn't launch this way.

For me, it gets to the main menu then crashes when loading a new game. Or even staying in the menu for long enough causes it to crash, along with steam itself. I thought it might be because of dxgi, but replacing it with the steam one after it does the hash check results in the same thing.

Edit: There might be a memory leak either in the game or in Wine/Proton as it increasingly uses more and more memory just sitting in the menu. I only have 16 GB of RAM and have multiple applications running, using about 7.5 GB. Just getting to the main menu uses about 7 GB and then it slowly increases.

I guess the crash is due to the lack of memory.

ffrasisti commented 1 year ago

System Information

Steam Deck 512

Game Installed on SSD

Proton 7.0.6 Next preselected

Symptoms

Select menu has missing backgrounds, missing map and selections making it impossible to use the map or skill tree. This may be because all of those are 3d an rendered in real time. You see a big black nothing in the middle of the Skill Tree or Map tabs and going back to game from the Select menu takes ages .

Reproduction

Open game, go on the open world. Press Select. Attempt to use the Map, Magic or Gear Screens

Katherine1 commented 1 year ago

Replying to https://github.com/ValveSoftware/Proton/issues/6474#issuecomment-1408172030

How long did you wait for those menus to load? On desktop, they can take a good 15 seconds to load.

ffrasisti commented 1 year ago

It takes about 30 sec proton ge but on 7.0.6 they just wouldnt load for me and going back to the game gave me black screens

kisak-valve commented 1 year ago

Hello @ffrasisti, it should be noted that Proton 7.0.6 Next preselected shouldn't be true right now. If you're not manually choosing a Proton version in the per-game override, then Proton Hotfix should be getting selected for use with this game.

Katherine1 commented 1 year ago

As of patch 1.02 of the game, SteamDeck=1 is no longer required for the game to run on Linux. I ran the game with SteamDeck=0 explicitly set and where previously I was getting a Denuvo error, I'm now able to get into the game just fine.

DistantThunder commented 1 year ago

As of patch 1.02 of the game, SteamDeck=1 is no longer required for the game to run on Linux. I ran the game with SteamDeck=0 explicitly set and where previously I was getting a Denuvo error, I'm now able to get into the game just fine.

How are the textures? It appears they were forced on very low no matter what.

Katherine1 commented 1 year ago

I didn't have too much time to look around before work. I'll do a bit more looking around this afternoon. I was basically just able to confirm that the game runs and graphical settings actually affect things now.

EDIT: Just took another look around, and yeah. Textures are looking way better.

EDIT2: I've also verified that the -noDirectStorage tag is no longer required. I don't know if Valve added that as a default when launching the game or if the game just knows what to expect on Proton, but that's nice.

EDIT3: Mind you, the FPS is still hovering in the low 20's / upper teens no matter what I do. I'm on a mobile 3080ti with a 1440p screen. At least it looks nicer with the performance not being any worse.

ChaosBlades commented 1 year ago

Things seem to be working a lot better now. I am noticing some ground textures in the distance look like they are from the PlayStation 1 area. Looks like it is some kind of LOD issue in certain scenes in the benchmark. I notice the textures look good then as the camera pulls back from them they turn to trash. I notice that Model Memory in Graphics settings is grayed out and set to Low. I don't know what this setting is meant to do but my test system certainly does not have low memory of any kind. I wonder if it is still assuming all linux systems are the steam deck in certain aspects.

SteamOS 3 5800X 32GB DDR4 RAM NVMe SSD PCI-E 3.0 6900XT

Game is GPU bound on my system with CPU cores hovering in the mid to high 20s. Occasional peeks to mid 40s.

I get 51FPS average on the benchmark at 4k with this setup. All graphics settings maxed without any DRS.

Setting FSR to Quality bumped my average FPS up to 88.

Katherine1 commented 1 year ago

I didn't have any issue setting the model memory. Try explicitly setting SteamDeck=0 in the launch options. I think it might still be on by default for this game.

ChaosBlades commented 1 year ago

Can confirm, setting SteamDeck=0 enables Model Memory as well as allowing Screen Mode to be set to Windowed and Fullscreen. This has resolved the LOD texture issue. Also seeing more things on the ground at distance. Performance is a lot lower as well now. Getting average 44 FPS at 4k without any DRS. Need to set FSR to Balanced now in order to stay above 60fps in the benchmark. This game seems to be limited to only 8 threads as well.

Also discovered a very annoying issue. If a Bluetooth controller disconnects at any point the game will lock up and you need to close it via the Steam Menu and re-launch the game.

Katherine1 commented 1 year ago

Lucky you. I wish I wasn't stuck in the mid-20's. I'll be playing around with settings more to see if I can get at least into the 30s/40s. I feel like a 3080ti, even a mobile 3080ti, should be able to do better than low 20's.

zixaphir commented 1 year ago

Can confirm the 1.02 version improves things, but performance is still pretty bad. On my Nvidia GTX 1080ti, PROTON_ENABLE_NVAPI=1 gives an extra 5-10fps, which gets me from around 12-18 in game to 20-25. GPU usage in mangohud still only shows around 30-60% utilization.

I don't generally like enabling NVAPI because I assume there's a reason it's usually disabled, but I'm noticing those on AMD GPUs averaging higher framerates while Nvidia users are stuck in the low-to-mid 20s

I'm attaching logs in case they can help

steam-1680880.log.gz

thegabriele97 commented 1 year ago

Hi! 3060 ti here, it is stuck at around 30 fps (with tremendous spikes down to 10 fps) no matter if I set everything in low or high quality mode (it looks pretty bad in high quality mode btw). GPU usage is at 50% with 5 GB of VRAM used.

Katherine1 commented 1 year ago

Hi! 3060 ti here, it is stuck at around 30 fps (with tremendous spikes down to 10 fps) no matter if I set everything in low or high quality mode (it looks pretty bad in high quality mode btw). GPU usage is at 50% with 5 GB of VRAM used.

If it's looking bad even in high-quality mode, go into your launch options and set SteamDeck=0 It's still enabled by default for this game afaik.