godotengine / godot

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

Vulkan: VoxelGI crashes when baking only Mesh(es) child of a different Node #33381

Closed rubenjavier closed 1 year ago

rubenjavier commented 4 years ago

Godot version: vulkan branch 8b1d5dd from 20191105

OS/device including version: Windows 10 64 bits VS 2017 python 3.8.0 scons 3.1.1 Intel i7 8750H 16G RAM Nvidia GTX 1060

Issue description: When the GIProbe and the Mesh(es) it is going to use for baking are child of different Nodes, the baking crashes

Steps to reproduce: Create a 3D Scene Add a Node01 of type Node as child of the root Add a GIProbe as child of Node01 Add a Node02 of type Node as child of the root Add a Mesh as child of Node02 and make the Mesh be anything (a sphere) on the Mesh enable "Geometry->Use In Baked Ligh" on the GIProbe hit "Bake GI Probe", it crashes

If you move the Mesh to be a child of Node01 and be a sibling to the GIProbe, baking does not crash.

qarmin commented 4 years ago

I can't reproduce crash on Ubuntu 19.10 Can you provide simple minimal reproduction project for people that want to fast check project without the risk of confusion?

rubenjavier commented 4 years ago

VK_GIbug.zip

OK here is the project and I've also detected the steps to reproduce this and a previous bug where objects with "Use Dynakic GI" made the editor slows to a crawl

On the project open the scene /scenes/GIbug.tscn you will see this structure

GIbug(Spatial) -Enviroment(Node) -GIProbe(GIProbe) -FloorSameNode(MeshInstance "Use In Baked Light")
-Static(Node)
-FloorDuplicated(MeshInstance "Use In Baked Light")
-Dynamic(Node)
-Ball(MeshInstance "Use Dynamic GI")

GIProbe is visible FloorSameNode is visible FloorDuplicated is not visible (a clone of FloorSameNode moved to another node) Ball is not visible

.-If you bake GIProbe with FloorSameNode visible, everything is OK .--if you make Ball visible, the editor will move at regular speed

.-If you make FloorSameNode invisible and FloorDuplicated visible and bake, it will crash or take a long time to bake, also the baked lighting is wrong, very overblown. .--if you make now Ball visible, the editor will work at a crawl speed, because there is a bad GI baked and a Mesh with "Use Dynamic GI" visible (Ball).

Long story short if you bake GI, you need to have at least one Mesh visible with the same father node as the GIProbe, and that Mesh must have "Use In Baked Light" enabled

yaelatletl commented 4 years ago

Can confirm, this still happens. found the same bug and this post to be the only solution, before I couldn't correctly test the vulkan branch at all.
FPS would crawl at 1 FPS R7 3700, rx5700, 32GB RAM

KoBeWi commented 3 years ago

Still valid in 771b99b

TechnoPorg commented 2 years ago

I can no longer reproduce this issue. I opened the project in VK_GIBug.zip and pressed "Bake VoxelGI" on the probe a few times, and nothing happened besides the VoxelGI being baked.

Calinou commented 2 years ago

Closing per @TechnoPorg's comment.

Note that if you're facing very low performance (< 1 FPS), it's due to a different bug: https://github.com/godotengine/godot/issues/36121

bitsawer commented 1 year ago

Closing as completed considering previous comments. I can't repro the issue anymore, either.