protonscr

[d3d9] Significantly lower performance than gallium-nine in Dragon's Dogma

dxvkclosed performanced3d9
doitsujin/dxvk#1965 · opened 2021-03-06 by Oschowa · updated 2025-10-01 · 10 comments · github
1 matching comments, n / p to jump
OOschowa 2021-03-06 github

Dragon's Dogma Dark Arisen is about 15 fps slower than gallium-nine in a cpu-bound case on my system. This is most prominent in the first village area of the game after completing the tutorial when standing at the city gate looking towards the sea.

DXVK (master is at about 60 fps):
Screenshot from 2021-02-28 13-40-25

gallium-nine:
Screenshot from 2021-02-28 13-41-57

perf shows most of the cpu time spend in WaitForResource:
Screenshot from 2021-03-03 14-37-48

As discussed on discord, here is some debug logging before every WaitForResource call:
DDDA_d3d9-WFR.log

Patch used to generate the log:
frog.txt

Software information

Dragon's Dogma Dark Arisen https://store.steampowered.com/app/367500/Dragons_Dogma_Dark_Arisen/
Medium settings 720p

System information

  • GPU: RX580
  • Driver: RADV 21.0-git
  • Wine version: Proton 5.13-Experimental
  • DXVK version: 1.8.1/master

Apitrace file(s)

recorded with DXVK:
https://drive.google.com/file/d/1GgxS5V2GLSysmMWf6ZQzZEGeN7x3Cmui/view?usp=sharing
recorded with wined3d:
https://drive.google.com/file/d/11YHQBLHzjDpdxlO5Z82Llwhw0VZ7hkGN/view?usp=sharing

Log files

Mmisyltoad 2021-03-07 github

Does this build improve the situation?

dxvk-dragon-dog.tar.gz

OOschowa 2021-03-07 github

No real change compared to master with this build.

Llemonzest79 2021-03-15 github

Been playing Dragon's Dogma myself a few days also, this time under wine-staging 6.3 and with a RX 5600 XT (Navi10) on a Ryzen 7 1700 @3.6Ghz & 48GB RAM

What I don't understand is that both GPU/CPU Usage is around the mid 20% mark, and the FPS drop as low as 30s and peak as high as 150 (the cap), seems so inconsistent, what is causing the low resource usage?

Ddoitsujin maintainer 2021-03-15 github

GPU synchronization, which is an absolute shitshow in D3D9 with pretty much every single game being horribly broken.

OOschowa 2021-03-22 github

FWIW, master with the recent locking changes doesn't affect this game.

BBlisto91 2022-03-20 github

While i was testing this i noticed what appeared to be a performance regression between 1.9.4 and 1.10.
Here i was testing a specific spot where i loaded in each time without touching the mouse. In 1.9.4 i was getting a stable 50ish fps and in 1.10 i was getting a stuttery 30 - 40 fps.

I have tried going through the github actions master artifacts to find out somewhat where the issue happens. But these are not the specific commits where the issue occurs, just close to the behavior change.

Stable fps Here in a build from commit 25ebf948 we see the steady fps behavior

Screenshot_20220320_004935

Low stuttery fps Then somewhere between the commit above and 4e464327 the issue appears

Screenshot_20220320_004700

High stuttery fps Then somewhere between the commit above and 29d88127 the fps suddenly improves, but have these high stutters that come relatively often

Screenshot_20220320_010641

Low stuttery fps Then somewhere between the commit above and b42c0725 we are back at low fps with stutter. This is also how it is on bleeding edge proton with latest master.

Screenshot_20220320_011543

OOschowa 2022-03-20 github

I don't see a regression with dxvk master on my end:

screenshot

Screenshot from 2022-03-20 11-31-05

This is with dxvk master on proton experimental bleeding edge, despite the HUD saying 1.10.

BBlisto91 2022-03-20 github

Odd. Can reproduce it quite consistently by loading up my save.
I had to make sure i stayed in the same spot cuz this games performance can change quite a lot just by moving a few meters or look to the side which makes it hard to do proper performance comparisons unless you stay in one spot xd.

But even then when running around a bit, on my system comparing proton 7.0-1 to bleeding edge the latter gets frame timing spikes relatively often whereas the former don't. And looking at mangohud it didn't look like gpu or cpu utilization seemed to have changed (not a very scientific test)

Edit: I just noticed that launching the game with gamemode on bleeding edge gets rid of the frame spikes. ffs :grin:

KK0bin maintainer 2022-03-20 github

@Blisto91 The game copies the rendered image onto another texture and immediately reads it, causing a full GPU sync. This is very slow and there's not a lot we can do about it. I accidentally broke this which is why the game ran fast for a couple of commits.

BBlisto91 2022-03-20 github

Roger roger. 👍

I still find it odd that i now need to use game mode to make it non stuttery like the old versions. But there is probably a good explanation for that somewhere and I'm not knowledgeable enough 😁

Proton versions