Skip to content

Getting Involved

Dzmitry Malyshau edited this page Feb 14, 2018 · 6 revisions

Hello stranger! If you found gfx-rs interesting, especially the new Hardware Abstraction Layer stuff and friends, here is a place to get you started on the track to become a part of our community, contributing for the better future of Rust graphics and beyond.

First steps

  1. Make sure to have the late-ish Rust stable installed on the platform of your choice.
  2. Check out gfx-rs and type make in the repository root in order to ensure that everything is building. Skip this step if you are on Windows without Subsystem for Linux.
  3. Run the hal/quad example (cd example/hal/quad && cargo run --features <backend>) where the <backend> is vulkan, dx12, metal, or gl.
  4. Navigate through the project code to get familiar with the style and structure.

Big tasks

Now that we explained how to draw an owl, let's dive into the current development targets, where extra help would be most useful:

  • Polish and improve existing HAL backends: Vulkan, D3D12, Metal, GL - all miss a ton of features, don't nearly validate as much as they could, and need more testing.
  • Warden test framework:
    • add support for missing features
    • write more tests
  • WebGPU prototype: needs overall architecture review, IPC logic rewrite, many basic improvements to fit the portability and security requirements of the Web.
    • WebAssembly compatibility investigation
    • extra bonus for addressing some of the rspirv issues. We hope to eventually use Rust for shader sanitation and translation, while currently using SPIRV-Cross.
  • Vulkan Portability prototype: the beginning is there, way more needs to be done. This is supposed to be more of a mechanical task, with major concerns resolved conceptually. End goals are:
    • hook up to Ash, Vulkano, C applications of your choice
    • pass Khronos conformance test suite
  • Higher level stuff
Clone this wiki locally