Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crysis 1 crashes first level #783

Closed
Teuwu opened this issue Nov 24, 2018 · 25 comments
Closed

Crysis 1 crashes first level #783

Teuwu opened this issue Nov 24, 2018 · 25 comments

Comments

@Teuwu
Copy link

Teuwu commented Nov 24, 2018

I launch the game, get to the main menu, load the first level, after the first part in the cave after the ship opens, there is the first white screen, this is the point at with the game crashes. The game runs ok in dx9 mode. This is the GOG.com version of the game, I've also tried with the version from the original DVD and same deal.
yes, I do have d3d_compiler43 as an override.

These are the commands I use to start the game:
export DXVK_HUD=devinfo,fps,version
export WINEPREFIX=~/.PlayOnLinux/wineprefix/crysis_warhead_gog/
cd ~/.PlayOnLinux/wineprefix/crysis_warhead_gog/drive_c/GOG\ Games/Crysis/Bin64
wine Crysis.exe -dx10

I'm just not sure what I'm doing wrong, as doitsujin showed it working with the version that introduced dx10 support.

Software information

Name of the game, settings used etc.
Crysis 1, everything lowest

System information

  • GPU: Nvidia GTX 970
  • Driver: 396.54.09
  • Wine version: 3.20-staging (from repo)
  • DXVK version: 0.93

Apitrace file(s)

  • Put a link here

Log files

Crysis64_d3d10.log
Crysis64_d3d11.log
Crysis64_dxgi.log
Crysis_d3d11.log
Crysis_dxgi.log

@doitsujin
Copy link
Owner

doitsujin commented Nov 24, 2018

Put a link here

Please actually do that.

That said, the game did was working fine a while ago, please test if it works with an older DXVK version (such as 0.70).

@Teuwu
Copy link
Author

Teuwu commented Nov 24, 2018

I've never done am apitrace before, please be patient,
I ran the "wine apitrace.exe trace -a dxgi Crysis.exe -dx10"
command, it said no C:\windows\system32\apitrace.exe, I then followed the link to
https://github.com/apitrace/apitrace, I then followed a link from there to this page http://apitrace.github.io/#download, but there are a lot of links I'm not sure which one I need.

I also tried the approach to get those three x64 files from the wiki, where it talks about, if you have trouble with an apitrace put these in the folder with the game.exe. When I did that, I get this output

with dxvk dlls as biltin:
"
apitrace: loaded into C:\GOG Games\Crysis\Bin64\Crysis64.exe
wine: Call from 0x7bc7941c to unimplemented function dxgi.dll.DXGID3D10CreateDevice, aborting
apitrace: warning: caught exception 0x80000100
"
with dxvk dlls as native:
"
apitrace: loaded into C:\GOG Games\Crysis\Bin64\Crysis64.exe
info: Game: Crysis64.exe
info: DXVK: v0.93
warn: OpenVR: Failed to locate module
info: Enabled instance extensions:
info: VK_KHR_get_physical_device_properties2
info: VK_KHR_surface
info: VK_KHR_win32_surface
info: GeForce GTX 970:
info: Driver: 396.54.9
info: Vulkan: 1.1.85
info: Memory Heap[0]:
info: Size: 4096 MiB
info: Flags: 0x1
info: Memory Type[7]: Property Flags = 0x1
info: Memory Type[8]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 12029 MiB
info: Flags: 0x0
info: Memory Type[0]: Property Flags = 0x0
info: Memory Type[1]: Property Flags = 0x0
info: Memory Type[2]: Property Flags = 0x0
info: Memory Type[3]: Property Flags = 0x0
info: Memory Type[4]: Property Flags = 0x0
info: Memory Type[5]: Property Flags = 0x0
info: Memory Type[6]: Property Flags = 0x0
info: Memory Type[9]: Property Flags = 0x6
info: Memory Type[10]: Property Flags = 0xe
info: DXGI: NvAPI workaround enabled, reporting AMD GPU
wine: Call from 0x7bc7941c to unimplemented function D3D11.DLL.D3D11CoreCreateDevice, aborting
apitrace: warning: caught exception 0x80000100
"

when it says "DO NOT use DXVK together with apitrace!" does that mean to set the dxvk dlls to builtin, in the winecfg window?
is there a tutorial I could follow?
I've tried with each release since 0.70, and no go, so I figured I'll make an issue of it.

@doitsujin
Copy link
Owner

doitsujin commented Nov 25, 2018

Just tested this on my AMD rig and the game runs fine, so I don't think an apitrace would be particularly useful here. Have you tried running it in a clean wine prefix with just d3dcompiler and dxvk installed (i.e. without PlayOnLinux magic)?

For future reference, you'd need the msvc-latest build of apitrace in order to record D3D10 traces.

@Teuwu
Copy link
Author

Teuwu commented Nov 25, 2018

