godotengine / godot

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

Vulkan: Placing a primitive mesh into GridMap crashes the editor #44898

Closed felrugo closed 2 years ago

felrugo commented 3 years ago

Godot version: https://github.com/godotengine/godot/commit/950dedbb6858458b5944523bf806e35eb4d6a5d8 OS/device including version: Windows 10

Issue description: Placing a mesh into GrdMap raises a nullpointer exception at
RendererStorageRD::mesh_surface_get_primitive(godot\servers/rendering/renderer_rd/renderer_storage_rd.h:1431), surface is null. The editor crashes.

Steps to reproduce:

  1. Create a 3D scene and add a GridMap to it.
  2. Create a MeshLibrary and add a BoxMesh to the library.
  3. Try to place the mesh into the grid, the editor will crash.

Minimal reproduction project: See "steps to reproduce"

Calinou commented 3 years ago

I can't reproduce this on 3.2 Git cc5c56c4d, but I can reproduce this on master Git 7a16efc88. Backtrace:

ERROR: Condition "!mesh" is true. Returning: nullptr
   at: mesh_get_surface (./servers/rendering/renderer_rd/renderer_storage_rd.h:1423)
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /lib64/libc.so.6(+0x3da60) [0x7f6af9b0ca60] (??:0)
[2] RendererStorageRD::mesh_surface_get_primitive(void*) (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_rd/renderer_storage_rd.h:1431)
[3] RendererSceneRenderForward::_render_list(long, long, RendererSceneRenderForward::RenderList::Element**, int, bool, RendererSceneRenderForward::PassMode, bool, RID, bool, Vector2 const&, Plane const&, float, float) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp:1016)
[4] RendererSceneRenderForward::_render_scene(RID, Transform const&, CameraMatrix const&, bool, PagedArray<RendererSceneRender::InstanceBase*> const&, int, PagedArray<RID> const&, PagedArray<RendererSceneRender::InstanceBase*> const&, RID, RID, RID, RID, RID, int, Color const&, float) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp:1892)
[5] RendererSceneRenderRD::render_scene(RID, Transform const&, CameraMatrix const&, bool, PagedArray<RendererSceneRender::InstanceBase*> const&, PagedArray<RID> const&, PagedArray<RID> const&, PagedArray<RID> const&, PagedArray<RID> const&, PagedArray<RendererSceneRender::InstanceBase*> const&, RID, RID, RID, RID, RID, int, float) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp:7167)
[6] RendererSceneCull::_render_scene(RID, Transform, CameraMatrix const&, bool, RID, RID, RID, RID, RID, int, float) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_scene_cull.cpp:2643)
[7] RendererSceneCull::render_camera(RID, RID, RID, Vector2, float, RID) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_scene_cull.cpp:2043)
[8] RendererViewport::_draw_3d(RendererViewport::Viewport*, XRInterface::Eyes) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_viewport.cpp:86)
[9] RendererViewport::_draw_viewport(RendererViewport::Viewport*, XRInterface::Eyes) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_viewport.cpp:136)
[10] RendererViewport::draw_viewports() (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_viewport.cpp:565)
[11] RenderingServerDefault::draw(bool, double) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/rendering_server_default.cpp:114)
[12] RenderingServerWrapMT::draw(bool, double) (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/rendering_server_wrap_mt.cpp:93)
[13] Main::iteration() (/home/hugo/Documents/Git/godotengine/godot/main/main.cpp:2514)
[14] OS_LinuxBSD::run() (/home/hugo/Documents/Git/godotengine/godot/platform/linuxbsd/os_linuxbsd.cpp:261)
[15] bin/godot.linuxbsd.tools.64.llvm(main+0x1dc) [0x466deac] (/home/hugo/Documents/Git/godotengine/godot/platform/linuxbsd/godot_linuxbsd.cpp:58)
[16] /lib64/libc.so.6(__libc_start_main+0xf2) [0x7f6af9af71e2] (??:0)
[17] bin/godot.linuxbsd.tools.64.llvm(_start+0x2e) [0x466dc0e] (??:?)
-- END OF BACKTRACE --
KoBeWi commented 2 years ago

I can use GridMap just fine in alpha 7, so looks like this is fixed?

akien-mga commented 2 years ago

Yeah it's very likely fixed since then.