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

WIP: Metal backend #1287

Open
wants to merge 245 commits into
base: main
Choose a base branch
from
Open

WIP: Metal backend #1287

wants to merge 245 commits into from

Conversation

SamoZ256
Copy link

@SamoZ256 SamoZ256 commented Aug 12, 2024

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:

  • sRGB
  • fix low resolution
  • proper present
  • fix black textures in sm3dw
  • buffer copies in a vertex shader
  • pipeline cache with binary archives
  • geometry shaders
  • GamePad screen in a separate window
  • fix texture readback
  • output shader
  • ImGui
  • Intel Macs support
  • proper surface copy
  • extend the shader hash
  • triangle fans
  • 1D shadow sampler emulation
  • instancing with mesh shaders
  • occlusion queries
  • async shader compilation
  • load pipeline binaries at startup
  • async pipeline compilation
  • accurate occlusion queries
  • binary archives
  • fix CI

Screenshots:

New Super Mario Bros U nsmbu_missing_geometry_fixed
Captain Toad Treasure Tracker captain_toad_lvl2_working
Super Mario 3D World sm3dw_water_fixed
Mario Kart 8 mk8_black_artifacts_fixed
The Legend of Zelda: Breath of the Wild botw
Super Mario Maker smm_missing_sprites_fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants