material-maker icon indicating copy to clipboard operation
material-maker copied to clipboard

Performance Problems with 1.4

Open ege-adam opened this issue 3 months ago • 8 comments

Material Maker version: 1.4

OS/device including version: Fedora 42 Nvidia 3090 64GB Ram

Issue description: Performance is significtanly lower than 1.3

Steps to reproduce: Just launch the program. As in the video fps is low and program is slower overall. Both default settings.

Left is MM 1.4, right is MM 1.3. 1.3 is able to achieve 144 fps with no problem, while 1.4 even struggles to surpass 20 fps.

https://github.com/user-attachments/assets/75bc76fe-4e50-425a-a2bf-251f23314ffa

Godot Engine v4.4.1.stable.custom_build - https://godotengine.org
Vulkan 1.4.312 - Forward+ - Using Device #1: NVIDIA - NVIDIA GeForce RTX 3090

Cannot open user://export_targets
Loading...
Successfully read library /home/egeadam/Applications/MaterialMaker/material_maker_1_4_linux/library/base.json
Failed to open user://library/user.json
Successfully read library /home/egeadam/Applications/MaterialMaker/material_maker_1_4_linux/library/base_brushes.json
Failed to open user://library/user_brushes.json
created thumbnail
(64.0, 64.0)
created thumbnail
(64.0, 64.0)
created thumbnail
(64.0, 64.0)
THEME UPDATE
Libraries updated (NodeLibraryManager)
Libraries updated (BrushLibraryManager)
Setting hdr /home/egeadam/Applications/MaterialMaker/material_maker_1_4_linux/environments/hdris/epping_forest_01_1k.hdr
WARNING: Ignoring unsupported header information in HDR: GAMMA=1.
     at: load_image (modules/hdr/image_loader_hdr.cpp:47)
WARNING: Ignoring unsupported header information in HDR: PRIMARIES=0 0 0 0 0 0 0 0.
     at: load_image (modules/hdr/image_loader_hdr.cpp:47)

ege-adam avatar Oct 05 '25 16:10 ege-adam

Can you reproduce this when starting Material Maker with the --display-driver wayland command line argument (assuming you use a Wayland session)?

Calinou avatar Oct 06 '25 22:10 Calinou

Image

Yes I'm on wayland.

Unknown display driver 'wayland', aborting.
Valid options are 'x11' and 'headless'.

ege-adam avatar Oct 08 '25 21:10 ege-adam

Strange, the Godot binaries I have compiled locally all have Wayland drivers available. It's listed even if I'm currently on a X11 session (but it'll fail to start in this case). The same goes for 4.4.1.stable official binaries.

@RodZill4 Did you install Wayland development libraries on the machine where you compiled Material Maker's Linux custom export templates? You can find the updated list of dependencies at https://docs.godotengine.org/en/stable/engine_details/development/compiling/compiling_for_linuxbsd.html.

Calinou avatar Oct 08 '25 22:10 Calinou

I've compiled it myself. I didn't change any setting; I just pressed export with Godot 4.4. I got 72 fps, much higher than the build I've downloaded from GitHub releases. Then I tried "--display-driver wayland". I got 144 fps without a problem.

ege-adam avatar Oct 08 '25 22:10 ege-adam

@RodZill4 I would also check if you're using the same optimization flags as official releases for the custom export templates (optimize=speed lto=full). Note that you need 16 GB of RAM for full LTO to work; if you get OOM errors during linking, try lto=thin instead.

For Windows binaries, using MinGW is preferred over MSVC as it provides better runtime performance, especially for the GDScript VM.

Calinou avatar Oct 09 '25 20:10 Calinou

Ouch. Since next Material Maker will be based on 4.5, I'll be careful with this.

RodZill4 avatar Oct 13 '25 06:10 RodZill4

@RodZill4 I would also check if you're using the same optimization flags as official releases for the custom export templates (optimize=speed lto=full). Note that you need 16 GB of RAM for full LTO to work; if you get OOM errors during linking, try lto=thin instead.

For Windows binaries, using MinGW is preferred over MSVC as it provides better runtime performance, especially for the GDScript VM.

Hmm what's the best way to compile for Linux? I used Godot's buildroot stuff last time, but latest buildroot seems to be 2 years old.

RodZill4 avatar Oct 13 '25 09:10 RodZill4

Hmm what's the best way to compile for Linux? I used Godot's buildroot stuff last time, but latest buildroot seems to be 2 years old.

docker run -it ubuntu:22.04 is what I use personally when I make redistributable Linux builds.

Calinou avatar Oct 14 '25 21:10 Calinou