-
Notifications
You must be signed in to change notification settings - Fork 605
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
WIP: Metal backend #1287
base: main
Are you sure you want to change the base?
WIP: Metal backend #1287
Conversation
Very impressive work so far! I did not expect anyone to take on adding a whole new renderer. From past experience when working on the OpenGL and Vulkan renderer I learned that the hardest problems come up at the end in regards to performance optimizations, weird API limitations which require workarounds or specifically for Metal: lack of geometry shaders. If the Metal backend gets past those problems into a fully functional state that is on par with the Vulkan renderer then we can talk about getting this merged and discuss any long term support plans. A proper full code review would also be necessary of course. Looking forward to seeing this progress! |
this is some good work, thank you for it Samo |
I don't think I use any Metal 3 functionality. Regarding geometry shaders, they could be emulated with compute shaders, though I would much rather use mesh shaders and give up on Metal 2 compatibility. |
thanks for the hard work. Unfortunately, Mario Kart doesn't start the second time |
Hi! This could probably (temporarily) be solved by clearing the shader cache. Also, make sure you are on the latest testing release. |
For anyone wanting to report game status/issues, please use this guide: https://github.com/SamoZ256/cemu-metal-game-compatibility. |
This reverts commit d9f857b.
Accurate special state 5
This PR implements a Metal backend for macOS. It should bring better performance compared to Vulkan, as well as fix some issues that wouldn't be possible with Vulkan due to MoltenVK limitations. I haven't tested many games, but those that I tried worked pretty well.
TODO:
Screenshots:
New Super Mario Bros U
Captain Toad Treasure Tracker
Super Mario 3D World
Mario Kart 8
The Legend of Zelda: Breath of the Wild
Super Mario Maker