diff --git a/src/d3d9/d3d9_device.h b/src/d3d9/d3d9_device.h index aaf7773b9..69b0ddd77 100644 --- a/src/d3d9/d3d9_device.h +++ b/src/d3d9/d3d9_device.h @@ -1358,8 +1358,6 @@ namespace dxvk { std::atomic m_availableMemory = { 0 }; std::atomic m_samplerCount = { 0 }; - Direct3DState9 m_state; - D3D9DeviceLostState m_deviceLostState = D3D9DeviceLostState::Ok; HWND m_fullscreenWindow = NULL; @@ -1367,6 +1365,10 @@ namespace dxvk { lru_list m_mappedTextures; #endif + // m_state should be declared last (i.e. freed first), because it + // references objects that can call back into the device when freed. + Direct3DState9 m_state; + D3D9VkInteropDevice m_d3d9Interop; };