godot icon indicating copy to clipboard operation
godot copied to clipboard

In any project using Godot 4.3, disabling Vsync will cause the entire macOS system to freeze and crash

Open Xwdit opened this issue 1 year ago • 7 comments

Tested versions

  • 4.3.beta2
  • 4.3.beta1
  • 4.3.dev

System information

Vulkan Forward+, MacOS 14.4.1 (23E224), Apple M3 Pro, Macbook Pro 2023 later.

Issue description

I've encountered a critical issue with Godot 4.3 on macOS where disabling Vsync in any project results in a complete system freeze and subsequent crash. This problem consistently occurs regardless of the project's complexity or other settings. The system becomes entirely unresponsive, requiring a hard reboot. This behavior poses a significant risk for data loss and interrupts the workflow.

Steps to reproduce

Steps to Reproduce:

  1. Open any project in Godot 4.3 on a macOS system.
  2. Navigate to the project settings.
  3. Disable the Vsync option.
  4. Observe that shortly after disabling Vsync and run the project, the macOS system freezes and crashes.

Minimal reproduction project (MRP)

vsync-crash-macos.zip

Xwdit avatar Jun 22 '24 09:06 Xwdit

Can't reproducible this issue on MacbookPro14 MacOS14.5 M3 Max

snougo avatar Jun 22 '24 17:06 snougo

Can't reproduce it on 4.3beta2 and MacBookPro14 MacOS14.5 M1 Pro 16GB either

Meldanor avatar Jun 25 '24 10:06 Meldanor

Can't reproduce with Godot v4.3.beta1 - macOS 13.6.6 - Vulkan (Forward+) - integrated Apple M2 - Apple M2 (8 Threads)

clayjohn avatar Jun 27 '24 17:06 clayjohn

Can't reproduce with Godot v4.3.beta2 - macOS 14.5.0 - Vulkan (Forward+) - integrated Apple M2 - Apple M2 (8 Threads)

@Xwdit Can you try again with a recent version, running this command on the terminal at the same time?

# Will print the current thermal status of the Apple Silicon
# https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/RespondToThermalStateChanges.html
sudo powermetrics --samplers thermal --sample-rate 1000 | grep "Current pressure level:"

We're thinking that maybe it crashes because your laptop is running too hot. On my machine, it stays "Nominal".

adamscott avatar Jun 27 '24 19:06 adamscott

I recorded a video to demonstrate this issue.

https://github.com/godotengine/godot/assets/44023235/a9f1b1e6-00ad-48b4-be50-be4f7aa69059

Xwdit avatar Jun 28 '24 17:06 Xwdit

Can't reproduce with Godot v4.3.beta2 - macOS 14.5.0 - Vulkan (Forward+) - integrated Apple M2 - Apple M2 (8 Threads)

@Xwdit Can you try again with a recent version, running this command on the terminal at the same time?


# Will print the current thermal status of the Apple Silicon

# https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/RespondToThermalStateChanges.html

sudo powermetrics --samplers thermal --sample-rate 1000 | grep "Current pressure level:"

We're thinking that maybe it crashes because your laptop is running too hot. On my machine, it stays "Nominal".

I recorded a video to demonstrate this issue.

It will 100% crash in an empty project after disabling vsync, but there are no issues when vsync is enabled; also, this issue cannot be reproduced in version 4.2.

https://github.com/godotengine/godot/assets/44023235/a9f1b1e6-00ad-48b4-be50-be4f7aa69059

Xwdit avatar Jun 28 '24 18:06 Xwdit

Can you check system temperature while Godot is running with V-Sync off? I suspect an overheating issue, especially since M3 CPUs are more prone to overheating than previous models.

I'm not sure if macOS has built-in utilities for this, but there are surely third-party utilities that can report this information (e.g. in the task bar).

Calinou avatar Jun 28 '24 18:06 Calinou

I'm not sure if macOS has built-in utilities for this, but there are surely third-party utilities that can report this information (e.g. in the task bar).

@Calinou, I shared a command that does just that a few comments before.

@Xwdit Can you try again with a recent version, running this command on the terminal at the same time?

# Will print the current thermal status of the Apple Silicon
# https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/RespondToThermalStateChanges.html
sudo powermetrics --samplers thermal --sample-rate 1000 | grep "Current pressure level:"

We're thinking that maybe it crashes because your laptop is running too hot. On my machine, it stays "Nominal".

Can't reproduce on my new MacBook Pro M3 Max. The temperature stays nominal and nothing dramatic happens. It would really help if you can show the current temperature of your system. Does it feel hot to touch?

adamscott avatar Jun 29 '24 18:06 adamscott

This is very similar to #91042

brandonrbridges avatar Sep 11 '24 08:09 brandonrbridges

Thanks for the report! Consolidating in https://github.com/godotengine/godot/issues/91042.

Calinou avatar Nov 07 '24 15:11 Calinou

Running standard release 4.3 So far I have gotten a crash and a system wide slow down on two occasions while following the starter tutorials, this is with v-sync on. I was not able to finish it due to bugs. Running M3 Max with 36GB and 1TB SSD, connected to external 4k 50" samsung TV Q90. There are moments when it runs perfectly fine, then just at random times its freezes. Not sure if this is normal behavior or not but everytime I went to run the game, it would run whatever scene I was in instead of the actual main game scene, I had to keep going into 2D view, select my main scene, then run it. Otherwise it would just run a blank screen if I didn't do that. I stopped using it after this point, not very productive. I was running Bottom in the terminal for monitoring, nothing unusual while using it, temps were in the normal high 40's low 50's give or take, memory usage maybe in the 20Gb range, but not once did my fans kick on even after a few hrs of constant use. These bugs did start happening as my scene became more complex, was fine at the start.

SnipeHub avatar Nov 10 '24 00:11 SnipeHub