I did make a new wineprefix, just now actually. The playonlinux, is just the location of the wineprefix, I did not use the playonlinux program. I made a new wineprefix, win64, installed latest dxvk, and d3dcompiler with winetricks, copied over the game folder, from the old prefix. Tried running it, same stop point. I then used winetricks to install 0.70 dxvk, and same problem.

Since it runs on AMD, is there a way I could make the game think I have an AMD system instead of Nvidia?
I know there is the option in the dxvk config file I could setup, and I know I can set values in the registry to do that as well. I'll try fiddling with it.

@jrugia
Copy link

jrugia commented Nov 25, 2018

@Teuwu Can you please try a different Wine version with a clean prefix? Wine 3.21 fixed a possible 3.20 regression in Crysis Warhead and maybe Crysis 1 was also affected but wasn't reported.

@doitsujin
Copy link
Owner

doitsujin commented Nov 25, 2018

Can confirm that this game hangs on my Nvidia rig with both the 396.54.09 and 415.something drivers. No idea why.

@ImperatorS79
Copy link

ImperatorS79 commented Nov 25, 2018

@Teuwu Playonlinux wine builds do not have vulkan enabled. They are working on a new build system for that. So I hope you got your wine version from somewhere else (or maybe it has changed recently?).

@Teuwu
Copy link
Author

Teuwu commented Nov 25, 2018

@ImperatorS79 on my system setup ~/.PlayOnLinux is where I have a 1TB HDD mounted as game storage, its just LOCATION I get my wine builds from the official winehq repo, or build them myself, for crysis 1 + dxvk, I've only used the official winehq builds from their ubuntu 18.04 repo, normally staging builds.

changing the vender and device IDs in the dxvk.conf, file no change still crashes.

I tried using the winehq-devel 3.21, as I don't yet have winehq-staging-3.21 only 3.20 for staging so far
with 3.21-dev, for some reason it refused to even load the 64bit binary (Could not launch main application), so I tried the 32bit version of the game it loaded to the main menu but still crashes as in my OP. I also want to say that from the then current version of wine when dxvk 0.70 was released to now, I have not yet had this game working with dxvk.

I also just tried the 390.89.0 Nvidia driver, and still no go, just crash as in OP.

The tests mentioned in this post were run from a clean wineprefix just dxvk 0.93 and d3dcompiler.

@itaranto
Copy link

itaranto commented Mar 2, 2019

I tested the GOG version (64 bit) with Proton 3.16-4, Proton 3.16-7 (Beta) and Wine-4.1 (Staging) + dxvk70.
I also installed d3dcompiler_43 using winetricks.

It hangs in all three with dx10 mode when loading a game.

I'm using an AMD RX570 with Mesa 18.3.2

proton-3.16-4.log
proton-3.16-7.log
wine-4.1-staging.log

@doitsujin
Copy link
Owner

@itaranto your issue is that you don't have the d3dx libraries installed, use winetricks d3dx10_43 to fix that.

@itaranto
Copy link

itaranto commented Mar 2, 2019

@itaranto your issue is that you don't have the d3dx libraries installed, use winetricks d3dx10_43 to fix that.

That worked! Thanks!

One little detail, I first installed d3dx10_43 over the existing installation, that didn't worked. The map loaded correctly with the "Press any key to continue" button, but after I pressed that I got a black screen.

So, I re-created my prefix and installed the libraries in this order:
winetricks d3dx10_43 d3dcompiler_43

And... that worked like a charm! I tested with everything at "Very High", really good FPS.

Thanks, you are awesome!

@Cat-Lady
Copy link

Cat-Lady commented May 7, 2019

I've found that - repeatedly - installation of whole directx9 via winetricks, + manually setting up d3dcompiler_* up to version 47, is required for Crysis 1 expansions, Warhead, to work. It also affect the most popular mod on the engine, MechWarrior: Living Legends (but in the end, it works, awesomely!)

@Hiradur
Copy link

Hiradur commented Dec 8, 2019

On my system Crysis (from GOG) hangs on startup but when I run a benchmark batch file or make it load a level directly from a batch file like so crysis.exe +map island, both the 32 bit and 64 bit binary work.

System information
- GPU: Nvidia GTX 760
- Driver: Nvidia 430.50.0
- Wine version: lutris-nofshack-4.19-x86_64
- DXVK version: 1.4.6

EDIT: Problem was caused by calling Crysis64.exe rather than Crysis.exe. Game runs fine now.

@misyltoad
Copy link
Collaborator

  • Driver: Nvidia 430.50.0

No.

@Hiradur
Copy link

Hiradur commented Dec 9, 2019

Not sure what you mean but that's the driver version reported by DXVK (ok, minus the "Nvidia" text). The Nvidia driver itself just says 430.50.

@Teuwu
Copy link
Author

Teuwu commented Dec 10, 2019

ok a lot has changed since my opening post. but I can now say that the game works.
I'm currently running an RTX 2070, intel i7-9700 32gb ram system
Ubuntu 19.10
NVIDIA driver version 440.36, from ubuntu nvidia driver ppa

