Skip to content

Commit

Permalink
[util] Defer D3D9 surface creation for Atelier Ryza
Browse files Browse the repository at this point in the history
  • Loading branch information
doitsujin committed Dec 16, 2019
1 parent bcf8adf commit 9be0bf9
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/util/config/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,11 @@ namespace dxvk {
{ R"(\\Crysis3\.exe$)", {{
{ "dxgi.customVendorId", "10de" },
}} },
/* Atelier Ryza - tries to render video with *
* a D3D9 swap chain over the DXGI swap chain */
{ R"(\\Atelier_Ryza\.exe$)", {{
{ "d3d9.deferSurfaceCreation", "True" },
}} },

/**********************************************/
/* D3D9 GAMES */
Expand Down

13 comments on commit 9be0bf9

@ryester19
Copy link
Contributor

@ryester19 ryester19 commented on 9be0bf9 Dec 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm think this profile would be useful for other Atelier games like Lulua and Rorona

@doitsujin
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those have different issues that prevent them from running out of the box.

@ryester19
Copy link
Contributor

@ryester19 ryester19 commented on 9be0bf9 Dec 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those have different issues that prevent them from running out of the box.

I was just going by what I saw on ProtonDB. I own them all, so I can open up an issue once I get around to testing them myself

@ionenwks
Copy link

@ionenwks ionenwks commented on 9be0bf9 Dec 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, almost every Gust-made games with dx11 needed me to use that "faked" d3d9.dll (not limited to Atelier -- started with Atelier Firis from 2017 while Sophie was actually using d3d9), but it's good to know I can just manually set the option when I need it now. But yeah, most of them have video playback issues as well that require workarounds not to crash (and often ultimately still have no playback -- back when I played them anyway, not the out of the box experience anyway).

@doitsujin
Copy link
Owner Author

@doitsujin doitsujin commented on 9be0bf9 Dec 17, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do Firis and Lulua actually work just with this option? I'm aware that @exolyte made a fake DLL to get past this problem for those games, but someone did report to me at some point that just using D9VK with the surface option does not work for those. The fake DLL also doesn't seem to work for Ryza. Can anyone double-check this?

fwiw Ryza has seen some major engine changes (unfortunately that also includes synchronizing with the GPU four times per frame so that you will never be able to get over ~80% GPU load... terrible programming, also happens on Windows).

@ryester19
Copy link
Contributor

@ryester19 ryester19 commented on 9be0bf9 Dec 17, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do Firis and Lulua actually work just with this option? I'm aware that @exolyte made a fake DLL to get past this problem for those games, and someone did report to me at some point that just using D9VK with this option does not work for those. Can anyone double-check this?

I just tried Rorona and Firis. Using d3d9.deferSurfaceCreation = True, and setting the PROTON_USE_D9VK=1 EV (which I assume won't be needed once Proton pulls the newest DXVK build), I was able to get in-game just fine. Intro video didn't play, but that's for the Wine team to implement mfplat

@ionenwks
Copy link

@ionenwks ionenwks commented on 9be0bf9 Dec 17, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have the games ready anymore unfortunately, but I see this for Lulua:

Launch Flags:Use D9VK
to work around the white screen issue, create a dxvk.conf file containing d3d9.deferSurfaceCreation = True at working directory

at https://www.protondb.com/app/1121560

Given above post, I'd assume it works for them all.

Edit: haha you're right, I searched for lulua and it was the first match so I thought I was looking at the right thing 🤦‍♂️

@doitsujin
Copy link
Owner Author

@doitsujin doitsujin commented on 9be0bf9 Dec 17, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, it's worth considering then. Is there a list of executable names for all these games?

@ionenwks you quoted my own report for Ryza there. 🐸

@ryester19
Copy link
Contributor

@ryester19 ryester19 commented on 9be0bf9 Dec 17, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, it's worth considering then. Is there a list of executable names for all these games?

I'll get you a list once I gain access to my full backups later on this week.

@BillFleming
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Meruru at least has a separate crashing issue (tries to read 0 address) that needs to be resolved. Will get some api traces later.

@ryester19
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Meruru at least has a separate crashing issue (tries to read 0 address) that needs to be resolved. Will get some api traces later.

Please do, because I've gone quite far into the tutorial with Meruru and couldn't produce any crash.

Anyways, the discussion has going far beyond the scope of this commit. I'll create a issue asking to create a default profile for the other Atelier games in a day or 2, and I'll also join in on your issue if you're still having crashing probs with Meruru

@ionenwks
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ryester27 Well, there's already an issue open for this at #1287, and refer to the first comment in it. I guess we're all good and cozy in here :)

@BillFleming
Copy link

@BillFleming BillFleming commented on 9be0bf9 Jan 25, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have confirmed with DXVK 1.5.2 (using latest released normal proton) that all of the Atelier main series games work with the "Forced Off" Steam input setting and the following command:
PROTON_USE_D9VK=1 %command%
Firis of course still needs the faked3d dll..... The final challenge.....

Please sign in to comment.