Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap, milestones, and functionality levels #47

Closed
khyperia opened this issue Oct 4, 2020 · 5 comments
Closed

Roadmap, milestones, and functionality levels #47

khyperia opened this issue Oct 4, 2020 · 5 comments
Labels
c: meta Issues specific to the GitHub repository. README, CI, etc.

Comments

@khyperia
Copy link
Contributor

khyperia commented Oct 4, 2020

High-level reasons for the project

Pros compared to glsl/hlsl/etc.:

  • Rust is a nicer language: memory saftey, traits/generics, and so on.
  • Whole codebase in one language is good.
  • IDE support (syntax highlighting! autocomplete! omg!)
  • Cargo and crates.io (see also: ideas around shadergraph-like things)
  • Debugging on CPU? (from println to true debuggers)

Cons:

  • glsl has huge ecosystem with an insane amount of resources being pumped into the status quo, hard to beat that
  • glsl is a specialized language, having a general purpose language be restricted down to GPU-allowed stuff is awkward.

Functionality levels

Each level distinguishes a milestone of achievement, and requires a certain level of commitment to get there. However, items here are extremely fluid, frequently span multiple levels, and can be worked on non-sequentially and in parallel.

Level 1 (#5), "prototype":

  • The compiler outputs a functional spir-v binary that can be executed, even if doing so is complex, user-unfriendly, and high-effort.
    • There's an implicit "compiler is better and supports more stuff" work item for every level past this.
  • Headcount commitment: At least one dedicated compiler engineer, a few support engineers. Code is suspiciously already in.
  • Time commitment: A tad over 2 months. Exactly. Wau, that's an accurate "estimate"!

Level 2 (#36), "that's a rusty skybox":

  • Ark is using rust-gpu shaders in "production". The system may be arkane (:3) and hacked together, but it's functional.
  • Headcount commitment: At least one dedicated compiler engineer, a few support engineers. Same as level 1.
  • Time commitment: 0.5-1 month. Likely to be blurred with level 3.

Level 3, "it's friendly now":

Level 4, "time to submit a talk about this":

  • Ergonomic bindings, i.e. generating host-side code (Ergonomic Rust CPU to Rust GPU / SPIRV bindings #10)
    • Note this begins to be framework-dependent, having a hard dep on e.g. ash or vulkano specifically. We need to be careful here to make sure the underlying compiler is still usable elsewhere.
  • Better compiler support for IDEs (having the gpu restrictions show up in rust-analyzer)
  • This is where using rust on the gpu instead of glsl starts to flicker as a candle of hope.
  • Headcount commitment: Uncertain, likely similar to level 3.
  • Time commitment: 2 months (?)

Level 5, "I could see this in a released game":

  • Rendergraph shenans (Render graph design #21)
  • Upstream the compiler
  • Clippy rules
  • Rust on the GPU starts to really shine as a useful tool.
  • Headcount commitment: Uncertain. Depends on what development style we want: could dump a bunch of people on it (a bit more than level 3) and get it beautiful quick, or have a couple folks slowly burning on it for a while.
  • Time commitment: 4-6 months (??) - (Ashley has no knowledge of how long rendergraph shenans would take to implement)

Level 6, "all the cool kids use shaded rust":

  • Move through rust support tiers until we hit tier 1
  • Begin to revolutionize shader development (hopefully~), really hitting all the use cases where Rust is great at this.
  • Headcount commitment: Uncertain, likely similar to level 5.
  • Time commitment: unbounded, uncertain, will definitely have more roadmap discussions before we get here

Feel free to edit this issue with more thoughts or to shuffle things around.

This was referenced Oct 14, 2020
@XAMPPRocky XAMPPRocky pinned this issue Oct 16, 2020
@XAMPPRocky XAMPPRocky added the c: meta Issues specific to the GitHub repository. README, CI, etc. label Oct 19, 2020
@khyperia
Copy link
Contributor Author

khyperia commented Apr 1, 2021

I don't think this issue reflects our current roadmap, and the things we've learned since I wrote this invalidates quite a bit of it, so we should probably close this issue to not give anyone wrong ideas. If someone feels otherwise, feel free to reopen.

@khyperia khyperia closed this as completed Apr 1, 2021
@khyperia khyperia unpinned this issue Apr 1, 2021
@John0x
Copy link

John0x commented Apr 15, 2021

Hey :)
I'm in the process of planning some projects that may depend on future functionality of rust-gpu. Is there a replacement for this roadmap, since you've stated that this issue isn't up-to-date anymore?

Is the roadmap under the projects tab still accurate and can be considered a replacement for this issue?
Btw. this issue is still linked there (https://github.com/EmbarkStudios/rust-gpu/projects)

And keep up the great work 👍
I'm extremely excited for the future of rust-gpu and I'm sure it will be going places ❤️

@ckaran
Copy link

ckaran commented Apr 6, 2022

Hey, I keep dropping in on the project from time to time to see how it's going. I noticed that the last comment on this issue was from 15 April 2021, and the last update to the roadmap was back on 1 April 2021. I know you guys have been working hard since then, I can see the commits in the repo, but that doesn't give me a clear picture of where things are. Can you please post updates somewhere? Thank you!

@repi
Copy link
Contributor

repi commented Apr 6, 2022

hi, work indeed continues on! but we do not at this time have a public roadmap or updated summary of where we are at. but in a few of months we'll have more people joining to work on the project and will do some planning and triage and see if we can share more about our plans and support.

@ckaran
Copy link

ckaran commented Apr 6, 2022

Thank you for the update! I'm really looking forwards to one day (I hope) having everything Just Work™; I know very, very little about how to write, let alone optimize, compute shaders but they would be incredibly helpful to have working from straight rust.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: meta Issues specific to the GitHub repository. README, CI, etc.
Projects
None yet
Development

No branches or pull requests

5 participants