protonscr

Nemirtingas Ingame Overlay is broken in some games on DXVK 2.7.1

dxvkclosed not our bug
doitsujin/dxvk#5186 · opened 2025-09-02 by ndiruhniu · updated 2025-10-30 · 15 comments · github
Nndiruhniu 2025-09-02 github

I live in a region with poor internet connectivity, which sometimes completely drops out, so I use an emulator (all these games are legally purchased and available on my Steam account). Recently, I decided to update DXVK since a new version, 2.7.1, was released. After launching Fallout Shelter, I noticed that the overlay does not open. Through trial and error, I discovered that the issue lies with the updated DXVK, as the overlay worked when I installed the older version, 2.7. I also tested it by launching ELDEN RING and was surprised to find that it was affected as well, which is strange since it uses DX12. Everything was fixed when I installed the older version of DXVK 2.7. I think this issue only affects DX11 and DX12 games, as the overlay works in Bayonetta, which uses DX9, with DXVK 2.7.1

Fallout Shelter with DXVK 2.7.1 (overlay does not open when pressing Shift + Tab)
Image

Fallout Shelter with DXVK 2.7 (overlay opens)
Image

Software information

Fallout Shelter, ELDEN RING, Colt Canyon, Bayonetta

System information

  • GPU: AMD Radeon 780M
  • Driver: Mesa 25.2.1
  • Wine version: wine-10.14-staging-tkg-amd64 from Kron4ek inside Bottles
  • DXVK version: 2.7.1

Apitrace file(s)

When launching Fallout Shelter, it gives an error
Image

and this is all that Apitrace outputs: FalloutShelter.trace.zip

Log files

log.txt

BBlisto91 2025-09-02 github

Do you have a log from the overlay? I see that it tries to detect dxvk, so perhaps that is just failing?

Nndiruhniu 2025-09-02 github

I don't have logs. I don't really know how to find this out. The overlay just stopped working in DXVK 2.7.1(

BBlisto91 2025-09-26 github

Is it the same with latest master? You can download a build here https://github.com/doitsujin/dxvk/actions/runs/17993501449

Nndiruhniu 2025-09-27 github

Still not working.

Ddoitsujin maintainer 2025-09-30 github

That makes no sense whatsoever since none of the components involved here should be D3D8.

Please double-check that 097c1a5ad27d08ea435ddc6bf39ed4e3d8238bd4 is broken and 59826f3412a9e45eb502ce2c8800345a694c937d works fine.

Iiknen1792 2025-09-30 github

I don't understand anything about this project. Just used git bisect. I found a bad commit, create a reverse patch and built a live version with that patch. After this the problem was resolved.

Ddoitsujin maintainer 2025-09-30 github

If it truly is that commit then the overlay requires DXVK to be broken and will simply no longer work.

I swear to god, everything involving mods is just causing nothing but pain and suffering for us.

Nndiruhniu 2025-10-01 github

@iknen1792 сould you share your live build? I would like to test it on my PC.

Nndiruhniu 2025-10-19 github

I confirm this.

Regression commit https://github.com/doitsujin/dxvk/commit/097c1a5ad27d08ea435ddc6bf39ed4e3d8238bd4

By modifying com_pointer.h, I was able to achieve a working overlay.
I changed:

      // prevents the destruction of private
      // Com objects during self-assignment
      if (likely(m_ptr != object)) {
        this->decRef();
        m_ptr = object;
        this->incRef();
      }

To:

      this->decRef();
      m_ptr = object;
      this->incRef();
WWinterSnowfall 2025-10-30 github

By modifying com_pointer.h, I was able to achieve a working overlay.

If that is the case, the overlay indeed relies on objects temporarily going out of scope to hook into dxvk. The above change was made to fix random crashing observed in several games that issued calls to overwrite d3d state with the same objects that were previously set. For obvious reasons we can not roll back a change that has fixed crashing in games, nor does it make any sense to keep the old behavior in place. A fix will have to be performed in the overlay itself to address the problem.

KK0bin maintainer 2025-10-30 github

I opened an issue on the overlay GitHub repo. Hopefully the developer of that can chime in and give us a quick outline of how their D3D9 hooking code works (or better yet, fix it).

NNemirtingas 2025-10-30 github

Hi, I'm the developer of ingame_overlay. Sorry for the inconvenience, while I'll happily take a look, users should take note of my issue https://github.com/Nemirtingas/ingame_overlay/issues/21

TL;DR;
DXVK support is a desirable feature but has never been a priority, neither it was even tested once. The fact that it worked before is a pure coincidence. I added a DXVK DETECTION feature because I had many reports on seemingly DirectX issues while they were using DXVK.

NNemirtingas 2025-10-30 github

The "issue" that the user actually encounter is simple: the new code is not currently hookable by my detour library.

The DXVK DXGISwapChain::Present function assembly code changed

https://github.com/doitsujin/dxvk/blob/master/src/dxgi/dxgi_swapchain.cpp#L329-L331

In DXVK 2.7.1,

lea rax, [rip - 7]

While in DXVK 2.7.0

rcx, qword ptr [rcx + 0x10]
rax, qword ptr [rcx]

Their crash is not related to your change, its related on the fact that DXVK was never supported in the first place, and as DX11 hook fails, because of the above reason, it fallsback to Vulkan hook and crash (not supported).

KK0bin maintainer 2025-10-30 github

Okay, thanks a lot.

Nothing extracted yet.