protonscr

Rendering issues with Saints Row Franchise

dxvkclosed d3d11needs apitrace
doitsujin/dxvk#24 · opened 2018-01-21 by XenonPK · updated 2019-06-06 · 13 comments · github
XXenonPK 2018-01-21 github

The game boots normally, the menus are rendered without issues, however upon loading, only the HUD is rendered correctly, on a black background. (Using latest master)

Software information

Saints Row IV (also happens with Saints Row The Third). Confirmed regardless of settings, went from high+4xmsaa to low+noaa, with the same results.

System information

  • Distro: openSUSE Tumbleweed
  • GPU: RX 560
  • Driver: Mesa 17.3.2
  • Wine version: wine-staging-2.20

Apitrace file(s)

Log files

XXenonPK 2018-01-21 github

It fails right after this:

warn:  DxgiSwapChain: Display mode changes not implemented
warn:  DxgiFactory::MakeWindowAssociation: Ignoring flags
fixme:driver:D3DKMTOpenAdapterFromHdc (0x33ee44): stub
Ddoitsujin maintainer 2018-01-22 github

Please run apitrace without DXVK. If you can, it would be best to run it on Windows, but Wine with their OpenGL backend may work as well. I edited the issue template accordingly to make this clear.

The log shows a few features that are still missing, which is likely the reason why the game doesn't render anything. Can't say when those will be implemented, however.

Jjonlap 2018-02-06 github

Apitrace of Saints Row IV run on Windows here.

XXenonPK 2018-02-06 github

I have an update on this issue, after updating to latest master and Mesa 18.0, here are the results:

saints row iii
saints row iv
saints row goh

And It seems The Witcher 3 started rendering something too:

witcher3_1
witcher3_2
witcher3_3
witcher3_4

Ddoitsujin maintainer 2018-02-19 github

Since an apitrace could not be provided, can someone please test this again with a recent DXVK build? The missing features mentioned in the log files have been implemented.

ZZeroFault 2018-02-20 github

@doitsujin
Saint's row 4 crashes after loading a saved game.

OS: Native Windows
Nvidia GTX 1080 ( driver 390.77)

SaintsRowIV_d3d11.log
SaintsRowIV_dxgi.log
vulkanlog.txt

There were a large a large amount of errors in the vulkan debug output.

saintsrow4.trace

Please excuse the stuttery apitrace. For some reason the apitrace was making saints row run like a slideshow and took a while to generate.

Ddoitsujin maintainer 2018-02-20 github

I'll look into it, looks like there is a bug with resource tracking somewhere.

For some reason the apitrace was making saints row run like a slideshow and took a while to generate.

That's normal, doesn't matter though.

ZZeroFault 2018-03-28 github

I am providing an updated apitrace and logs for Saint's Row IV. This one removes the intro videos since they were really slow to replay in a trace.

d3dretrace_d3d11.log
d3dretrace_dxgi.log
vulkanlog.txt

saintsrowIV.trace

?ghost 2018-06-17 github

Saint's Row IV is working like a charm in RADV the only failure is that doesn't charges with the right resolution
Tested with mesa-git and dxvk master f519a0f .

Ddoitsujin maintainer 2018-07-20 github

Closing since this appears to be fixed.

Ppchome 2019-06-01 github

Saints Row The Third

Several regressions (master vs DXVK-0.81):

  1. transparent textures (almost nothing rendered)
  2. black(grey) patches on the ground (depend on view/position)

For (2.) I don't remember such issue when last checked (near 0.81 version, according to dxvk log files). Present in both dx9 (D9VK) and dx11(DXVK) versions, same as flickering faces(which was the issue in 0.81). Renders fine in wined3d mode (w/o any issues but slower). Likely Nvidia driver changes (430.14 and 418.52.07 was tested).

Apitraces still not producible on linux, none of provided saintsrowIV.trace files available to check (3 and IV usually has common issues).

For (1.)
https://github.com/doitsujin/dxvk/commit/6eeb3b6da9ec9359318a7fd2786e6d8cc5c4878e
https://github.com/doitsujin/dxvk/commit/53aa27336bb6ee3b04f38a4e7d60016c7a4785fa

following patch fixes the issue

diff --git a/src/dxvk/dxvk_util.h b/src/dxvk/dxvk_util.h
index 86bb44e9..dcb853b6 100644
--- a/src/dxvk/dxvk_util.h
+++ b/src/dxvk/dxvk_util.h
@@ -182,8 +182,8 @@ namespace dxvk::util {
    * \returns \c true if the depth aspect for images in this layout is read-only.
    */
   inline bool isDepthReadOnlyLayout(VkImageLayout layout) {
-    return layout == VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
-        || layout == VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL;
+    return layout == VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
+        //|| layout == VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL;
   }
   
   /**

standard_validation layer fails almost instantly after start (for both master and patched), but OK for 0.81, so here the both logs:
SR3-1.2.1-patched.log
SR3-0.81.log

EDIT: in case the game specific overrides: SaintsRowTheThird.exe and SaintsRowTheThird_DX11.exe

Ddoitsujin maintainer 2019-06-01 github

That patch is incorrect and would only break a workaround for a game bug in Spellforce 3. This game might have the same bug but rely on different behaviour, can't tell without an apitrace though.

Also it would be nice if you could post the validation output for the UNPATCHED 1.2.1/master.

Anyway, just use the native Linux version instead. I kind of don't want to work around a broken engine that has a working Linux port.

Ppchome 2019-06-01 github

That patch is incorrect ...

I don't saying it's correct, otherwise could PR it.

Also it would be nice if you could post the validation output for the UNPATCHED 1.2.1/master.

Output exactly the same, both crashing with validation enabled. Anyway : SR3-1.2.1-master.log


EDIT: :smile:

How to Contribute on GitHub: The Quest
  • Me: I want to spend an hour in an "sandbox" game.
  • SaintsRow3: A problem, you see nothing!
  • Me: Ok, I remember it worked, I just going to wipe old data and recreate prefix.
  • SaintsRow3: A problem, you see nothing!
  • Me: Ok, I'll check old DXVK version, also D9VK for comparison.
  • GitHub: A problem, you cant successfully download any binary.
  • Me: Ok, sometimes it happen, I should find out is there an alternative source. Yep, https://haagch.frickel.club/files/dxvk.
  • SaintsRow3: Ok, but ... a problem, a lot of artefacts/glitches!
  • Me: Ok, at least I know the first problem was introduced somewhere in new DXVK releases. Maybe I should report, I'll create an apitrace. Also, artefacts/glitches are common for DXVK and D9VK, so likely related to Nvidia drivers, no matter.
  • apitrace: A problem, you can't create trace file.
  • Me: Ok, I'll check if there are already reported trace files for this game. Fine, not exactly for SR3 but SR4 should be similar. Going to download some and check if the bug applies to them.
  • share: A problem, all files are expired and not available anymore.
  • Me: It's not funny. But ok, maybe vulkan validation logs would be useful.
  • validator: A problem, you can't even run the game with validation enabled.
  • Me: Hmm, is this the same for old DXVK release? No, it runs fine, but log is useless in context of new releases. Ok, even w/o stable connection to GitHub I can try to "bisect" using builds from https://haagch.frickel.club/files/dxvk.
    (Me: downloading random revisions, analysing git logs, ...)
    (Me: after dozen attempts) Ok, looks like I found exact commit which breaks the game, being partially reverted it proves that the game runs as before.
    Now with all this information I can report the issue. Submit.
  • Developer: I don't care.
  • Me: :man_facepalming:

I have a mixed feelings, but some kind of game was played and a lesson was learned.

EDIT2:
@pchome

  1. black(grey) patches on the ground (depend on view/position)

In case someone looking for solution: set __GL_NextGenCompiler=0 , tested on 430.14/418.52.10.

Launch options