I copied all the data from my last system to start crysis, the wineprefix reports to have DXVK version 0.93 so really old! the wine version I have setup to launch wine with is 4.12.1 (I'm assuming from winehq) also obviously old.

my libraries override from winecfg are:

*d3d10 (native)
*d3d10_1 (native)
*d3d10core (native)
*d3d11 (native)
*d3dcompiler_43 (native)
*d3dx10_43 (native)
*dxgi (native)

so I'm thinking that the addition of d3dcompiler_43 is what makes makes this game work.
will follow up with more testing

i'm also running the GoG 32bit version.

@Teuwu
Copy link
Author

Teuwu commented Dec 10, 2019

so I started with a clean wineprefix (wine 4.21 staging)
used winetricks to install dxvk and d3d10_43
used winecfg to enable virtual desktop to fix that I couldn't set the resolution right
I also used the winetricks sandbox, before 1st launch
copied over the game folder
setting all graphical options to max and res to 1920x1080
I tried to start a new game WITHOUT d3dcompiler_43
game would load to "press any key" and then crash

I then used winetricks to install d3dcompiler_43, and the game would load fine, I quit at the scene where the people are in the airplane, before the skydive.

to test again created a clean a prefix, installed dxvk d3dx10_43 tried loading the first level, got a crash few seconds in tried 32 & 64, then I installed d3dcompiler_43

conclusion d3dcompiler_43 and d3dx10_43 are required. Closing.

@Teuwu Teuwu closed this as completed Dec 10, 2019
@AlexanderWKoenig
Copy link

AlexanderWKoenig commented Sep 22, 2020

Hi,
this issue is still present for me. Crysis.exe crashes when a level loaded and you press the key to start. The game runs fine with -dx9 argument.

I've created a clean wineprefix, executed setup_dxvk.sh install --symlink and winetricks d3dx10_43 d3dcompiler_43
But the Issue is still there.

Here are some logs:
Crysis_d3d11.log
Crysis_dxgi.log
Game.log

Here is the terminal output:
0009:fixme:d3dcompiler:d3d10_shader_reflection_GetDesc iface 04CA8C64, desc 0032DBDC partial stub!
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 4 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x6a9cd7f0
0009:fixme:d3dcompiler:skip_dword_unknown 0x52639a1b
0009:fixme:d3dcompiler:skip_dword_unknown 0xf0a36782
0009:fixme:d3dcompiler:skip_dword_unknown 0xdf7dbb4d
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 1 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000001
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 1 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000008
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 1 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000008
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 1 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000000
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 1 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000000
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 1 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000000
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 1 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000000
0009:fixme:d3dcompiler:skip_dword_unknown Skipping 2 unknown DWORDs:
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000000
0009:fixme:d3dcompiler:skip_dword_unknown 0x00000000
0009:fixme:d3dcompiler:d3d10_shader_reflection_GetDesc iface 04CA8C64, desc 0032DAC0 partial stub!
0009:fixme:faultrep:ReportFault 0032DCE8 0x0 stub

@K0bin
Copy link
Collaborator

K0bin commented Sep 22, 2020

winetricks d3dx10_43 d3dcompiler_43

It's still using the Wine implementation of d3dcompiler so that didnt work.

@AlexanderWKoenig
Copy link

winetricks d3dx10_43 d3dcompiler_43

It's still using the Wine implementation of d3dcompiler so that didnt work.

What do you mean? Should i download the d3dcompiler_43.dll and put it into game dir? My wine overrides are the following:
Bildschirmfoto_2020-09-22_20-42-19

@K0bin
Copy link
Collaborator

K0bin commented Sep 22, 2020

And you are sure thats the correct prefix thats also getting used for the game?

0009:fixme:d3dcompiler:skip_dword_unknown Skipping 4 unknown DWORDs: is produced by Wine's d3dcompiler.

@AlexanderWKoenig
Copy link

AlexanderWKoenig commented Sep 22, 2020

yes, im sure that i did use the correct wineprefix.
Executed all in a terminal and every command had the same WINEPREFIX=/home/alex/.wine_clean prefix added

Edited: I've tested with a downloaded d3dcompiler_43.dll and it will crash while loading now, not even showing "press key to play"

@TheGreatMcPain
Copy link

@AlexanderWKoenig Are you using the GOG version, or the Steam version?

I had this problem with the GOG version (I think it only affected the 64bit binary), but I got it on Steam and it seems to work fine.

@AlexanderWKoenig
Copy link

@AlexanderWKoenig Are you using the GOG version, or the Steam version?

I had this problem with the GOG version (I think it only affected the 64bit binary), but I got it on Steam and it seems to work fine.

I've just tested the 32bit binary, and I dont know which version of the game it its. It just happened to be on my hard drive ;-)

@TheGreatMcPain
Copy link

I believe the Steam version only has the 32bit binary.

The GOG version has both 32bit and 64bit.

I Haven't noticed any performance differences between the two, but I think DXVK still has issues with 32bit games.

Not sure about the original physical version, or the Origin version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests