Tracking issue for Silk.NET 3.0
- Dominant language
- C#
- Stars
- 5.2k
- Forks
- 477
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 2
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](https://github.com/dotnet/Silk.NET/blob/main/documentation/proposals/Proposal%20-%203.0%20%26%203.X%20Software%20Development%20Plan.md), 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](https://github.com/dotnet/Silk.NET/blob/14ee3f16a1c1b7c5f561c307b956f769c5e89474/documentation/proposals/Proposal%20-%203.0%20%26%203.X%20Software%20Development%20Plan.md)
- [Silk.NET 3.0 Bindings Design](https://github.com/dotnet/Silk.NET/blob/main/documentation/proposals/Proposal%20-%20Generation%20of%20Library%20Sources%20and%20PInvoke%20Mechanisms.md)
- [Silk.NET 3.0 Meeting 1](https://www.youtube.com/watch?v=dac3t0oh3VU)
- [Silk.NET 3.0 Meeting 2](https://www.youtube.com/watch?v=yXNDZDE3AHE)
- [SilkX (Silk.NET 3.0) Design Discussion](https://www.youtube.com/live/N7qcETE4X_I?t=1799)
## Proposed Features
### SDP
- [x] [Complete] Design & Development - @Perksey
- [x] [Complete] Proposed - @Perksey
- [x] [Complete] Reviewed - @dotnet/silk-dotnet
- [x] [Complete] Approved - @dotnet/silk-dotnet
- [ ] [In Progress] Implemented - @dotnet/silk-dotnet
### [Windowing](https://github.com/dotnet/Silk.NET/blob/main/documentation/proposals/Proposal%20-%20Windowing%203.0.md)
- [x] [Complete] Design & Development - @Perksey @HurricanKai
- [x] [Complete] Proposed - @Perksey @HurricanKai
- [x] [Complete] Reviewed - @dotnet/silk-dotnet
- [x] [Complete] Approved - @dotnet/silk-dotnet
- [x] [Complete] Implemented (API) - @Perksey
- [x] [Complete] Pri 0: SDL support - @Perksey
- [ ] [Needs Testing] Pri 1: iOS support (TBD) - _unassigned_
- [ ] [Needs Testing] Pri 1: Android support (TBD) - _unassigned_
### [Input](https://github.com/dotnet/Silk.NET/blob/main/documentation/proposals/Proposal%20-%20Multi-Backend%20Input.md)
- [x] [Complete] Design & Development - @Perksey @ThomasMiz
- [x] [Complete] Proposed - @Perksey @domportera
- [x] [Complete] Reviewed - @dotnet/silk-dotnet
- [x] [Complete] Approved - @dotnet/silk-dotnet
- [ ] [In Progress] Implemented (API) - @domportera
- [ ] [In Progress] Pri 0: SDL support - @domportera
- [ ] [Not Started] Pri 1: Android support (TBD) - _unassigned_
- [ ] [Not Started] Pri 2: iOS support (TBD) - _unassigned_
### [SilkTouch & Bindings](https://github.com/dotnet/Silk.NET/blob/main/documentation/proposals/Proposal%20-%20Generation%20of%20Library%20Sources%20and%20PInvoke%20Mechanisms.md)
- [x] [Complete] Design & Development - @Perksey
- [x] [Complete] GLFW PoC - @Perksey
- [x] [Complete] Proposed (latest) - @Perksey @Curin
- [x] [Complete] Reviewed (latest) - @dotnet/silk-dotnet
- [x] [Complete] Approved (latest) - @dotnet/silk-dotnet
- [ ] [In Progress] Implemented (see #887) - @Perksey @Curin
- [x] [Complete] Pri 0: SDL bindings generated - @Perksey
- [x] [Complete] Pri 0: OpenGL bindings generated - @Perksey
- [x] [Complete] Pri 0: OpenAL bindings generated - @Perksey
- [x] [Complete] Pri 1: Vulkan bindings generated - @Exanite
- [ ] [In Progress] Pri 1: Windows bindings generated (existing headers covered) - @curin
- [ ] [Not Started] Pri 1: OpenXR bindings (should be trivial with Vulkan support done) - @Exanite
- [ ] [Not Started] Pri 2: OpenCL bindings generated - @Exanite
- [ ] [Not Started] Pri 3: Assimp bindings generated - @Exanite
- [ ] [Not Started] Pri 3: WebGPU bindings generated - _unassigned_
- [ ] [Not Started] Pri 4: SPIR-V Reflect bindings generated - @Exanite
- [ ] [Not Started] Pri 4: SPIR-V Cross bindings generated - @Exanite
- [ ] [Not Started] Pri 4: Shaderc bindings generated - @Exanite
### [Generic Maths](https://github.com/dotnet/Silk.NET/blob/main/documentation/proposals/Proposal%20-%20Generic%20Math.md)
- [x] [Complete] Design & Development - @Perksey @curin @uwx
- [x] [Complete] Proposed - @Perksey @curin @uwx
- [x] [Complete] Reviewed - @dotnet/silk-dotnet
- [x] [Complete] Approved - @dotnet/silk-dotnet
- [ ] [In Progress] Implemented (API) - @Tweety-Lab @otac0n
## 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
- [x] SilkTouch can generate raw bindings
- [x] SilkTouch can do basic rewriting to use wrapper types
- [ ] Windowing and Input are implemented for desktop
- [x] SDL
- [x] OpenGL
- [x] OpenAL
- [ ] Preview 2 released with all Pri 1 and some Pri 2 items implemented
- [ ] Bugfixes from 3.0 Preview 1
- [ ] Generic Maths
- [x] Vulkan
- [ ] The improvements identified in #2457 are implemented
- [ ] 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_
Contributor guide
Assessment
This issue has not been assessed yet.