About this project

Elemental is a low-level library designed for modern GPU programming, offering a unified C API that abstracts the boilerplate of Direct3D 12, Vulkan, and Metal. Rather than simplifying GPU concepts, it focuses on simplifying access to them, keeping resources, memory, queues, and pipelines visible to the developer. Key capabilities include: - Cross-platform application lifetime and window management - Input handling for keyboard, mouse, gamepad, and touch - Graphics and compute command queues, command lists, and swap chains - GPU heaps, resources, and bindless resource access - Synchronization and resource barriers - Support for graphics/compute pipelines, render passes, compute shaders, mesh shaders, and ray tracing - HLSL shader compilation tools It is intended for the development of custom renderers, game engines, GPU-driven rendering experiments, simulations, and general-purpose compute projects. The library supports Windows (D3D12, Vulkan), Linux (Vulkan/Wayland), macOS (Metal), and iOS (Metal).