HansKristian-Work / vkd3d-proton

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
GNU Lesser General Public License v2.1
1.94k stars 202 forks source link

Cyberpunk crash with NVIDIA GTX 1080Ti #1930

Open Vincenzo-Puzone opened 9 months ago

Vincenzo-Puzone commented 9 months ago

Please describe your issue as accurately as possible. Include screenshots or videos if relevant Trying various version of Proton (Even GE) and Wine with lutris but the game simply doesn't want to start (other games affected are Tom Clancy's The Division 2)

Software information

Name of the game, settings used etc. Cyberpunk 2077, tried every env vars found across other issues

System information

Log file

game-log.txt dmesg

NVRM: Xid (PCI:0000:09:00): 69, pid='<unknown>', name=<unknown>, Class Error: ChId 00a7, Class 0000c197, Offset 00002380, Data 00000000, ErrorCode 00000004
yslai commented 7 months ago

This problem seems to be specific to the Pascal generation (e.g. does not occur with Turing cards) and is a regression between the Nvidia proprietary driver versions 530 and 535. For example, driver 530.41.03 in combination with VKD3D release 2.12 does not trigger the Xid 69.

But since this last functioning driver version is affected by CVE‑2024‑0074 and CVE‑2024‑0075, and the fixed versions are either for legacy cards or at least 535, there are no safe versions to run Cyberpunk 2077 on Pascal anymore, at least with the current VKD3D.

I think #1869 may be related, but seems to suggest 2.6 works. But at the moment I find it to be quite non-trivial to downgrade to VKD3D 2.6.

ArklandHan commented 7 months ago

I also have a trusty 1080ti and have been attacking this same problem all week. Nothing I've tried so far allows Cyberpunk to run on any current proton (that I have tried), but it seems to run on Proton 7.0-6 or up to GE-Proton7-42 (w/ steam). No success with anything after that. Runs a little slower than when I boot windows, but it's playable so far.

Launch options: VKD3D_CONFIG=force_static_cbv DXVK_FRAME_RATE=60 gamemoderun %command% --launcher-skip

yslai commented 7 months ago

After testing (and remembering some older configuration that works) I found out that without dxgi=n, the current Wine-GE-Proton8-26 can run with fairly old VKD3D-proton at least as far as v2.5. Additionally, I wrote a script that automates somewhat the building (particularly patching all the git:// protocols in the old .gitmodules) to make a proper bisect possible.

I found that unlike the release tags references in this issue and #1869, tag v2.5, v2.6, v2.7 all work for me. The first offending tag is v2.8. Bisecting then narrows the problematic commit down to d0580cb6e3c63424e92c4f787c8d1d00b953826b.

Reading through the relevant vkd3d_global_descriptor_buffer_init() in libs/vkd3d/resource.c make me guess that there is a simple way for the up-to-date VKD3D-proton to work by triggering a failure when checking for the descriptor buffer extension, with the environment variable VKD3D_DISABLE_EXTENSIONS=VK_EXT_descriptor_buffer. Testing this with release v2.12 appears to have fixed the Xid 69 for me.

Somewhat curiously, Nvidia notes for the Vulkan beta driver 535.43.25: “Sanitize UBO descriptors to ensure uninitialized descriptors don't cause device lost” (https://developer.nvidia.com/vulkan-driver). Maybe that is where it became broken for Pascal cards?

ArklandHan commented 7 months ago

VKD3D_DISABLE_EXTENSIONS worked like a charm.

esullivan-nvidia commented 5 months ago

Would one of you be able to try the latest Vulkan developer beta driver (550.40.65) and confirm if the issue observed with VK_EXT_descriptor_buffer is resolved? You can download the run file for the driver here:

https://developer.nvidia.com/vulkan-driver

ArklandHan commented 5 months ago

Sorry. I would, but the RAM in the computer with that GPU went bad, and I used that as an excuse to put a new build together, so I'm not using the 1080ti anymore.

aa889788 commented 4 months ago

I've met the same problem with any dx12 games, the gpu is Tesla P4, I've tried 535.146, 535.183, 550.54, 555.58, none of the makes the game work