[Bug] [macOS] Whole system freezes if toggle VSync off #345

Open
opened 2024-12-03 20:02:58 +00:00 by ViRb3 · 2 comments
ViRb3 commented 2024-12-03 20:02:58 +00:00 (Migrated from github.com)

Description of the issue

This is a really weird one.

If I turn off VSync in any game, the monitor on which Ryjinx's window is located completely freezes. You can see the mouse move, but nothing can be clicked, and the game looks frozen too, despite the sound continuing to play. If you have a second monitor, that one works fine, so you can use it to force quit Ryujinx, in which case the first monitor goes back to normal. If you only have one monitor, the system is in a full deadlock, and after about a minute, macOS will restart itself, seemingly because it detects the issue.

Tested on ryujinx-mirror, this fork's stable (1.2.76) as well as the .NET 9 PR. Tested with multiple games.

Reproduction steps

Toggle VSync off

OS

macoS 15.1.1

Ryujinx version

1.2.76

Device

MacBook Pro 16" M3 Max

### Description of the issue This is a really weird one. If I turn off VSync in any game, the monitor on which Ryjinx's window is located completely freezes. You can see the mouse move, but nothing can be clicked, and the game looks frozen too, despite the sound continuing to play. If you have a second monitor, that one works fine, so you can use it to force quit Ryujinx, in which case the first monitor goes back to normal. If you only have one monitor, the system is in a full deadlock, and after about a minute, macOS will restart itself, seemingly because it detects the issue. Tested on ryujinx-mirror, this fork's stable (1.2.76) as well as the .NET 9 PR. Tested with multiple games. ### Reproduction steps Toggle VSync off ### OS macoS 15.1.1 ### Ryujinx version 1.2.76 ### Device MacBook Pro 16" M3 Max
GabCoolDude commented 2024-12-17 11:04:58 +00:00 (Migrated from github.com)

Please post a log.

Please post a log.
tuhoanganh commented 2025-02-18 06:14:58 +00:00 (Migrated from github.com)

Hi @GabCoolDude,
I'm experiencing the same issue as @ViRb3 on my MacBook M3 Pro.
The log below was captured just before Ryuujinx froze, and no additional log entries appeared afterward.

...
00:00:03.710 |I| AudioProcessor.Worker Audio EnsureAudioStreamSetup: New audio stream setup with a target sample count of 240
00:00:03.821 |E| .NET TP Worker [mvk-info] Created 3 swapchain images with initial size (1512, 859) and contents scale 1.0 for screen DELL U2422H.
00:00:06.570 |I| Application VsyncStatus_PointerReleased: VSync toggled to: False
00:00:06.589 |E| .NET TP Worker [mvk-info] Created 3 swapchain images with initial size (1512, 859) and contents scale 1.0 for screen DELL U2422H.
00:00:08.337 |S| HLE.OsThread.47 ServiceAm LockExit: Stubbed.
00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.599 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.599 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.599 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.599 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed!
00:00:10.623 |S| HLE.OsThread.3 ServiceHid StartSixAxisSensor: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075}
00:00:10.692 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True}
00:00:10.715 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True}
00:00:10.730 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True}
00:00:10.822 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True}
00:00:10.853 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True}
00:00:10.870 |E| .NET TP Worker 2025-02-18 12:57:24.149 Ryujinx[79000:3096137] [CAMetalLayerDrawable texture] should not be called after already presenting this drawable. Get a nextDrawable instead.
00:00:10.871 |E| .NET TP Worker 2025-02-18 12:57:24.151 Ryujinx[79000:3096316] Each CAMetalLayerDrawable can only be presented once!
00:00:10.886 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True}

I've also uploaded the log file for additional information.
Ryujinx_1.1.1402_2025-02-18_12-56-56.log

Hi @GabCoolDude, I'm experiencing the same issue as @ViRb3 on my MacBook M3 Pro. The log below was captured just before Ryuujinx froze, and no additional log entries appeared afterward. ```c# ... 00:00:03.710 |I| AudioProcessor.Worker Audio EnsureAudioStreamSetup: New audio stream setup with a target sample count of 240 00:00:03.821 |E| .NET TP Worker [mvk-info] Created 3 swapchain images with initial size (1512, 859) and contents scale 1.0 for screen DELL U2422H. 00:00:06.570 |I| Application VsyncStatus_PointerReleased: VSync toggled to: False 00:00:06.589 |E| .NET TP Worker [mvk-info] Created 3 swapchain images with initial size (1512, 859) and contents scale 1.0 for screen DELL U2422H. 00:00:08.337 |S| HLE.OsThread.47 ServiceAm LockExit: Stubbed. 00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.598 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.599 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.599 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.599 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.599 |E| HLE.OsThread.11 AudioRenderer Update: Unmap of memory pool (address: 0x17063c7000, size 0xa000) failed! 00:00:10.623 |S| HLE.OsThread.3 ServiceHid StartSixAxisSensor: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075} 00:00:10.692 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True} 00:00:10.715 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True} 00:00:10.730 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True} 00:00:10.822 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True} 00:00:10.853 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True} 00:00:10.870 |E| .NET TP Worker 2025-02-18 12:57:24.149 Ryujinx[79000:3096137] [CAMetalLayerDrawable texture] should not be called after already presenting this drawable. Get a nextDrawable instead. 00:00:10.871 |E| .NET TP Worker 2025-02-18 12:57:24.151 Ryujinx[79000:3096316] Each CAMetalLayerDrawable can only be presented once! 00:00:10.886 |S| HLE.OsThread.3 ServiceHid IsSixAxisSensorAtRest: Stubbed. {appletResourceUserId: 1 ; sixAxisSensorHandle: 131075 ; isAtRest: True} ``` I've also uploaded the log file for additional information. [Ryujinx_1.1.1402_2025-02-18_12-56-56.log](https://github.com/user-attachments/files/18839796/Ryujinx_1.1.1402_2025-02-18_12-56-56.log)
Sign in to join this conversation.
No Milestone
No project
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MeloNX/Ryujinx-ryubing#345
No description provided.