What abstractions exists that sit on top of Vulkan and Metal?

This page summarizes the projects mentioned and recommended in the original post on /r/gamedev

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • LearnOpenGL

    Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com

  • To get up to speed on modern GL, check out https://learnopengl.com/, it's the universally recommended learning source for a beginner. Once you're comfortable with 4.x and have your game working, you may want to check out "AZDO" (approaching zero driver overhead) techniques described in this GDC talk. This is basically a technique for offloading as much of the graphics work to the GPU as possible, and can get you enormous performance speedups. This is roughly the paradigm that Vulkan uses to achieve its high performance, but GL doesn't prevent you from doing it either.

  • wgpu-native

    Native WebGPU implementation based on wgpu-core

  • Personally I use wgpu-native. It can sit on top of Vulkan and Metal. It gets rid of crappy parts from OpenGL such as global state, binding objects. It also implicitly handles tough parts of Vulkan such as synchronization or memory management. Also, this implementation is in Rust, but it exposes a C header, so it's very easy to integrate it into other languages (I use it from D with no issues).

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • wgpu

    Cross-platform, safe, pure-rust graphics api.

  • If you're ok with using rust you can use wgpu which is the higher level wrapper for wgpu-native. It removes some of the boiler plate.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts