spirv-to-dxil

Crates.iospirv-to-dxil
lib.rsspirv-to-dxil
version0.4.7
sourcesrc
created_at2023-02-04 08:33:42.637
updated_at2024-02-19 07:20:22.090049
descriptionRust bindings to spirv-to-dxil
homepage
repositoryhttps://github.com/SnowflakePowered/spirv-to-dxil-rs
max_upload_size
id776256
size46,676
Ronny Chan (chyyran)

documentation

README

spirv-to-dxil-rs

Safe Rust bindings to spirv-to-dxil.

Latest Version Docs License

Building

spirv-to-dxil-rs builds a copy of spirv-to-dxil statically from Mesa.

A script to clone a minimal subset of Mesa required to build spirv-to-dxil has been provided.

$ ./clone-mesa.sh
$ cargo build

Updating Mesa

Unless you are maintaining spirv-to-dxil-rs, you do not need to update Mesa frequently.

Updating Mesa requires Python 3.6 and mako to pre-generate templated files. CMake is also required to regenerate the Rust bindings from spirv-to-dxil.h, this is to ensure that bindings can be generated regardless of whether changes need to be made to the spirv-to-dxil-sys build script.

  1. Update the submodule to HEAD

    git submodule update --init --remote --depth 1 --single-branch --progress spirv-to-dxil-sys/native/mesa

  2. Re-apply sparse-checkout

    git submodule absorbgitdirs
    git -C spirv-to-dxil-sys/native/mesa config core.sparseCheckout true
    git -C spirv-to-dxil-sys/native/mesa config core.symlinks false
    cp spirv-to-dxil-sys/native/mesa-sparse-checkout .git/modules/spirv-to-dxil-sys/native/mesa/info/sparse-checkout
    git submodule foreach git sparse-checkout reapply
    
  3. Regenerate bindings

    cargo run --bin bindings_generator
    
  4. Regenerate mako-generated files for cc

    ./mesa_mako 
    
Commit count: 42

cargo fmt