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] Hyrule Warrior Age of Calamity Crash #4575

Closed
dels07 opened this issue Mar 21, 2023 · 1 comment
Closed

[Bug] Hyrule Warrior Age of Calamity Crash #4575

dels07 opened this issue Mar 21, 2023 · 1 comment
Labels
bug Something isn't working os:macOS An issue or feature request exclusively relating to macOS

Comments

@dels07
Copy link

dels07 commented Mar 21, 2023

Description of the issue

I got crash when in Hyrule Outpost scenario, in second part while play as Link, attached log and save file

hw_aoc.zip

currently using Ryujinx build from master at 17620d18db8d4a67e4b917596c760107d26fadc5 and use default graphic settings

Reproduction steps

  • Play Hyrule Outpost main scenario
  • After fight with first boss, the game will switch to Link
  • It will randomly crash while fighting opponent

Log file

Ryujinx_1.1.1+1.1.0_2023-03-21_21-59-24.log

Relevant errors

00:30:33.198 |E| [mvk-error] VK_ERROR_DEVICE_LOST: MTLCommandBuffer "vkQueueSubmit CommandBuffer on Queue 0-0" execution failed (code 9): Invalid Resource (00000009:kIOGPUCommandBufferCallbackErrorInvalidResource)
00:30:33.225 |E| GUI.RenderThread Application : Unhandled exception caught: Ryujinx.Graphics.Vulkan.VulkanException: Unexpected API error "ErrorDeviceLost".
   at Ryujinx.Graphics.Vulkan.CommandBufferPool.Return(CommandBufferScoped cbs, ReadOnlySpan`1 waitSemaphores, ReadOnlySpan`1 waitDstStageMask, ReadOnlySpan`1 signalSemaphores) in /Users/deli/Documents/Playground/Ryujinx/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs:line 315
   at Ryujinx.Graphics.Vulkan.PipelineFull.FlushCommandsImpl() in /Users/deli/Documents/Playground/Ryujinx/Ryujinx.Graphics.Vulkan/PipelineFull.cs:line 219
   at Ryujinx.Graphics.Vulkan.SyncManager.Create(UInt64 id, Boolean strict) in /Users/deli/Documents/Playground/Ryujinx/Ryujinx.Graphics.Vulkan/SyncManager.cs:line 70
   at Ryujinx.Graphics.GAL.Multithreading.CommandHelper.<>c.<InitLookup>b__5_1[T](Span`1 memory, ThreadedRenderer threaded, IRenderer renderer) in /Users/deli/Documents/Playground/Ryujinx/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs:line 41
   at Ryujinx.Graphics.GAL.Multithreading.ThreadedRenderer.RenderLoop()
   at Ryujinx.Graphics.GAL.Multithreading.ThreadedRenderer.RunLoop(Action gpuLoop) in /Users/deli/Documents/Playground/Ryujinx/Ryujinx.Graphics.GAL/Multithreading/ThreadedRenderer.cs:line 115
   at Ryujinx.Ava.AppHost.RenderLoop() in /Users/deli/Documents/Playground/Ryujinx/Ryujinx.Ava/AppHost.cs:line 826
   at System.Threading.Thread.StartCallback()

OS

Ventura 13.2.1

Ryujinx version

1.1.1

Game version

1.3.0

CPU

Apple M1 Pro

GPU

Apple M1 Pro

RAM

16GB

List of applied mods

No response

Additional context?

No response

@dels07 dels07 added the bug Something isn't working label Mar 21, 2023
@riperiperi riperiperi added the os:macOS An issue or feature request exclusively relating to macOS label Mar 21, 2023
@AcK77
Copy link
Member

AcK77 commented May 2, 2023

What if you use the provided build on www.ryujinx.org ?

AaronO added a commit to AaronO/Ryujinx that referenced this issue May 4, 2023
Command buffer errors currently trigger an exception "DeviceLost" crashing the process.

Looking at [MKV's code](https://github.com/KhronosGroup/MoltenVK/blob/53a4eb26f2fbd7322eb087eb4af263fe466543b0/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm#L392-L408) we observe that:
- It hard fails if error is:
  ```
   MTLCommandBufferErrorBlacklisted || MTLCommandBufferErrorNotPermitted || MTLCommandBufferErrorDeviceRemoved
   ```
- Otherwise fails conditionally if `config.resumeLostDevice == false` (current default)

For Ryujinx's use-case it's more graceful to resume on those errors rather than crashing the app, the error isn't totally silenced since `mvk` still logs it

Fixes Ryujinx#4704, Ryujinx#4575
AcK77 pushed a commit that referenced this issue May 10, 2023
Command buffer errors currently trigger an exception "DeviceLost" crashing the process.

Looking at [MKV's code](https://github.com/KhronosGroup/MoltenVK/blob/53a4eb26f2fbd7322eb087eb4af263fe466543b0/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm#L392-L408) we observe that:
- It hard fails if error is:
  ```
   MTLCommandBufferErrorBlacklisted || MTLCommandBufferErrorNotPermitted || MTLCommandBufferErrorDeviceRemoved
   ```
- Otherwise fails conditionally if `config.resumeLostDevice == false` (current default)

For Ryujinx's use-case it's more graceful to resume on those errors rather than crashing the app, the error isn't totally silenced since `mvk` still logs it

Fixes #4704, #4575
@AcK77 AcK77 closed this as completed May 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working os:macOS An issue or feature request exclusively relating to macOS
Projects
None yet
Development

No branches or pull requests

3 participants