Crate wgsl_to_wgpu

source ·
Expand description

§wgsl_to_wgpu

wgsl_to_wgpu is an experimental library for generating typesafe Rust bindings from WGSL shaders to wgpu.

§Features

The create_shader_module function is intended for use in build scripts. This facilitates a shader focused workflow where edits to WGSL code are automatically reflected in the corresponding Rust file. For example, changing the type of a uniform in WGSL will raise a compile error in Rust code using the generated struct to initialize the buffer.

Writing Rust code to interact with WGSL shaders can be tedious and error prone, especially when the types and functions in the shader code change during development. wgsl_to_wgpu is not a rendering library and does not offer high level abstractions like a scene graph or material system. Using generated code still has a number of advantages compared to writing the code by hand. The code generated by wgsl_to_wgpu can help with valid API usage like

  • setting all bind groups and bind group bindings
  • setting correct struct fields and field types for vertex input buffers
  • setting correct struct struct fields and field types for storage and uniform buffers
  • configuring shader initialization
  • getting vertex attribute offsets for vertex buffers
  • const validation of struct memory layouts when using bytemuck

Structs§

Enums§

  • Errors while generating Rust source for a WGSl shader module.
  • The format to use for matrix and vector types. Note that the generated types for the same WGSL type may differ in size or alignment.

Functions§