We list some possible future work here. If you have any ideas and suggestions, welcome to open an issue or start a discussion!
- ✅ Done and fully functional
- ⚠️ Done but with minor issues
- 🚧 Working in progress
- ⌛ Planned but not started
- ⏩ Not required/applicable
Implementation |
Status |
C++ |
✅ |
Python |
⚠️ (no support for polymorphic constructs) |
Rust |
🚧 (powerful constructs using proc-macro) |
C API |
🚧 (for easy bindings in other languages) |
Custom Script/Shading Language |
⌛ |
Module |
Status |
AST |
✅ (to be replaced by IR) |
IR |
🚧 (inter-convertibility with the AST; maybe optimization passes) |
AutoDiff |
🚧 (reverse mode; transformation passes on the IR) |
Module |
Status |
Device Interface |
🚧 (re-designing bindless resource APIs; support for device property query; support for device-specific extensions) |
Command |
🚧 (re-designing bindless resource commands; serialization) |
Command Scheduling |
✅ |
Interoperability |
🚧 (complete support for native_handle in progress; registration of external resources) |
GUI Support |
🚧 (re-designing swap-chain APIs) |
AOT Support |
⌛ (PSO caching and thin runtime) |
Rasterization Support |
🚧 (Designing API) |
Implementation |
Codegen Status |
Runtime Status |
CUDA |
✅ |
✅ |
DirectX |
✅ (simulated atomic<float> support) |
✅ |
Metal |
✅ (simulated atomic<float> support) |
⚠️ (acceleration structure compaction disabled due to Metal bugs) |
Vulkan |
🚧 (will translate to SPIR-V) |
⚠️ (needs testing) |
LLVM |
✅ (scalar only; simulated atomic<float> , shared_memory, and synchronize_block support) 🚧 vectorization |
✅ |