Optimise how 3D runs on Mac

Godot Version

4.5 Stable Mac OS

Question

I’m following guide for Godot RPG from GameDev.tv - originally is for 4.2.2 but I found a few interesting hurdles but also not many solutions for now .

First is FPS performance , I have turned off all shadows , bring shadow filter to fastest , set

Engine.max_fps = 60

but made nearly no difference as still do about 50 fps at the most .

For example in TPS Demo it had no problem to hit 60fps even in scene with 1m primitives , so essentially this will be some other problem related to code .

What is even more interesting is I tried to run it on my potato Window Laptop ( i7-7th 7500u - HD620 , 8GB Ram ( 4GB sharable with GPU) ) , it run 4-5fps through 4.2.2 ,4.4.1, 4.5 version with also showing this info in viewport "strong textView Frame Time " ticked .

On my Mac ( M2 Max - 32GB ) it show in 4.2.2 in around “50-60 FPS” , but 4.4.1 and 4.5 shows

Project is located - GameDev.tv / Godot RPG / Godot RPG · GitLab , if anyone with different hardware can test it and let me know how to make it run smoother as I believe its not very detail loaded game , but makes GPU works so hard .

So I have tested more TPS Demo with Settings - best FPS stability of course came on lowest resolution , with stable 60 FPS

which is -

Settings.config_file.set_value("video", "resolution_scale", 1.0 / 3.0)

which is essentially -


1133x637 px

So I found some tips but try figure all out first was Godot optimise tips to measure which component cost , which takes me some time to figure out .

It be great to got idea if I can read time by assets in a scenes ,by signal and by class_name .

Another is from Apple for their RealityKit which is used for 3D spaces and their recommendations

This brings me to question how to only partially for viewer perspective to save draw count.

Link to full guide from wwdc 24 Optimize your 3D assets for spatial computing - WWDC24 - Videos - Apple Developer

So here is solution works for me in optimisation of FPS , it works 60 fps stable on window setting , with Mac its interesting as its actually half but apps detects window size as twice value -

func _process(delta: float) -> void:
	var viewport := get_viewport()
	viewport.scaling_3d_mode = Viewport.SCALING_3D_MODE_BILINEAR
	viewport.scaling_3d_scale = 0.8
1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.