godotengine / godot

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

Lightmap bake crash at the beginning of the baking #98180

Open jcostello opened 3 days ago

jcostello commented 3 days ago

Tested versions

v4.4.dev.custom_build [708acdf1d]

System information

Ubuntu 22.04

Issue description

Trying to bake lightin in the TPS demo gets this error at the beginning of the bake. Previous builds had no problem baking

handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.4.dev.custom_build (708acdf1d440d9dcc7daa1fc5a457f1a2e125181)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x42990) [0x73ae1d042990] (??:0)
[2] RenderingDeviceDriverVulkan::command_queue_execute_and_present(RenderingDeviceDriver::CommandQueueID, VectorView<RenderingDeviceDriver::SemaphoreID>, VectorView<RenderingDeviceDriver::CommandBufferID>, VectorView<RenderingDeviceDriver::SemaphoreID>, RenderingDeviceDriver::FenceID, VectorView<RenderingDeviceDriver::SwapChainID>) (/media/juan/NTFS1/dev/godot/drivers/vulkan/rendering_device_driver_vulkan.cpp:2456 (discriminator 2))
[3] RenderingDevice::_execute_frame(bool) (/media/juan/NTFS1/dev/godot/servers/rendering/rendering_device.cpp:5868 (discriminator 3))
[4] RenderingDevice::submit() (/media/juan/NTFS1/dev/godot/servers/rendering/rendering_device.cpp:5646)
[5] LightmapperRD::bake(Lightmapper::BakeQuality, bool, float, int, int, float, float, int, bool, bool, Lightmapper::GenerateProbes, Ref<Image> const&, Basis const&, bool (*)(float, String const&, void*, bool), void*, float) (/media/juan/NTFS1/dev/godot/modules/lightmapper_rd/lightmapper_rd.cpp:1734)
[6] LightmapGI::bake(Node*, String, bool (*)(float, String const&, void*, bool), void*) (/media/juan/NTFS1/dev/godot/scene/3d/lightmap_gi.cpp:1118 (discriminator 1))
[7] LightmapGIEditorPlugin::_bake_select_file(String const&) (/media/juan/NTFS1/dev/godot/editor/plugins/lightmap_gi_editor_plugin.cpp:71 (discriminator 2))
[8] LightmapGIEditorPlugin::_bake() (/media/juan/NTFS1/dev/godot/editor/plugins/lightmap_gi_editor_plugin.cpp:123 (discriminator 2))
[9] void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) (/media/juan/NTFS1/dev/godot/./core/variant/binder_common.h:309)
[10] void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) (/media/juan/NTFS1/dev/godot/./core/variant/binder_common.h:452)
[11] MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const (/media/juan/NTFS1/dev/godot/./core/object/method_bind.h:345 (discriminator 1))
[12] Object::callp(StringName const&, Variant const**, int, Callable::CallError&) (/media/juan/NTFS1/dev/godot/core/object/object.cpp:813 (discriminator 1))
[13] Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const (/media/juan/NTFS1/dev/godot/core/variant/callable.cpp:69 (discriminator 1))
[14] Object::emit_signalp(StringName const&, Variant const**, int) (/media/juan/NTFS1/dev/godot/core/object/object.cpp:1201)
[15] Node::emit_signalp(StringName const&, Variant const**, int) (/media/juan/NTFS1/dev/godot/scene/main/node.cpp:3974)
[16] Error Object::emit_signal<>(StringName const&) (/media/juan/NTFS1/dev/godot/./core/object/object.h:920)
[17] BaseButton::_pressed() (/media/juan/NTFS1/dev/godot/scene/gui/base_button.cpp:139)
[18] BaseButton::on_action_event(Ref<InputEvent>) (/media/juan/NTFS1/dev/godot/scene/gui/base_button.cpp:179)
[19] BaseButton::gui_input(Ref<InputEvent> const&) (/media/juan/NTFS1/dev/godot/scene/gui/base_button.cpp:69 (discriminator 2))
[20] Control::_call_gui_input(Ref<InputEvent> const&) (/media/juan/NTFS1/dev/godot/scene/gui/control.cpp:1823)
[21] Viewport::_gui_call_input(Control*, Ref<InputEvent> const&) (/media/juan/NTFS1/dev/godot/scene/main/viewport.cpp:1576)
[22] Viewport::_gui_input_event(Ref<InputEvent>) (/media/juan/NTFS1/dev/godot/scene/main/viewport.cpp:1837 (discriminator 2))
[23] Viewport::push_input(Ref<InputEvent> const&, bool) (/media/juan/NTFS1/dev/godot/scene/main/viewport.cpp:3176 (discriminator 2))
[24] Window::_window_input(Ref<InputEvent> const&) (/media/juan/NTFS1/dev/godot/scene/main/window.cpp:1680)
[25] void call_with_variant_args_helper<Window, Ref<InputEvent> const&, 0ul>(Window*, void (Window::*)(Ref<InputEvent> const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (/media/juan/NTFS1/dev/godot/./core/variant/binder_common.h:304 (discriminator 2))
[26] void call_with_variant_args<Window, Ref<InputEvent> const&>(Window*, void (Window::*)(Ref<InputEvent> const&), Variant const**, int, Callable::CallError&) (/media/juan/NTFS1/dev/godot/./core/variant/binder_common.h:419)
[27] CallableCustomMethodPointer<Window, void, Ref<InputEvent> const&>::call(Variant const**, int, Variant&, Callable::CallError&) const (/media/juan/NTFS1/dev/godot/./core/object/callable_method_pointer.h:111)
[28] Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const (/media/juan/NTFS1/dev/godot/core/variant/callable.cpp:57)
[29] Variant Callable::call<Ref<InputEvent> >(Ref<InputEvent>) const (/media/juan/NTFS1/dev/godot/./core/variant/variant.h:893)
[30] DisplayServerX11::_dispatch_input_event(Ref<InputEvent> const&) (/media/juan/NTFS1/dev/godot/platform/linuxbsd/x11/display_server_x11.cpp:4063 (discriminator 2))
[31] DisplayServerX11::_dispatch_input_events(Ref<InputEvent> const&) (/media/juan/NTFS1/dev/godot/platform/linuxbsd/x11/display_server_x11.cpp:4040)
[32] Input::_parse_input_event_impl(Ref<InputEvent> const&, bool) (/media/juan/NTFS1/dev/godot/core/input/input.cpp:803)
[33] Input::flush_buffered_events() (/media/juan/NTFS1/dev/godot/core/input/input.cpp:1084)
[34] DisplayServerX11::process_events() (/media/juan/NTFS1/dev/godot/platform/linuxbsd/x11/display_server_x11.cpp:5200)
[35] OS_LinuxBSD::run() (/media/juan/NTFS1/dev/godot/platform/linuxbsd/os_linuxbsd.cpp:960)
[36] /media/juan/NTFS1/dev/godot/bin/godot.linuxbsd.editor.dev.x86_64(main+0x190) [0x60232bcce1e9] (/media/juan/NTFS1/dev/godot/platform/linuxbsd/godot_linuxbsd.cpp:85)
[37] /lib/x86_64-linux-gnu/libc.so.6(+0x28150) [0x73ae1d028150] (??:0)
[38] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x89) [0x73ae1d028209] (??:0)
[39] /media/juan/NTFS1/dev/godot/bin/godot.linuxbsd.editor.dev.x86_64(_start+0x25) [0x60232bccdf95] (??:?)
-- END OF BACKTRACE --
================================================================

Steps to reproduce

Bake Lightmaps with 5 bounces, low quality, 1.5 texel density

Minimal reproduction project (MRP)

TPSDemo

Calinou commented 1 day ago

I can't reproduce this with https://github.com/godotengine/tps-demo on 4.4.dev 04692d83c (Linux, GeForce RTX 4090 with NVIDIA 560.35.03).

VRAM utilization goes up to 9.6 GB while baking lightmaps, so you probably need a GPU with at least 10 GB of VRAM for the bake to succeed.