Skip to content

Path of Exile 2 + XeFG + Overwolf overlay intermittently causes DXGI_ERROR_DEVICE_REMOVED / DEVICE_HUNG #1023

Description

@dhaern

Game name and version:

Path of Exile 2 (Steam)

Mods and mod versions used

OptiScaler v0.9.3-pre2 ff40962f / build 20260529_023321
OptiFG + XeFG
PoE2 overlay/mod from Overwolf
4.0.2c mod

GPU

AMD Radeon RX 6900 XT

OS

Windows 11

Used automated or manual install?

  • Automated
  • Manual

If on AMD/Intel and Automated, used DLSS inputs?

  • Yes
  • No

Upscaler/input used:

  • In-game/upscaler input: Upscaler
  • DX12 upscaler: FSR 3.1
  • DX11 upscaler: FSR 3.1 DX11on12 fallback configured, then falls back to FSR 2.2 after the failure
  • Frame Generation output: XeFG

Did you check the Wiki and Compatibility List?

  • Yes
  • No

Please describe the issue and steps to reproduce it

Path of Exile 2 sometimes starts correctly with OptiScaler + XeFG + the Overwolf PoE2 overlay, but other times XeFG fails shortly after entering the game. The game does not always crash to desktop; instead, OptiScaler/XeFG appears to stop working and the render path falls back to DX11/FSR2 after a DX12 device removal.

This seems timing/order dependent. When the overlay loads later, OptiScaler + XeFG can work normally. When Overwolf hooks/initializes around the active DX12/XeFG presentation path, the DX12 device can become removed/hung.

Relevant log sequence from the failing run:

LibraryLoadHooks::LoadLibraryCheckW Overlay dll: ...\Overwolf\...\OWUtils.dll
LibraryLoadHooks::LoadLibraryCheckW Calling CreateDxgiFactory methods for overlay!
...
hkD3D11On12CreateDevice Caller: OWClient.dll, Device: ...
...
LocalPresent Original present result: 887A0005
XeFG Log: Failed to present Application frame, HRESULT: 0x887a0005
LocalPresent Original present result: 887A0005
XeFG Log: Failed to present Interpolated frame, HRESULT: 0x887a0005
FGHooks::hkFGPresent1 o_FGSCPresent result: 887A0005
Util::GetDeviceRemovedReason Device removed reason: Unknown (887A002B)
XeFG_Dx12::Deactivate
...
FSR31FeatureDx11on12::Evaluate BaseInit failed!
FeatureProvider_Dx11::ChangeFeature changing backend to fsr22

0x887A0005 is DXGI_ERROR_DEVICE_REMOVED, and 0x887A002B appears to be DXGI_ERROR_DEVICE_HUNG.

In the working run, the game remains on DX12/XeFG and continues presenting normally. The Overwolf overlay also appears, but the timing/order is different and it does not trigger the device removal.

Steps to reproduce:

  1. Install OptiScaler in Path of Exile 2 using dbghelp.dll or dxgi.dll.
  2. Enable Frame Generation with XeFG.
  3. Use the PoE2 Overwolf overlay/mod.
  4. Start the game in DX12 and enter the game.
  5. Sometimes OptiScaler + XeFG works normally; other times, after a few seconds, XeFG fails to present and the log shows 0x887a0005 / 887A002B, followed by fallback to DX11/FSR2.

Observed behavior:

  • XeFG fails to present application/interpolated frames.
  • DX12 device gets removed/hung.
  • OptiScaler deactivates XeFG and the game/render path falls back to DX11/FSR2.
  • The issue is intermittent and seems related to when the Overwolf overlay initializes/hooks.

Expected behavior:

  • OptiScaler + XeFG should remain active when the Overwolf overlay is present, or at least handle the overlay initialization without triggering a DX12 device removal.

Additional observation:
There may be a small typo in DllNames.h in the blockOverlay list:

"owclient"
"galaxy",

This concatenates into "owclientgalaxy" in C++, so owclient and galaxy are not separate entries. This may affect DisableOverlays=true tests because OWClient.dll may not be blocked as expected.

I have attached

  • OptiScaler.log (set LogLevel=0 and LogToFile=true in OptiScaler.ini, zip it if too big)
  • Screenshot of game folder (where you placed Opti)
  • Screenshot of Opti overlay in-game (opens with shortcut, default Insert)

I can attach the working and failing OptiScaler logs separately because they are large.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions