dotnet / Silk.NET

The high-speed OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, and DirectX bindings library your mother warned you about.
https://dotnet.github.io/Silk.NET
MIT License
4.09k stars 394 forks source link

Tracking issue for Silk.NET 3.0 #209

Open Perksey opened 4 years ago

Perksey commented 4 years ago

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.

Proposed Features

SDP

Windowing

Input

SilkTouch & Bindings

NOTE: The originally-approved proposal is very obsolete and is likely to be updated throughout 3.0's development. It is also unclear whether we want to subject SilkTouch to the proposals process as it is unlikely to expose any APIs in its complete form, however this obviously changes if we want the source generator form factor still. This section tracks the latest 3.0 development as we know it

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:

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.

michael-hawker commented 3 years ago

For clarification. Would WebGL bindings mean that a Silk.NET project could run in the browser over Web Assembly (WASM)?

Perksey commented 3 years ago

Yeah exactly, our WebGL and WebGPU bindings are intended to work on Blazor WASM once created to maximise portability of .NET 6 apps.

BergerBytes commented 3 years ago

Mentioned in #345; Just wanted to add a +1 for MAUI support.

michael-hawker commented 3 years ago

MAUI support would also mean WinUI 3/Uno platform support I believe too, so that'd be cool.

Perksey commented 3 years ago

We have included MAUI support in our work in progress software development plan for 3.0 and will likely be our top priority after WinForms and WPF support, which analytics and discord activity indicate are in massive demand.

This is definitely something we are keen on getting in.

GeorgeS2019 commented 3 years ago

@Perksey FYI: for an ongoing example of a .NET 3D engine supporting WinUI 3 project reunion example

IsaacMarovitz commented 1 year ago

Any idea when we'll get Metal bindings?

Beyley commented 1 year ago

Any idea when we'll get Metal bindings?

No ETA for Metal, and its not something the team is working on at all right now, but we welcome any contributions to move us forward

Perksey commented 1 year ago

@dotnet/silk-dotnet I've tried to extrapolate all the info from the proposals (as currently approved) into this issue (see the updated description). It makes no assumption on the outcomes of the current SilkTouch or SilkTouchX/SilkX work, mostly just wanted this for tracking.

Please let me know if you have any issues with the above.

Perksey commented 1 year ago

Likewise, if there's any other untracked promises for 3.0 we've made or the community wants to be made, please let me know!

HurricanKai commented 1 year ago

I think GLFW bindings are arguably < 0, I think we agreed those are a good PoC?

Perksey commented 1 year ago

Yes you are right... but do you really want a priority -1? That just feels silly! Unless we're using unsigned integers, then we'll a priority 4,294,967,295...

I expect the SilkTouch Design & Development and GLFW bindings tasks to complete at the same time.

HurricanKai commented 1 year ago

I mean it doesn't matter so much, but I'd see GLFW PoC as a separate point - leaving Prio 0 GLFW as an additional item

Perksey commented 1 year ago

Okay, done thanks.

Perksey commented 10 months ago

I've updated the issue to reflect latest developments. This also has been changed to indicate that we're using SDL3 instead of GLFW as I believe is the consensus on the team, primarily because I've backed down haha

curin commented 8 months ago

Unless current plans change, generic math should get bumped up to preview 1

Perksey commented 8 months ago

SilkTouch Notes