Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vulkan: Moving a light in a VoxelGI is extremely slow if no mesh has a Global Illumination Mode set to Baked #36121

Closed
Tracked by #55328
Calinou opened this issue Feb 11, 2020 · 5 comments

Comments

@Calinou
Copy link
Member

Calinou commented Feb 11, 2020

Godot version: Git 11cd8b8

OS/device including version: Fedora 31, NVIDIA 440.44, GeForce GTX 1080

Issue description: After baking a GIProbe in a simple scene with a few lights, moving an OmniLight inside will take several seconds just to update the editor viewport. Attempting to move a light without using snapping will likely freeze the editor for more than 10 seconds.

Moving the VoxelGI node itself can cause this slowdown if the VoxelGI node is moved in a way that puts some of the lights outside its bounding box (notice the update spinner in the top-right corner):

voxelgi-dynamic-moving-slow.mp4

Moving a MeshInstance3D node does not cause this slowdown.

Steps to reproduce: Edit the attached reproduction project and try to move an OmniLight.

Minimal reproduction project: test_giprobe_vulkan.zip
Old MRP from February 2020: test_giprobe_vulkan.zip

@Calinou Calinou added this to the 4.0 milestone Feb 11, 2020
@Ace-Dragon
Copy link

I think the issue really stems from the fact that even moving the view can be pretty glacial, and this is on a machine that has no problem rendering out multiple GI Probes at high resolutions in Godot 3.2 (GTX 1060 GPU).

The actual computing part (creating the data) does not take that long.

@Calinou Calinou changed the title Vulkan: Moving a light in a GIProbe is extremely slow Vulkan: Moving a light in a GIProbe is extremely slow if no mesh has a Bake Mode set to Dynamic or Baked Oct 17, 2020
@Calinou Calinou changed the title Vulkan: Moving a light in a GIProbe is extremely slow if no mesh has a Bake Mode set to Dynamic or Baked Vulkan: Moving a light in a GIProbe is extremely slow if no mesh has a Bake Mode set to Baked Dec 8, 2021
@Calinou
Copy link
Member Author

Calinou commented Dec 8, 2021

I can still reproduce this on commit 2a9dd65. It occurs as soon as no mesh with its global illumination mode set to Baked is present within the VoxelGI's extents: test_voxelgi_dynamic_only.zip

Note that this issue is unrelated to #55359, as here, we're talking about sub-1 FPS performance.

@Calinou Calinou changed the title Vulkan: Moving a light in a GIProbe is extremely slow if no mesh has a Bake Mode set to Baked Vulkan: Moving a light in a GIProbe is extremely slow if no mesh has a Global Illumination Mode set to Baked Dec 8, 2021
@Calinou Calinou changed the title Vulkan: Moving a light in a GIProbe is extremely slow if no mesh has a Global Illumination Mode set to Baked Vulkan: Moving a light in a VoxelGI is extremely slow if no mesh has a Global Illumination Mode set to Baked Jan 21, 2022
@Zireael07
Copy link
Contributor

I seem to have triggered it on alpha 1. Before that, voxelgi performed fairly well even on my integrated Kaby Lake GPU.

@Calinou
Copy link
Member Author

Calinou commented Jan 28, 2022

I seem to have triggered it on alpha 1. Before that, voxelgi performed fairly well even on my integrated Kaby Lake GPU.

I didn't notice VoxelGI performance regressions on master lately, although my above comment still applies if you have no meshes with the Static bake mode within the VoxelGI's extents.

@Calinou
Copy link
Member Author

Calinou commented Aug 23, 2023

I can't reproduce this on 4.2.dev 6758a7f (Linux, GeForce RTX 4090 with NVIDIA 535.98), but I can reproduce it on 4.1.1. This was likely fixed at some point recently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants