Welcome in KRX repository! It is my own C++ API for rendering 3D graphics. All computes are performed on CPU.
| CPU | OS | Environment | KRX API | FPS |
|---|---|---|---|---|
| Intel Core i7-4770K @ 4400MHz | Linux Kubuntu 22.04 LTS | X11 | 0.40.0 | 370 |
| Intel Core i5-5300U | Linux KDE Neon 6.0 | X11 | 0.40.0 | 140 |
Additionally it consumes only 6MB of RAM memory!
| KRX API | OS | Supported environments |
|---|---|---|
| 0.40.0 | Linux | X11 |
| KRX API | Depth testing | Blending |
|---|---|---|
| 0.40.0 | Yes | Yes |
| Shader model version | krxSM1 |
|---|---|
| KRX API | 0.40.0 |
| Supported attributes count | 8 |
| Fragment shader outputs count | 1 |
| Uniform buffers count | 4 |
| SV_POSITION | Yes |
| SV_VERTEXID | Yes |
| SV_PIXELCOORD | No |
Remember that shader models are not backward compatible. It means newer shader model will not work on older API version.
| Shader model version | krxSM1 |
|---|---|
| f16vec4 | No |
| f16vec3 | No |
| f16vec2 | No |
| f32vec4 | Yes |
| f32vec3 | Yes |
| f32vec2 | Yes |
| ui32vec4 | No |
| ui32vec3 | No |
| ui32vec2 | No |
| ui32vec4 | No |
| i32vec4 | No |
| i32vec3 | No |
| i32vec2 | No |
| i32vec4 | No |
| f16mat2 | No |
| f16mat3 | No |
| f16mat4 | No |
| f32mat2 | No |
| f32mat3 | No |
| f32mat4 | No |
| ui32mat2 | No |
| ui32mat3 | No |
| ui32mat4 | No |
| i32mat2 | No |
| i32mat3 | No |
| i32mat4 | No |
If you want build this repository you need:
- CMake 3.24 or newer
- Ninja 1.10 or newer
- GCC with C++17 support
It may also require additional X11 dependencies.
If all upper requirements are met, just run build.sh script in root directory - it will build static library, shaders and samples.
If you want use this library in your project - feel free to do this, even for commercial projects. Let me just know about this before :)

