For a cross-platform graphics abstraction library, the first results are diligentgraphics/diligentengine, google/filament and bkaradzic/bgfx. gfx-rs/gfx and floooh/sokol round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “graphics rendering abstractions”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
DiligentEngine is a cross-platform graphics abstraction layer and physically-based rendering engine. It provides a unified interface for executing 3D graphics commands across multiple low-level rendering backends from a single codebase, including a dedicated system for importing 3D assets via the GLTF 2.0 format. The engine features an HLSL shader cross-compiler that allows a single set of shaders to run across different graphics APIs and operating systems. It supports advanced rendering capabilities such as ray-tracing, mesh shaders, variable rate shading, and bindless resources. The framew
DiligentEngine is a cross-platform graphics abstraction layer and rendering engine that directly unifies Vulkan, DirectX 12, Metal, and OpenGL under a single API, with built-in HLSL cross-compilation, GPU resource management, multi-threaded command recording, PBR support, and GLTF 2.0 asset loading, making it a comprehensive match for your search.
Filament is a real-time physically based rendering engine designed for high-fidelity 3D graphics. It functions as a cross-platform graphics library that provides a unified interface for rendering complex models and materials across desktop, mobile, and web environments. The engine distinguishes itself through a data-oriented architecture that optimizes memory usage and processing speed, alongside a shader-variant system that generates specialized code for specific material and lighting configurations. By abstracting diverse hardware graphics backends, it ensures consistent visual performance
Filament is a cross-platform graphics library that abstracts Vulkan, Metal, and OpenGL backends with a high-level API for real-time PBR rendering, matching your need for a rendering abstraction layer, though it does not include a built-in immediate mode GUI integration among its features.
bgfx is a cross-platform, graphics rendering abstraction layer designed for high-performance applications. It provides a unified interface that maps high-level rendering commands to native graphics APIs, allowing developers to maintain a single codebase that executes consistently across diverse operating systems and hardware architectures. The library distinguishes itself through a multi-threaded command submission model that decouples rendering logic from the main application thread, effectively minimizing CPU bottlenecks. It utilizes a backend-agnostic command buffer and a deferred resource
bgfx is exactly the cross-platform graphics abstraction layer you're looking for — it unifies Vulkan, DirectX 12, Metal, and other backends under a single API with multi-threaded command submission, shader compilation, and resource management, covering the core need for a higher-level abstraction.
gfx is a hardware-agnostic graphics API abstraction that translates a unified set of graphics and compute commands into native instructions for multiple GPU drivers. It provides a common interface for cross-platform rendering and general-purpose GPU compute programming. The project features an intermediate-representation shader translation system that converts source code and SPIR-V into target-specific languages. It employs a data-driven reference test framework to verify that graphics output remains consistent across different hardware platforms. Capabilities include parallel command buffe
gfx is a hardware-agnostic graphics API abstraction that translates unified rendering commands across Vulkan, DirectX 12, Metal, and OpenGL, offering shader compilation, GPU resource management, and parallel command recording—exactly the cross-platform abstraction layer you want, though it omits higher-level features like a frame graph or built-in PBR.
Sokol is a C hardware abstraction layer and cross-platform graphics library designed for managing windowing, input, and audio across different operating systems. It functions as a GPU resource manager and multimedia application framework, providing a unified API for rendering 2D and 3D graphics across WebGL, Metal, Direct3D, and OpenGL. The project is distinguished by its single-header implementation, which simplifies integration and portability. It utilizes a stateless render pass definition and a one-update-per-frame model to synchronize CPU data to GPU memory and manage resource lifecycles
Sokol is a C cross-platform hardware abstraction layer and graphics library that simplifies GPU rendering across WebGL, Metal, Direct3D, and OpenGL while managing resources and windowing, which directly matches this search for a higher-level abstraction over low-level graphics APIs.
This project is a cross-platform graphics and compute framework that provides a unified, hardware-agnostic abstraction layer for rendering and parallel processing. It enables developers to build high-performance applications that execute consistently across diverse operating systems and hardware backends, including Vulkan, Metal, and DirectX. By mapping high-level graphics commands to native APIs, it serves as a portable foundation for both real-time 3D rendering and general-purpose GPU computing. The framework distinguishes itself through a robust architecture that supports both native deskt
wgpu is a cross-platform GPU abstraction that unifies Vulkan, Metal, and DirectX, providing the portable rendering foundation you need; while it handles shader compilation, resource management, and command recording, it leaves higher-level features like frame graphs and asset loading to user code or additional libraries.
This library is an immediate mode graphical user interface toolkit that reconstructs the entire interface every frame. By executing procedural code within a high-frequency loop that matches the display refresh rate, it allows developers to define interactive elements and state updates directly. The framework utilizes a multi-pass rendering approach to resolve layout dependencies, ensuring that widget sizes and positions are calculated accurately before final placement to prevent visual jitter. The project functions as a cross-platform graphics toolkit, providing a portable rendering layer tha
egui is an immediate mode GUI toolkit, not a general-purpose graphics abstraction layer; while it provides cross-platform rendering backends to draw its interface, it focuses on UI widgets and input handling rather than the shader compilation, GPU resource management, and render-graph features this search targets.
This project serves as a comprehensive educational framework and reference library for mastering high-performance graphics programming and parallel compute resource management. It provides a collection of practical implementations designed to demonstrate the explicit control required by the Vulkan API, covering the fundamental mechanics of modern graphics pipelines and cross-platform hardware interaction. The repository distinguishes itself by focusing on the low-level architectural requirements of modern GPU development, including manual memory allocation, multi-threaded command recording, a
This repository is a collection of Vulkan-specific educational examples and reference implementations that focus on explicit low-level control of the Vulkan API, rather than providing a higher-level cross-platform abstraction over multiple GPU backends as requested.
DearPyGui is a hardware-accelerated Python GUI framework and graphics rendering engine. It operates as an immediate mode user interface system, rendering frames from scratch to ensure high performance and minimal state management for desktop applications. The project functions as a GPU-accelerated plotting library capable of rendering millions of data points with high frame rates. It also serves as a node editor toolkit for constructing interactive graph-based interfaces to manage visual data flows. The framework includes capabilities for custom 2D graphics rendering, interface theme customi
DearPyGui is a GPU-accelerated Python GUI framework, not a general-purpose cross-platform abstraction over Vulkan, DirectX 12, or Metal for low-level GPU rendering; it abstracts GPU rendering specifically for immediate mode user interfaces, which is a neighboring category to what you're looking for.
Kajiya is a physically based rendering engine and real-time global illumination renderer. It utilizes a GPU-accelerated path tracer to simulate real-world material properties, such as roughness and metalness, to achieve photorealistic visual results. The engine incorporates a temporal super-resolution upscaler to increase final render resolution by reconstructing images from lower-resolution internal frames. It also generates high-fidelity reference images through path-tracing to verify the visual accuracy of real-time lighting outputs. The system covers 3D scene visualization and asset mana
Kajiya is a physically based rendering engine and real-time global illumination renderer, not a cross-platform abstraction layer over Vulkan/DirectX 12/Metal — it focuses on specific rendering techniques rather than providing a general-purpose GPU backend abstraction.
microui is a minimal immediate-mode graphical user interface library written in C, designed for resource-constrained environments such as embedded systems. It operates without dynamic memory allocation and has no external dependencies beyond standard C, making it a self-contained solution for building lightweight interfaces. The library is delivered as a single header file, simplifying integration into any project. It uses a fixed-allocator heap for all runtime state, guaranteeing deterministic memory use and predictable performance. All drawing is delegated to user-supplied callbacks, keepin
microui is a minimal immediate-mode GUI library for embedded systems, not a cross-platform GPU rendering abstraction layer — it handles UI widgets, not Vulkan/DirectX/Metal backends, shaders, or GPU resource management.
DXVK is a graphics compatibility layer that enables Windows-based applications to run on non-Windows operating systems by translating legacy Direct3D instructions into the modern Vulkan API. It functions as a translation library that maps high-level rendering commands to low-level hardware-accelerated primitives, allowing for high-fidelity graphics output across different hardware environments. The project distinguishes itself through a suite of performance optimization strategies designed to maintain frame consistency and reduce latency. By utilizing background shader compilation and multith
DXVK is a Direct3D-to-Vulkan translation layer for running Windows games on Linux, not a high-level cross-platform rendering abstraction library for developers to build GPU rendering pipelines from scratch.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| diligentgraphics/diligentengine | 4.2K | Batchfile | apache-2.0 | |
| google/filament | 19.7K | C++ | apache-2.0 | |
| 17.2K |
| C |
| BSD-2-Clause |
| gfx-rs/gfx | 5.4K | Rust | Apache-2.0 |
| floooh/sokol | 9.6K | C | zlib |
| gfx-rs/wgpu | 17.4K | Rust | Apache-2.0 |
| emilk/egui | 29.4K | Rust | Apache-2.0 |
| saschawillems/vulkan | 12K | GLSL | MIT |
| raylockllc/dearpygui | 15.5K | C++ | MIT |
| embarkstudios/kajiya | 5.3K | Rust | Apache-2.0 |