back to home

gboisse / gfx

A minimalist and easy to use graphics API.

524 stars
44 forks
4 issues
C++CMakeC

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing gboisse/gfx in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/gboisse/gfx)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

gfx **gfx** is a minimalist and easy to use graphics API built on top of **Direct3D12**/**HLSL** intended for rapid prototyping. It supports: • Full shader reflection; no need for root signatures, pipeline states, descriptor tables, register indexing, etc. • Internal management of descriptor heaps, resource views, memory allocation, etc. • "Garbage collection" defers the release of freed resources to ensure the GPU is done with it; you can create and destroy anything at any time without worrying about synchronization. • Automatic placement of pipeline barriers and resource transitions. • Runtime shader reloading; simply call the function. • Basic GPU-based parallel primitives (min/max/sum scans and reductions as well as key-only/key-value pair sorting for various data types). • DXR-1.1 raytracing (i.e. using object); also known as inline raytracing. On top of , three optional layers are available: • : adds Dear ImGui support. • : supports loading files ( coming soon). • : window creation and basic event management. Usage Include the header corresponding to the desired level of functionality. In one file, define and include said header to include the implementation details. Motivation This project was born mostly out of frustration while researching rendering techniques using explicit APIs such as **Direct3D12** or **Vulkan**. These APIs intend to deliver higher performance for complex workloads on both the CPU and the GPU by giving more responsibility to the developer; unfortunately this is to the detriment of productivity especially during the initial prototyping/research phase due to their high level of complexity. **gfx** aims to provide an efficient API that's easy to learn, pleasant to use and quick to get things set up, while offering rapid iterations; it allows to get that "start from scratch" efficiency while still offering access to the basic necessary functionality (low-level access to GPU work scheduling, drawing UI overlays, etc.). Drawing a triangle Some example code for drawing a simple colored triangle: Here's the corresponding vertex shader: And pixel shader: