NoGraphicsAPI Reimagines Vulkan Without Descriptor Sets or Pipeline Layouts
NoGraphicsAPI is an experimental Vulkan 1.4 backend replacing descriptor sets and pipeline layouts with GPU pointers and app-owned heaps.
NoGraphicsAPI is an experimental, open Vulkan 1.4 backend implementing Sebastian Aaltonen's "No Graphics API" concept. Much of the conventional graphics API surface disappears: buffer objects, descriptor sets, and pipeline layouts are replaced by 64-bit GPU pointers, application-owned texture/sampler descriptor heaps, and a single shared root structure pushed per draw or dispatch via vkCmdPushDataEXT.
The design relies on newer Vulkan extensions — VK_EXT_descriptor_heap, VK_KHR_device_address_commands, VK_KHR_shader_untyped_pointers, VK_KHR_unified_image_layouts, and VK_EXT_mesh_shader — to move descriptor handling, binding, and synchronization closer to how modern GPUs actually operate. Barriers describe hazards rather than per-resource transition lists, and ordinary textures stay in a single unified layout.
Three example applications (triangle, cube, and a deferred renderer combining compute and mesh-shader passes) exercise the Vulkan backend end to end. A Metal 4 mapping is documented but not yet implemented. For engineers tracking bindless and address-based rendering models, the project offers a concrete, buildable reference for how far a graphics API can be stripped down while keeping shader and CPU code in sync through a shared C++/Slang type layer.
This synthesis was produced from its source by AI; there is no human editor or manual review step. How we work