NjRAA Work-in-progress GPU Driver Foundation
June 23, 2024 ยท View on GitHub
[nee-jee-ray] stands for Not just Renamed AMD API
What we are doing here is a GPU driver as a prototype for future graphics stack of the @GreenteaOS
- Vulkan
- DirectX / Direct3D
- OpenGL
- OpenCL
Uses safe programming language Hexa.
Aim
To support AMD GCN 1.0+ GPUs. And Intel/Nvidia ones that conform to Resource binding Tier 3 and Resource heap Tier 2.
Later GCN/RDNA GPUs will reuse huge parts of GCN 1.0 code.
Investigate three ways of implementing things. You are welcome to participate at any one you feel comfortable:
- Use NT GPU drivers
- Note that means using closed-source third-party software
- Implementing Vulkan ICD and then use it in tandem with DXVK seems like the most approachable way
- Use Mesa open-source drivers
- This one requires libDRM compatible API implementation
- Write own GPU drivers
- Mostly depends on DMA mapping and command stream (modern GPUs)
Supported GPUs
Depends on the available hardware. You may sponsor this project for broader testable hardware.
Step by step goals
- Create IOCTL API to control the driver from userspace
- Init GPU engine and setup command buffer
- Mode setting
- Draw anything on screen
Build
Follow build instructions from the Tofita repo.
License
GNU LESSER GENERAL PUBLIC LICENSE Version 3