Description
Silk.NET 3.0 Roadmap
THIS IS A LIVING DOCUMENT
Overview
Welcome to the Silk.NET 3.0 roadmap! This tracks the current progress of 3.0 - the major rewrite project for Silk.NET 3.0. You can read more about why we're doing this in the 3.0 proposal, but basically the .NET world has changed a lot since Silk.NET was originally written (Silk.NET was written against .NET Core 2.1, long before "One .NET" existed), and we want to ensure we ship a library that encourages write-once-run-everywhere and embraces user feedback and modern bindings techniques developed elsewhere within the .NET Foundation.
Learn more about Silk.NET 3.0:
- Silk.NET 3.0 Plan
- Silk.NET 3.0 Bindings Design
- Silk.NET 3.0 Meeting 1
- Silk.NET 3.0 Meeting 2
- SilkX (Silk.NET 3.0) Design Discussion
Proposed Features
SDP
- [Complete] Design & Development - @Perksey
- [Complete] Proposed - @Perksey
- [Complete] Reviewed - @dotnet/silk-dotnet
- [Complete] Approved - @dotnet/silk-dotnet
- [In Progress] Implemented - @dotnet/silk-dotnet
Windowing
- [Complete] Design & Development - @Perksey @HurricanKai
- [Complete] Proposed - @Perksey @HurricanKai
- [Complete] Reviewed - @dotnet/silk-dotnet
- [Complete] Approved - @dotnet/silk-dotnet
- [Complete] Implemented (API) - @Perksey
- [Complete] Pri 0: SDL support - @Perksey
- [Needs Testing] Pri 1: iOS support (TBD) - unassigned
- [Needs Testing] Pri 1: Android support (TBD) - unassigned
Input
- [Complete] Design & Development - @Perksey @ThomasMiz
- [Complete] Proposed - @Perksey @domportera
- [Complete] Reviewed - @dotnet/silk-dotnet
- [Complete] Approved - @dotnet/silk-dotnet
- [Not Started] Implemented (API) - unassigned
- [Not Started] Pri 0: SDL support - unassigned
- [Not Started] Pri 1: Android support (TBD) - unassigned
- [Not Started] Pri 2: iOS support (TBD) - unassigned
SilkTouch & Bindings
- [Complete] Design & Development - @Perksey
- [Complete] GLFW PoC - @Perksey
- [Complete] Proposed (latest) - @Perksey @curin
- [Complete] Reviewed (latest) - @dotnet/silk-dotnet
- [Complete] Approved (latest) - @dotnet/silk-dotnet
- [In Progress] Implemented (see Tracking Issue for Bindings Generation & Improvements #887) - @Perksey @curin
- [Complete] Pri 0: SDL bindings generated - @Perksey
- [Complete] Pri 0: OpenGL bindings generated - @Perksey
- [Not Started] Pri 0: OpenAL bindings generated - unassigned
- [Not Started] Pri 1: Vulkan bindings generated - unassigned
- [In Progress] Pri 1: Windows bindings generated (existing headers covered) - @curin
- [Not Started] Pri 1: OpenXR bindings (should be trivial with Vulkan support done) - unassigned
- [Not Started] Pri 2: OpenCL bindings generated - unassigned
- [Not Started] Pri 3: Assimp bindings generated - unassigned
- [Not Started] Pri 3: WebGPU bindings generated - unassigned
- [Not Started] Pri 4: SPIR-V Reflect bindings generated - unassigned
- [Not Started] Pri 4: SPIR-V Cross bindings generated - unassigned
- [Not Started] Pri 4: Shderc bindings generated - unassigned
Generic Maths
TODO
Milestones
NOTE: The below milestones will be complemented by regular experimental feed updates. The Silk.NET team may add additional previews at their discretion.. Rough timelines for each of the previews may be added to this issue at a later date if the Silk.NET team has a high degree of confidence that they can be met.
THE FEATURES IN EACH PREVIEW SPECIFIED HEREIN DO NOT NECESSARILY HAVE TO BE COMPLETED IN THAT ORDER, IF YOU WOULD LIKE TO WORK ON SOMETHING, PLEASE DO SO! The dependencies for each work item are specified in the Proposed Features section.
The priorities above basically map 1:1 into previews as defined in the SDP's original roadmap as below:
- Preview 1 released with all Pri 0 and some Pri 1 items implemented
- SilkTouch can generate raw bindings
- SilkTouch can do basic rewriting to use wrapper types
- Windowing and Input are implemented for desktop
- SDL
- OpenGL
- OpenAL
- Preview 2 released with all Pri 1 and some Pri 2 items implemented
- Bugfixes from 3.0 Preview 1
- Generic Maths
- Vulkan
- OpenXR
- SilkTouch has more overloads implemented. All generic overloads should be implemented by now, but some API-specific overloads may not be implemented.
- Windowing and Input are implemented for Android.
- Windows SDK bindings (2.X coverage met)
- Preview 3 released with all Pri 2 and some Pri 3 items implemented
- Bugfixes from 3.0 Preview 2
- SilkTouch generator is complete
- Windowing and Input are implemented for iOS
- OpenCL
- Preview 4 released with all Pri 3 and 4 items implemented
- Bugfixes from 3.0 Preview 3
- Assimp
- WebGPU
- SPIR-V Reflect
- SPIR-V Cross
- Shaderc
- Preview 5 released with bugfixes
- Bugfixes from 3.0 Preview 4
- More SIMD?
- RTM
- Bugfixes from 3.0 Preview 5
Untracked Features
NOTE: None of these features are guaranteed for 3.0 and may be pushed to 3.X or cancelled altogether. Some of them have been demoted from the original priorities specified in the SDP.
- [Not Started] WASM support - unassigned
- [Not Started] WebGL bindings - unassigned
- [Not Started] Metal bindings (Objective-C support in ClangSharp) - unassigned
- [Not Started] WPF integration - unassigned
- [Not Started] WinForms integration - unassigned
- [Not Started] Avalonia integration - unassigned
- [Not Started] MAUI integration - unassigned
- [Not Started] SIMD vectorization - unassigned
Sub-issues
Metadata
Metadata
Assignees
Type
Projects
Status