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: GIProbe very slow on AMD RX480 and Linux #47794

Closed
pihdastudios opened this issue Apr 11, 2021 · 9 comments
Closed

Vulkan: GIProbe very slow on AMD RX480 and Linux #47794

pihdastudios opened this issue Apr 11, 2021 · 9 comments

Comments

@pihdastudios
Copy link
Contributor

Godot version:

43f89e7

OS/device including version:

Linux Mint 20.1
Kernel 5.8.0-48-generic #54~20.04.1-Ubuntu

AMDVLK 2021.Q2.1 and radv 20.2.6

AMD RX 480 8Gb
AMD Ryzen 7 3700X

Build Command
scons p=linuxbsd target=debug module_mono_enabled=no -j16 CXX=g++-10 CC=gcc-10

Issue description:

GIProbes on any mesh with or without light would create a performance issue.

Also selecting the mesh after setting it to disabled baking and baking GIProbe also creates a performance issue

Steps to reproduce:

  1. Create a scene
  2. Add mesh (Cube)
  3. Set to baked Dynamic
  4. Add GIProbe
  5. Bake

And

  1. Create a scene
  2. Add mesh (Cube)
  3. Add GIProbe
  4. Bake (Everything is still fine by now)
  5. Select Mesh

Minimal reproduction project:
giprobe-test.zip

@Calinou
Copy link
Member

Calinou commented Apr 11, 2021

See also #36121, which is pretty old and may not be relevant with the current state of GIProbe.

@pihdastudios Can you define "very slow"? Is the slowless persistent or does it occur only when moving a node?

@pihdastudios
Copy link
Contributor Author

pihdastudios commented Apr 11, 2021

@pihdastudios Can you define "very slow"? Is the slowless persistent or does it occur only when moving a node?

Near freezing and persistent, it slows down my entire desktop.
Godot still can receive inputs (clicking buttons, moving nodes) but you'd have to wait around 2 seconds.

It would dissapear if you cleared the GIProbe data

@Calinou Calinou added the bug label Apr 11, 2021
@Calinou Calinou added this to the 4.0 milestone Apr 11, 2021
@pihdastudios
Copy link
Contributor Author

This also happens on Windows 10 with AMD Adrenalin 21.3.2. So its probably a hardware thing.

@novemberist
Copy link

I can confirm this. I'm also on Linux and with an AMD GPU (RX 580). This issue has been present for me for at least a year now. I think this started around the time the DisplayServer changes/multiple windows support was introduced.

@Calinou
Copy link
Member

Calinou commented Jun 7, 2021

VoxelGI in master is currently broken in my experience (it often makes everything black), unless you combine it with SDFGI at the same time.

Edit: I bisected this and found that GIProbe broke on commit 1f96ba5.

Minimal reproduction projects for testing VoxelGI: giprobe_old.zip (old mesh format) and giprobe_old2.zip (new mesh format). The VoxelGI node intentionally doesn't extend all the way through so you can see the difference with and without GI.
Note: On latest master, you will have to re-bake the VoxelGI data because it won't be able to load the old GIProbeData from the new mesh format MRP.

@novemberist
Copy link

So, as of commit #49547 by @reduz the blackness is gone and VoxelGI seems to somewhat work again. However, this is only the case if you set "Global Illumination" for your MeshInstance to "baked". If you select "dynamic" here, once you bake the GIData, Godot slows down permanently (almost freezes). If I understand the current GI implementations correctly, the gi_mode "baked" should only be relevant for LightmapGI (and thus have no effect for VoxelGI) whereas "dynamic" is the correct one to enable if you want the Mesh to contribute to VoxelGI? I think something is still broken here (or it is really a driver issue)

@Calinou
Copy link
Member

Calinou commented Jun 14, 2021

If I understand the current GI implementations correctly, the gi_mode "baked" should only be relevant for LightmapGI (and thus have no effect for VoxelGI)

AFAIK, Baked and Dynamic are treated differently in VoxelGI, and both are meant to work with VoxelGI.

@William-Godwin
Copy link

However, this is only the case if you set "Global Illumination" for your MeshInstance to "baked". If you select "dynamic" here, once you bake the GIData, Godot slows down permanently (almost freezes).

It's still happening for me on Win and linux with GTX 1080 on Hugo's builds. =(

@Calinou
Copy link
Member

Calinou commented Nov 26, 2021

Closing in favor of #55359, which describes the issue at hand in more detail. The unexpectedly low performance only occurs with meshes in Dynamic bake mode, not the Baked bake mode.

@Calinou Calinou closed this as completed Nov 26, 2021
@Calinou Calinou removed this from the 4.0 milestone Nov 26, 2021
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