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

[Bug]: weird constant high gpu usage anywhere in the editor #28

Closed
morganholly opened this issue Nov 13, 2023 · 8 comments
Closed

[Bug]: weird constant high gpu usage anywhere in the editor #28

morganholly opened this issue Nov 13, 2023 · 8 comments
Labels
bug Something isn't working

Comments

@morganholly
Copy link

Godot version

4.1.1 no c#

DebugDraw3D version

1.2.0

On which operating systems the error occurs

macOS

Using which renderers the error occurs

Vulkan

Issue description

so i've had a weird issue where in the editor (not an issue at all in game), there's very high gpu usage everywhere in the editor, on the previous project file i had it happen in empty 2d scenes, this time i noticed it in the script editor. but not in the game itself, the game taking focus away from the editor would reduce the gpu usage, at least when in the menu.

to test, i installed another plugin, tho it's gdscript not gdextension so maybe it's gdextension specific, but i saw no or nearly no change in gpu usage. i previously thought it was yet another plugin, which did have a bug that caused high gpu usage, and i created a fresh project to redo stuff after testing an empty project with that other plugin and not seeing the same issue, and after copying some files from before i remember it starting to a new project file, including with debug draw, and having the same issue.

i opened a nearly empty project file to test, and after installing, without even leaving the addons page, i was able to see the increase in gpu usage, and after deleting it with the integrated file browser, it went back down to baseline.

Steps to reproduce

install addon
look at gpu usage

Minimal reproduction project

N/A

@morganholly morganholly added the bug Something isn't working label Nov 13, 2023
@DmitriySalnikov
Copy link
Owner

Confirmed. As far as I understand, the problem at the moment is that my code updates 3d objects constantly.

Without DD3D:

Godot_v4.1.1-stable_win64_uM83IdD6jn.mp4

With DD3D:

Godot_v4.1.1-stable_win64_rj4T7n6TPx.mp4

You can confirm this by simply turning on the spinner in the editor settings:
image

I also have an increased load on the GPU up to 30-40% in an almost empty viewport. But this percentage directly depends on the GPU frequency and VRAM frequency, which are at low values. Therefore, with such a "load", the fans of the video card do not even turn on and I did not notice that the editor window is constantly updated 😅.

I will try to remove the load on the GPU in empty scenes, but in scenes where @tool and draw_* will be used, updates will still be every frame.

@morganholly
Copy link
Author

i'm just confused why it would happen in a project with no 3d scenes, in the assetlib tab, immediately after downloading

@DmitriySalnikov
Copy link
Owner

immediately after downloading

Actually DD3D really connects immediately after loading, but GDScript cannot correctly update the list of singletons, which is why it is impossible to use DD3D in the usual way without restarting.

In the editor, you can create such a script and check whether there is an addon sington or not (Ctrl + Shift + X, or File - Run):

@tool
extends EditorScript

func _run():
	print(Engine.has_singleton(&"DebugDraw3D"))
	Engine.get_singleton(&"DebugDraw3D").draw_aabb(AABB(Vector3.ZERO, Vector3.ONE), Color(0,0,0,0), 10)

After installing the addon and executing this script, a cube will appear in the 3D editor.

in a project with no 3d scenes

3D editor is also a 3D scene and a 3D world in which my addon exists and is updated every frame. And this 3D world always exists in the editor.

@morganholly
Copy link
Author

is there a way to turn it off in the editor? i don't have any tool scripts

@DmitriySalnikov
Copy link
Owner

is there a way to turn it off in the editor?

Not yet. But I will add a property for the default debug state to the project settings.

As a workaround, you can use this script:
disable_dd3d.gd

@tool
extends Node

func _ready():
	if Engine.is_editor_hint():
		DebugDrawManager.debug_enabled = false

Then add it to Project Settings - Autoload.

@DmitriySalnikov
Copy link
Owner

Can you test the fix using binaries from here?

It also contains a new setting debug_draw_3d/settings/initial_debug_state

@morganholly
Copy link
Author

i will try it out now

@morganholly
Copy link
Author

yea seems to have fixed it. i don't see it in the plugins list but it works when the game is launched and there's no constant gpu load in the editor

@skooter500 skooter500 mentioned this issue Mar 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants