Question about weird Performance on Windows/AMD

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Fjcxv21

Already asked this on Reddit with no answers, so I thought I try here.

I was playing around making a 3d Game and decided to test the Performance by checking the FPS with

func _process(delta):
    set_text(str(Engine.get_frames_per_second()))

attached to Label. The structure was MainScene/Control/Label. I got arround 3000-4000 Fps since it’s just simple shapes without textures. I then decided to move all of this into my Player Scene, which the MainScene gets an instance from. The FPS fell to about 400 FPS.

However, if I add a Control/Label in my MainScene again, even if there is no Script attached to them and it does absolutely nothing, I still get 4000 FPS again. How come I lose 9/10th of my performance when I move the script to another Scene and why does it increase again if I have an empty Label in my MainScene? Any ideas that could explain this?

I should also add that my GPU is at 70 percent doing 4000 FPS and at 30 percent doing 400 FPS.

Furthermore I noticed that this didn’t happen on my Linux installation, so I guess it may be an issue related to the Windows OpenGl drivers for AMD, as opposed to the Mesa drivers on Linux.

Unfortunately, AMD’s Windows OpenGL drivers exhibit consistently worse performance compared to NVIDIA or Intel. This isn’t an issue with Vulkan, so this should be solved in Godot 4.0.

Calinou | 2020-03-24 15:03