This project is a simple abstraction layer on top of d3d12(and vulkan in the future) that makes them more similar to d3d11 in complexity, written in c99.
Here is the status of some notable things being worked on.
| Features | Status |
|---|---|
| Automatically sync command lists | ✔️ |
| Automatically sync presents | ✔️ |
| Automatically sync resource states | ✔️ |
| Automatically sync resource deletion | ✔️ |
| Multithreading support | ❌ |
| Hardware Raytracing support | ❌ |
| PSO Caching support | ❌ |
| CPP compatibility | ❌ |
| D3D12 backend | ✔️ |
| Vulkan backend | ❌ |
To install, download the main yara.h header and the accompanying backend files(ie, yara_d3d12.h and yara_d3d12.c for d3d12) and add them to your project.
To use it, add the wanted backend .c file to be compiled and linked and then you should be able to start writing code using the library. You can find examples on how to use it at https://erichederstedt.github.io/GPUTechniques/ or https://github.com/erichederstedt/GPUTechniquesCode.