godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.96k stars 20.18k forks source link

"Pages in use exist at exit in PagedAllocator" on exit using D3D12 #94251

Open alvinhochun opened 2 months ago

alvinhochun commented 2 months ago

Tested versions

System information

Windows 10 - v4.3.beta3.official [82cedc83c]

Issue description

ERROR: Pages in use exist at exit in PagedAllocator: 25VersatileResourceTemplateIJN26RenderingDeviceDriverD3D1210BufferInfoENS0_11TextureInfoES2_S2_NS0_16VertexFormatInfoENS0_17CommandBufferInfoENS0_15FramebufferInfoENS0_10ShaderInfoENS0_14UniformSetInfoENS0_14RenderPassInfoENS0_22TimestampQueryPoolInfoEEE
   at: ~PagedAllocator (./core/templates/paged_allocator.h:170)

Backtrace:

PagedAllocator<VersatileResourceTemplate<RenderingDeviceDriverD3D12::BufferInfo, RenderingDeviceDriverD3D12::TextureInfo, RenderingDeviceDriverD3D12::TextureI[...]
RenderingDeviceDriverD3D12::~RenderingDeviceDriverD3D12(this=0x00000182abca90b0) at rendering_device_driver_d3d12.cpp:6250:1
void memdelete<RenderingDeviceDriver>(p_class=0x00000182abca90b0) at memory.h:116:13
RenderingContextDriverD3D12::driver_free(this=0x00000182abc7fce0, p_driver=0x00000182abca90b0) at rendering_context_driver_d3d12.cpp:246:2
RenderingDevice::finalize(this=0x00000182abca7430) at rendering_device.cpp:5869:12
RenderingDevice::~RenderingDevice(this=0x00000182abca7430) at rendering_device.cpp:6558:2
void memdelete<RenderingDevice>(p_class=0x00000182abca7430) at memory.h:116:13
DisplayServerWindows::~DisplayServerWindows(this=0x00000182abc5df00) at display_server_windows.cpp:6116:3
void memdelete<DisplayServer>(p_class=0x00000182abc5df00) at memory.h:116:13
finalize_display() at main.cpp:351:2
Main::cleanup(p_force=false) at main.cpp:4330:2
widechar_main(argc=5, argv=0x00000182a8ba8640) at godot_windows.cpp:184:2
_main() at godot_windows.cpp:206:11
main(argc=5, argv=0x00000182a8b27ae0) at godot_windows.cpp:225:9

Steps to reproduce

Run editor with --rendering-method forward_plus --rendering-driver d3d12 and close it.

Minimal reproduction project (MRP)

N/A

Calinou commented 1 month ago

I can confirm this on 4.3.rc https://github.com/godotengine/godot/commit/e343dbbcc1030f04dc5833f1c19d267a17332ca9 (Windows 11 23H2).

lostminds commented 2 weeks ago

I'm getting a similar error on exit:

ERROR: Pages in use exist at exit in PagedAllocator: N7Variant5Pools11BucketSmallE
   at: ~PagedAllocator (./core/templates/paged_allocator.h:170)

But for a OpenGL API 4.1 Metal - 88.1 - Compatibility project on macOS 14.6.1 in 4.3.stable, so I'm guessing this has a different cause.