Thanks to visit codestin.com
Credit goes to github.com

Skip to content

DesktopVK crashes with swapchain null issue on Apple M3 #9076

@mitchwilliamson

Description

@mitchwilliamson

Prerequisites

  • I have verified this issue is present in the develop branch
  • I have searched open and closed issues to ensure it has not already been reported.

MonoGame Version

MonoGame develop

Which MonoGame platform are you using?

N/A

Operating System

Mac

Description

I am in the process of porting my application from DesktopDX to DesktopVK to support cross-platform builds. I'm running off the latest version of develop and can build MonoGame without issue. My application and its MonoGame content builds successfully, however on runtime I receive an almost immediate crash.

Vulkan instance version: 1.4.323
Selected GPU: Apple M3
Supported Vulkan API version: 1.0.323
VK_EXT_custom_border_color is not supported by this driver!
Swapchain was null before acquiring a frame. This shouldn't happen.

After searching this repo I have a feeling it may be related to #9000, but I'm not familiar enough with the underlying logic to be certain. I've also tried the current WIP fix PR #9044 with no improvement - it still crashes at the same point.

Steps to Reproduce

Debugging the application shows that it crashes when calling _graphics.ApplyChanges().

internal class DemoGame : Game
{
	private readonly GraphicsDeviceManager _graphics;

	private DemoGame()
	{
		_graphics = new(this)
		{
			// GraphicsProfile = GraphicsProfile.HiDef,
			// PreferredBackBufferWidth = 1280,
			// PreferredBackBufferHeight = 720,
			// SynchronizeWithVerticalRetrace = false
		};
		_graphics.ApplyChanges(); // <---- crashes here
	}
}

After commenting out ApplyChanges the application still crashes before the Game.Draw method is called. Update: After further debugging the crash occurs in the call to MGG.GraphicsDevice_BeginFrame

Device is a 2024 MacBook Air (Apple M3) running macOS 15.7.2.

Minimal Example Repo

No response

Expected Behavior

It does not crash.

Resulting Behavior

It does crash.

Files

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions