doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
13.18k stars 851 forks source link

[d3d9] - The Elder Scrolls® Online (306130) - Installer is blank when using DXVK 1.5.2 and newer. #2240

Closed ZereoX closed 1 year ago

ZereoX commented 3 years ago

Description:

In The Elder Scrolls® Online (306130) the installer for the launcher (javaw.exe) is completely blank. Previously the installer assets would flicker enough for you to figure out how to proceed, but now it seems it always renders black (probably due to game update). This blocks the install flow unless the user specifically knows where to click. Based on a previous issue, I believe this is due to partial-presentation: https://github.com/doitsujin/dxvk/issues/1481

The previous behavior can be observed here: https://www.youtube.com/embed/UmaSjU4R_Lw?start=0&end=5

WineD3D DXVK 1.5.1 DXVK - main
WineD3D DXVK-1 5 1 DXVK-a2330b8

Please let me know if any additional information is required or if additional testing is needed.

Software information

The Elder Scrolls® Online (306130)

System information

OS: Ubuntu 20.04 GPU: Radeon RX 5700 XT / Nvidia GeForce GTX 1060 Driver: 21.2.0\~kisak1\~f / 470.57.02-0ubuntu0.20.04.1 Wine version: Proton 6.3-5 DXVK version: 1.5.2 and up (including main - a2330b89d228f7bdd6ba5f415051345634c3cb7c)

Apitrace file

Log files

d3d9.log: javaw_d3d9.log

K0bin commented 3 years ago

Link: The installer is extracted at run-time by zosSteamStarter.exe so its not possible to setup for an APITrace. The title is free on Steam, but is unfortunately a massive download (108.4 GB on disk).

Just drop the apitrace d3d9.dll into the game/installer directory and it should create an apitrace.

ZereoX commented 3 years ago

Just drop the apitrace d3d9.dll into the game/installer directory and it should create an apitrace.

@K0bin The installer is in a random location every time the title is launched, but I was able to grab the commandline from WMIC (WMIC path win32_process get Caption,Processid,Commandline) and manually re-run the install through APITrace.

apitrace.exe trace --d3d9 "C:\Users\jason\AppData\Local\Temp\I1628854820\Windows\resource\jre\bin\javaw.exe" -Xms16777216 -Xmx50331648 -Djava.specification.version=1.6 -Xmx512m -Dlax.locales=TRUE -Dlax.debug.level=4 -Dlax.debug.all=true -classpath "C:\Users\jason\AppData\Local\Temp\I1628854820\InstallerData\IAClasses.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\InstallerData\Execute.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\Windows\InstallerData\Execute.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\InstallerData\Resource1.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\Windows\InstallerData\Resource1.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\InstallerData;C:\Users\jason\AppData\Local\Temp\I1628854820\Windows\InstallerData;" com.zerog.lax.LAX "C:/Users/jason/AppData/Local/Temp/I1628854820/Windows/setup.lax" "C:/Users/jason/AppData/Local/Temp/lax251A.tmp" -D$USER_INSTALL_DIR$="D:\SteamLibrary\steamapps\common\Zenimax Online"

I confirm the trace plays back correctly and exhibits the issue if DXVK is used.

Link: https://drive.google.com/file/d/1uvHLN27sSfMirDjnxDgZv1GfmYOrwPic/view?usp=sharing

boludoz commented 3 years ago

Same issue in windows 11 with medieval 2, With the indicated version 1.5.1 it is mitigated. Windows users also use DX9 for better performance. Black screenshots and triangular vector problems persist in new versions (like artifacts).

K0bin commented 3 years ago

@boludoz Please open a new issue for a different game.

DadSchoorse commented 3 years ago

@ZereoX can you try if d3d9.noExplicitFrontBuffer = True changes something?

ZereoX commented 3 years ago

@ZereoX can you try if d3d9.noExplicitFrontBuffer = True changes something?

Hi @DadSchoorse, Unfortunately the same behaviour is observed with that option:

d3d9.noExplicitFrontBuffer
image
niobium93 commented 3 years ago

In case someone else is having the same issue, all you have to do is use these launch options:

PROTON_SET_GAME_DRIVE=1 PROTON_USE_WINED3D=1 %command%

(PROTON_SET_GAME_DRIVE is needed because otherwise the installer tries to write to Z: and complains that it can't) Install the launcher, then remove the launch options and the game runs just fine with DXVK. Also, enable the new multi-threaded renderer option in the game. It improves the performance massively!

Blisto91 commented 2 years ago

Is this the installer downloaded through the website which creates a temp folder where javaw.exe is located? Tho i'm guessing it's the setup.exe in the temp folder that calls java. d3d9.shaderModel = 1 fixes it but i'm unsure how to add a built in dxvk config to this.

ZereoX commented 2 years ago

Is this the installer downloaded through the website which creates a temp folder where javaw.exe is located? Tho i'm guessing it's the setup.exe in the temp folder that calls java. d3d9.shaderModel = 1 fixes it but i'm unsure how to add a built in dxvk config to this.

Last I checked this was being triggered by the Steam install of the game during First-Time Setup (not a standalone installer).

Blisto91 commented 2 years ago

Ah oke. I don't have the game so i searched online and saw it mentioned you could download the installer from their website when you have bought it and logged in. Someone in their forum linked to the one i tried. Didn't find one with the same name on steamdb.

niobium93 commented 2 years ago

@Blisto91 that does sound like the same installer as what steam uses. I haven't played this in a while, but I do remember there being a javaw.exe in a temp folder. It all gets extracted at runtime. It's annoying because the temp folder in in a different path each time, so you can't just keep a dxvk.conf in there. Also all the installer executables use very generic names, so you can't really apply rules based on their names.