Analysis updated 2026-05-18
Build a cross-platform indie game renderer targeting D3D12 and Metal.
Compile HLSL shaders into AGFX's own bytecode format.
Use the ez helper library to migrate from D3D11 or OpenGL.
Add an ImGui debug interface to a game built on AGFX.
| amelieheinrich/agfx | featurenab/air-sensor | ip-arch/neslab | |
|---|---|---|---|
| Stars | 58 | 58 | 59 |
| Language | C++ | C++ | C++ |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 4/5 | 3/5 | 2/5 |
| Audience | developer | general | general |
Figures from each repo's GitHub metadata at analysis time.
Needs Apple Silicon plus macOS 26+ on Mac, or a bindless-capable GPU on Windows, and the xmake build tool.
AGFX is a small graphics library written in C++ that wraps around D3D12 on Windows and Metal 4 on Mac, giving indie game developers one simpler interface for talking to the graphics card instead of writing separate low-level code for each platform. It is kept under ten thousand lines of code and is built around a bindless design, meaning it assumes a fairly modern GPU that supports newer, more flexible ways of accessing textures and buffers. The library follows a C-style API similar in spirit to Vulkan or WebGPU, which the author chose specifically because a plain C interface is easier for other programming languages to create bindings for. Alongside the core C library, AGFX also ships an optional C++17 header with automatic resource cleanup, and a separate helper library aimed at developers coming from older graphics APIs like D3D11 or OpenGL who want an easier path to switching over. The repository includes several supporting pieces beyond the core library itself: a full demo application built with SDL3 that shows off features like physically based rendering, shadow maps, ambient occlusion, HDR, and raytraced reflections, a simpler demo for the easier helper library, an ImGui integration for building debug interfaces, a shader compiler that turns HLSL shader code into AGFX's own format, a command line tool for that compiler, and an extensive automated test suite covering the graphics interface. Some features are explicitly not yet supported, including a Vulkan backend, sparse resources, resource aliasing, and GPU heaps, though the author is open to community contributions for these. The author is also upfront that AI tools, specifically Claude Code, were used heavily while building this project: the lower-level backend code was mostly written by hand, while an AI model wrote most of the higher-level convenience code such as the easier helper library and demos. To build it, Mac users need Apple Silicon and a recent macOS version, while Windows users need any GPU supporting bindless rendering, and the project builds through the xmake build system. The library is released under the MIT license, so it can be used and modified freely.
A small C++ graphics library wrapping D3D12 and Metal 4, built to help indie developers ship games across platforms.
Mainly C++. The stack also includes C++, D3D12, Metal.
MIT license: free to use and modify.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.