Skip to content

VideoBackends/Vulkan: Use Vulkan loader and MoltenVK from Vulkan SDK on macOS#14545

Open
OatmealDome wants to merge 5 commits into
dolphin-emu:masterfrom
OatmealDome:apple-vk-sdk
Open

VideoBackends/Vulkan: Use Vulkan loader and MoltenVK from Vulkan SDK on macOS#14545
OatmealDome wants to merge 5 commits into
dolphin-emu:masterfrom
OatmealDome:apple-vk-sdk

Conversation

@OatmealDome
Copy link
Copy Markdown
Member

@OatmealDome OatmealDome commented Apr 3, 2026

Follow-up to #14492.

This allows us to drop our custom MoltenVK and switch to one that is pre-built. I've installed SDK 1.4.341.1 on the build machine.

I've also added support for KosmicKrisp in this PR, but I'll probably make it off-by-default before merging to avoid confusing users. I just wanted to have the CI create a build with KosmicKrisp enabled.

@OatmealDome
Copy link
Copy Markdown
Member Author

OatmealDome commented Apr 3, 2026

Judging by FifoCI, it looks like the newer MoltenVK outputs renders that are more comparable to the other backends. Kirby Air Ride's shadows are not as dark, the crane shadow now renders in Lego Star Wars, and there is more depth of field(?) in Mario Kart Wii.

Edit: Dolphin was actually falling back to the Metal backend due to a lack of support for the Vulkan loader. Oops.

@OatmealDome
Copy link
Copy Markdown
Member Author

Now supports FifoCI.

Copy link
Copy Markdown
Contributor

@TellowKrinkle TellowKrinkle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes seem reasonable.

Just a heads up: when I tested on my M1 in macOS, in addition to MVK and KK, I was getting an entry for driver ID 26, which is HoneyKrisp (even though that should only be available on Linux). I think it's picking up an old copy of KK that I built and installed on my computer a while back. One slightly concerning thing is that the driver ID 26 ended up on the top of the list and selected by default. Should we be trying to ensure that we put our bundled drivers above random ones that might be found on the user's system?

}
else
{
driver = fmt::format("driver ID {}", fmt::underlying(properties_vk12.driverID));
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
driver = fmt::format("driver ID {}", fmt::underlying(properties_vk12.driverID));
driver = fmt::format("Driver ID {}", fmt::underlying(properties_vk12.driverID));

Looks kind of weird IMO as the only thing not captialized in the entire list, e.g.

Apple M1 (driver ID 26)
Apple M1 (MoltenVK)
Apple M1 (KosmicKrisp)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants