protonscr

Death Stranding 2: misrendered textures in skybox on Medium graphics preset

vkd3dopen
HansKristian-Work/vkd3d-proton#2899 · opened 2026-03-21 by matte-schwartz · updated 2026-07-04 · 15 comments · github
Mmatte-schwartz 2026-03-21 github

In Death Stranding 2, if the graphics quality is set to "Medium" or below with no other changes, there is some misrendered grass/rock textures in the sky. Changing just the Shadow Resolution setting option to high before launch seems to stop the misrendering.

Medium Preset Medium Preset w/ "high" Shadow Resolution setting
Image Image

This issue is present on both my RTX 5090 rig and my AMD Z2E device.

This issue only reproduces around 75% of the time, and the game must be started with the Medium quality preset already selected in order to reproduce the issue. If you change quality preset from high to medium while in-game, the issue does not reproduce. The same settings do not have an issue on Windows.

Software information

DEATH STRANDING 2: ON THE BEACH (3280350)

Save folder: 76561198034563997.tar.gz

Pressing "continue" should load the game to the correct spot, near the Plate Gate in Australia

System information

  • GPU: RTX 5090 and AMD Z2E
  • Driver: 595.45.04 and Mesa 26.0.0-devel (git-fd2f0ed199)
  • Wine version: 1774117442 experimental-bleeding-edge-10.0-331468-20260321-p19bd86-w1729f0-d973433-vbd3f5e
  • VKD3D-Proton version: bd3f5e3d245c3ad

Log files

steam-3280350.log

Attaching renderdoc stops the issue from reproducing, and gfxreconstruct just crashes the game when you try to load in :(

Mmatte-schwartz 2026-03-22 github

I thought this might be a regression between Proton 9 and Proton 10, but the bug was just a lot more inconsistent on older Proton versions relative to proton experimental bleeding-edge. Eventually I was able to reproduce the same bug on those versions as well.

The biggest lead I have is that setting VKD3D_SHADER_CACHE_PATH=0 seems to greatly reduce the reproduction rate. I haven't tested enough to say it completely eliminates the issue though.

not sure if it's helpful but I did dump two .foz files from bleeding-edge with cache enabled and cache disabled in case that's helpful. the capture with cache enabled had misrendering, while the capture with cache disabled had no misrendering: https://app.filen.io/#/d/6a710274-3565-4823-ab90-4a38b3994ed3%235643774333685a756e355a59666b38344264736731356e72345a5844496f3548

Dumping the shaders with VKD3D_SHADER_DUMP_PATH set does not seem to reproduce the issue. this does trigger the in-game "Waiting for shader compilation" loading screen message every time though.

Mmatte-schwartz 2026-03-25 github

gfxreconstruct-git let me load into the game and get a usable capture.

captures from Z2E (Legion Go 2) and from Steam Deck: https://app.filen.io/#/d/bef886f7-90aa-4549-b2a7-a4d5d26bc921%2336397a334e4b495a484f5151672d674b414d78767056524d4e77383941364e79

Aadolfintel 2026-03-29 github

I encountered the same issue on an RX 6900XT. Restarting the game fixed it.

Image

I tested the game on the GPUs that I have and it is not great on linux:

  • Somewhat playable on 6900XT but there's heavy stuttering in cutscenes and occasionally the issue above
  • Unplayable on 9070XT, amdgpu crashes every 20 minutes or so
  • Somewhat playable on B580, same issues as the 6900XT with lower performance

Also, the game doesn't detect ray tracing support on any of those cards.

Aanpage 2026-03-30 github

I don't have anything to say about the texture problems, and this might be a little off-topic, but I want to tell someone about this because it was driving me nuts:

I also have a 6900XT and the stuttering was happening more often in normal gameplay (outside cutscenes) and a lot more in menus as I progressed through the story.

It's hard to tell for sure because it can be inconsistent, but adding VKD3D_CONFIG=no_staggered_submit made the game playable for me again. The ~500ms stutters mostly went away and now they only seem to happen once or twice per hour.

Aanpage 2026-03-31 github

Now I have something to say about the texture problem: I just got it too, but on the High preset.

Image

HHansKristian-Work maintainer 2026-04-02 github

Does it reproduce with VKD3D_DISABLE_EXTENSIONS=VK_EXT_shader_module_identifier?

Aadolfintel 2026-04-02 github

I haven't seen this glitch in a few days so it's possible that patch 1.1.53 has fixed it.

Also, the game now runs on my 9070xt, go figure...

It's still a stuttery mess in cutscenes though.

Mmatte-schwartz 2026-04-02 github

I can still reproduce the issue on the latest game patch, and the issue persists with VKD3D_DISABLE_EXTENSIONS=VK_EXT_shader_module_identifier. This was on my Legion Go 2 so an AMD Z2E chip:

Image

I'm going to launch the game with Renderdoc attached again and keep playing for a while and hope that eventually the bug shows up again.

Mmatte-schwartz 2026-04-02 github

I was finally able to repro the issue with Renderdoc attached on my Steam Deck OLED, on the latest SteamOS Preview build (3.8.1): https://app.filen.io/#/d/382f4856-9e35-4aad-8779-04de540690fc%236b453334727857683631595778345670412d754a6536336d45706f6450637453

LLuxiP7 2026-04-13 github

Still happening on Patch 1.3 (which boasts about Steam Deck Verified status). Mix of High/Very High settings with RT
GPU: RTX 4090
Driver: 595.58.03
Proton: Experimental (Bleeding-Edge) and Proton-CachyOS 0324

Image

Also there is one more issue that I noticed while playing 60 hours on Linux.

  1. There is a random blue flash once in a while. Managed to capture in a screenshot
Image
KK1ngst0m 2026-06-04 github

I was finally able to repro the issue with Renderdoc attached on my Steam Deck OLED, on the latest SteamOS Preview build (3.8.1): https://app.filen.io/#/d/382f4856-9e35-4aad-8779-04de540690fc%236b453334727857683631595778345670412d754a6536336d45706f6450637453

Could you share how you managed to get renderdoc attached?

KK1ngst0m 2026-06-23 github

Got a gfxrecon capture that repros the sky-debris on every replay, so I could dig into it offline.

The flying foliage reads a finite-but-wrong per-instance transform, the matrix is fetched through a bindless texel-buffer descriptor, and from VKD3D_DESCRIPTOR_QA_LOG the broken slots are high-churn (a different cookie almost every frame) while the good ones stay stable. So it looks like a race: the CPU recycles/overwrites that descriptor heap slot while the GPU is still reading it for an in-flight indirect draw, so the draw ends up fetching a neighbor's valid-but-wrong transform and the grass gets thrown into the sky.

To confirm i made a patch that force GPU serialization (drain the queue every N submits, VKD3D_FRAMESYNC=N): baseline is 11/11 debris, but with sync most runs come out clean and stronger sync = less debris.

That also explains the lottery / cross-vendor / never-on-windows behavior, the VKD3D_SHADER_CACHE correlation, and why the first run after a reboot is usually cleaner (cold system = slower cpu at startup, gpu keeps up). The drain is not a real fix obviously, just to prove the cause — proper fix is probably descriptor lifetime/versioning, dont recycle a slot until the gpu is done reading it.

KK1ngst0m 2026-06-23 github

Shadow setting is just a timing lottery honestly, still repros here.

Xxantrk 2026-07-01 github
Image

I'm having similar issue on the minimap. It's randomly blocking random bits of the map, quite annoying tbf.

         :++===++==================-       :++-           OS: CachyOS x86_64
        :*++====+++++=============-        .==:           Host: 83LU (Legion Pro 5 16IAX10H)
       -*+++=====+***++==========:                        Kernel: Linux 7.2.0-rc1-1-cachyos-rc
      =*++++========------------:                         Uptime: 12 hours, 46 mins
     =*+++++=====-                     ...                Packages: 38 (flatpak), 1700 (pacman)
   .+*+++++=-===:                    .=+++=:              Shell: fish 4.7.1
  :++++=====-==:                     -*****+              Display (XWU-CBA): 2560x1440 in 27", 165 Hz [External]
 :++========-=.                      .=+**+.              Display (SDC420A): 2560x1600 @ 1.49x in 16", 165 Hz [Built-in]
.+==========-.                          .                 WM: niri 26.04 (Wayland)
 :+++++++====-                                .--==-.     Theme: Breeze-Dark [GTK2], Breeze [GTK3]
  :++==========.                             :+++++++:    Icons: breeze [GTK2/3/4]
   .-===========.                            =*****+*+    Font: Arial (10pt) [GTK2/3/4]
    .-===========:                           .+*****+:    Cursor: breeze (24px)
      -=======++++:::::::::::::::::::::::::-:  .---:      Terminal: kitty 0.47.1
       :======++++====+++******************=.             Terminal Font: NotoSansMono-Regular (12pt)
        :=====+++==========++++++++++++++*-               CPU: Intel(R) Core(TM) Ultra 9 275HX (8+16) @ 5.50 GHz
         .====++==============++++++++++*-                GPU 1: NVIDIA GeForce RTX 5070 Ti Mobile [Discrete]
          .===+==================+++++++:                 GPU 2: Intel Graphics @ 1.90 GHz [Integrated]

Xxantrk 2026-07-04 github
Image another one similar to above.