protonscr

Final Fantasy XIV Online with DX 9 would crash on DXVK 2.0

dxvkclosed needs apitraced3d9
doitsujin/dxvk#3099 · opened 2022-11-26 by ghost · updated 2022-12-11 · 10 comments · github
?ghost 2022-11-26 github

Greetings. I got a strange issue about FF XIV under DX9:

I lvl up from 1 to 60 with DXVK 1.xx, it works. However recently I tried to upgrade to DXVK 2.0, then I find the game would crash after several minutes. I don't know what is the exact trigger, but more other player on the screen and wait some time could crash the game.

The game just pop up a window about some memory address, without useful text
ffxiv.exe +[SOME MEMORY ADDRESS]

I'm on Chinese server, and I can't play the game with ffxiv_dx11.exe, the game won't connect with a 5003 error. Don't know why either, could be some strange region restriction. But I was able to play happily with DX9 ffxiv.exe till the recently DXVK 2.0

ffxiv.exe is 32 bits, while ffxiv_dx11.exe is 64 bits. I'm on a 64 bits WINE prefix.

I did try to generate an API trace, but the game just wont start with a "Fatal Direct X error" message.

In the DXVK Log, it says buffer size is 1280x720 while my monitor should be 1920x1080. I don't know how it works. The log is followed below.

Excuse me for lacking useful debug info. If there is other player who is able to play the game with DX9 and DXVK 2.0, please let me know, then I'll stay with DXVK 1.xx

Software information

Final Fantasy XIV Online

System information

  • GPU: AMD Radeon RX 6650 XT
  • Driver: Mesa 22.2.4 RADV
  • Wine version: wine-tkg-valve-exp-bleeding-experimental.bleeding.edge.7.0.29713.20221124
  • DXVK version: 2.0 and Master[57176e7]

Apitrace file(s)

Wasn't able to get an useful one, the game crash on start, leaving an almost empty trace:
ffxiv.trace.log

Log files

ffxiv_d3d9.log

KK0bin maintainer 2022-11-26 github

Can you bisect which commit broke it?

https://www.git-tower.com/learn/git/faq/git-bisect/

?ghost 2022-11-26 github

I'll find some time to try. Maybe some days later to report back.

Ddoitsujin maintainer 2022-11-27 github

FWIW the 32-bit D3D9 renderer is unsupported will likely get removed next expansion.

If things just randomly crash when there's a lot on screen then it's just going to be address space issues again.

?ghost 2022-11-27 github
ea76bfd0194c7131bd7ba6121a15ed6e36992b40 is the first bad commit
commit ea76bfd0194c7131bd7ba6121a15ed6e36992b40
Author: Robin Kertels <[email protected]>
Date:   Mon Feb 14 00:08:01 2022 +0100

    [d3d9] Unmap unused resources

I feel it's not randomly crash. With a bad commit, the crash would happen very soon while in Limsa Lominsa. I guess there are a lot of players here. However with a good commit, I could stand in the city for hours.

Commit ea76bfd0 would crash even while loading Limsa Lominsa.
Its parent b4f432f1 could work for more than an hour.

ea76bfd0 is in fact elder than DXVK 1.10.3 however it didn't get into the release code.

I don't have a way to play with DX11 yet, wished they don't remove DX9. It's not a graphical issue as I could see main menu. I might try to find some solution for that in the future.

It would be so kind if someone could review commit ea76bfd0 again. I'll stay with its parent b4f432f1 for now. Thanks 😀

BBlisto91 2022-11-27 github

@wu-yue You make it sound like the crash with https://github.com/doitsujin/dxvk/commit/ea76bfd0194c7131bd7ba6121a15ed6e36992b40 is different as you can't even get ingame with that one. Is it the same?

A test you can make with 2.0 or latest master is to create a file called dxvk.conf at the location your d3d9 dxvk log appeared and insert d3d9.textureMemory = 0
That should disable the feature of the commit above.

?ghost 2022-11-27 github

@wu-yue You make it sound like the crash with ea76bfd is different as you can't even get ingame with that one. Is it the same?

A test you can make with 2.0 or latest master is to create a file called dxvk.conf at the location your d3d9 dxvk log appeared and insert d3d9.textureMemory = 0 That should disable the feature of the commit above.

I feel this crash is somewhat relate to more other player on the screen. If I just walk in some outdoor map with no other player in sight, I might able to play with a bad commit for some ten minutes or so. However in a busy city or rushing hour, the game could fail to load during its loading screen.

I would try d3d9.textureMemory = 0 with DXVK 2.0, and report back tomorrow.

?ghost 2022-11-28 github

@Blisto91 I just played the game for one hour with DXVK 2.0 and d3d9.textureMemory = 0, no crash.

Thanks 😀

BBlisto91 2022-12-03 github

@wu-yue Hello again.
Can you test latest master again with the game without d3d9.textureMemory = 0? A commit has just been made that fixes a crash in another game.
You can grab a build here https://github.com/doitsujin/dxvk/actions/runs/3609097375

?ghost 2022-12-04 github

@Blisto91 Greetings.
DXVK 2.0-28-g522909b1 would still crash under D3D9 without d3d9.textureMemory = 0

But don't worry about me, I found a way to use D3D11 with the game.

BBlisto91 2022-12-04 github

Alright. Thanks for checking anyway 🙂

Nothing extracted yet.