mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-25 00:03:29 +00:00
Integration of Naga into Repo (#4296)
This commit is contained in:
parent
4445e55e1a
commit
34e947de4b
@ -21,7 +21,6 @@ allow = [
|
||||
"ISC",
|
||||
"MIT",
|
||||
"MIT-0",
|
||||
"MPL-2.0",
|
||||
"Unicode-DFS-2016",
|
||||
"Zlib",
|
||||
]
|
||||
|
1
.github/CODEOWNERS
vendored
1
.github/CODEOWNERS
vendored
@ -2,3 +2,4 @@
|
||||
|
||||
/cts_runner/ @gfx-rs/deno @gfx-rs/wgpu
|
||||
/deno_webgpu/ @gfx-rs/deno @gfx-rs/wgpu
|
||||
/naga/ @gfx-rs/naga
|
||||
|
49
.github/workflows/ci.yml
vendored
49
.github/workflows/ci.yml
vendored
@ -239,6 +239,52 @@ jobs:
|
||||
# check wgpu-core with all features. This will also get wgpu-hal and wgpu-types.
|
||||
cargo check --target ${{ matrix.target }} --all-features -p wgpu-core
|
||||
|
||||
naga-minimal-versions:
|
||||
name: MSRV naga Minimal Versions
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- name: checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Core MSRV toolchain
|
||||
run: |
|
||||
rustup toolchain install ${{ env.CORE_MSRV }} --no-self-update --profile=minimal --component clippy
|
||||
rustup override set ${{ env.CORE_MSRV }}
|
||||
cargo -V
|
||||
|
||||
- name: Install Nightly toolchain
|
||||
run: |
|
||||
rustup toolchain install nightly --no-self-update --profile=minimal --component clippy
|
||||
cargo +nightly -V
|
||||
|
||||
- name: Install cargo-hack
|
||||
uses: taiki-e/install-action@v2
|
||||
with:
|
||||
tool: cargo-hack
|
||||
|
||||
- name: disable debug
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p .cargo
|
||||
echo """
|
||||
[profile.dev]
|
||||
debug = false" >> .cargo/config.toml
|
||||
|
||||
- name: Set Minimal Versions
|
||||
shell: bash
|
||||
run: |
|
||||
set -e
|
||||
|
||||
cargo +nightly hack generate-lockfile --remove-dev-deps -Z minimal-versions -p naga -p naga-cli
|
||||
|
||||
- name: Clippy
|
||||
shell: bash
|
||||
run: |
|
||||
set -e
|
||||
|
||||
cargo clippy --all-features -p naga -p naga-cli
|
||||
|
||||
wasm-test:
|
||||
name: Test WebAssembly
|
||||
runs-on: ubuntu-latest
|
||||
@ -378,6 +424,9 @@ jobs:
|
||||
|
||||
cargo xtask test --llvm-cov
|
||||
|
||||
- name: check naga snapshots
|
||||
run: git diff --exit-code -- naga/tests/out
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: always() # We want artifacts even if the tests fail.
|
||||
with:
|
||||
|
96
.github/workflows/cts.yml
vendored
96
.github/workflows/cts.yml
vendored
@ -1,96 +0,0 @@
|
||||
name: CTS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, staging]
|
||||
tags: [v0.*]
|
||||
pull_request:
|
||||
types: [labeled, opened, synchronize]
|
||||
|
||||
env:
|
||||
CARGO_INCREMENTAL: false
|
||||
CARGO_TERM_COLOR: always
|
||||
RUST_BACKTRACE: full
|
||||
MSRV: "1.70"
|
||||
|
||||
jobs:
|
||||
cts:
|
||||
# Only run if we add this label
|
||||
if: contains(github.event.pull_request.labels.*.name, 'needs testing')
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# Windows
|
||||
- name: Windows x86_64
|
||||
os: windows-2019
|
||||
target: x86_64-pc-windows-msvc
|
||||
backends: dx12 # dx11
|
||||
|
||||
# Linux
|
||||
#- name: Linux x86_64
|
||||
# os: ubuntu-20.04
|
||||
# target: x86_64-unknown-linux-gnu
|
||||
# backends: vulkan # gl
|
||||
|
||||
name: CTS ${{ matrix.name }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: checkout repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: wgpu
|
||||
|
||||
- name: checkout cts
|
||||
run: |
|
||||
git clone https://github.com/gpuweb/cts.git
|
||||
cd cts
|
||||
git checkout $(cat ../wgpu/cts_runner/revision.txt)
|
||||
|
||||
- name: Install Repo MSRV toolchain
|
||||
run: |
|
||||
rustup toolchain install ${{ env.MSRV }} --no-self-update --profile=minimal --target ${{ matrix.target }}
|
||||
rustup override set ${{ env.MSRV }}
|
||||
cargo -V
|
||||
|
||||
- name: caching
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: cts-a # suffix for cache busting
|
||||
working-directory: wgpu/cts_runner
|
||||
target-dir: wgpu/cts_runner/target
|
||||
|
||||
- name: install llvmpipe and lavapipe
|
||||
if: matrix.os == 'ubuntu-20.04'
|
||||
run: |
|
||||
sudo apt-get update -y -qq
|
||||
sudo add-apt-repository ppa:oibaf/graphics-drivers -y
|
||||
sudo apt-get update
|
||||
sudo apt install -y libxcb-xfixes0-dev mesa-vulkan-drivers
|
||||
# libegl1-mesa libgl1-mesa-dri for gl
|
||||
|
||||
# We enable line numbers for panics, but that's it
|
||||
- name: disable debug
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p wgpu/.cargo
|
||||
echo """[profile.dev]
|
||||
debug = 1" > wgpu/.cargo/config.toml
|
||||
|
||||
- name: build CTS runner
|
||||
run: |
|
||||
cargo build --manifest-path wgpu/cts_runner/Cargo.toml
|
||||
|
||||
- name: run CTS
|
||||
shell: bash
|
||||
run: |
|
||||
cd cts;
|
||||
for backend in ${{ matrix.backends }}; do
|
||||
echo "======= CTS TESTS $backend ======";
|
||||
grep -v '^//' ../wgpu/cts_runner/test.lst | while IFS=$' \t\r\n' read test; do
|
||||
echo "=== Running $test ===";
|
||||
DENO_WEBGPU_BACKEND=$backend cargo run --manifest-path ../wgpu/cts_runner/Cargo.toml --frozen -- ./tools/run_deno --verbose "$test";
|
||||
done
|
||||
done
|
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: Documentation
|
||||
name: Docs
|
||||
|
||||
on:
|
||||
push:
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Lazy jobs running on master post merges.
|
||||
name: lazy
|
||||
# Lazy jobs running on trunk post merges.
|
||||
name: Lazy
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/lazy.yml'
|
||||
push:
|
||||
branches: [trunk]
|
||||
|
||||
env:
|
||||
CARGO_INCREMENTAL: false
|
||||
@ -14,41 +14,50 @@ env:
|
||||
|
||||
jobs:
|
||||
parse-dota2:
|
||||
name: Parse Dota2 shaders
|
||||
name: "Validate Shaders: Dota2"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- run: mkdir data
|
||||
- run: mkdir naga/data
|
||||
|
||||
- name: Download shaders
|
||||
run: curl https://user.fm/files/v2-5573e18b9f03f42c6ae53c392083da35/dota2-shaders.zip -o data/all.zip
|
||||
run: curl https://user.fm/files/v2-5573e18b9f03f42c6ae53c392083da35/dota2-shaders.zip -o naga/data/all.zip
|
||||
|
||||
- name: Unpack shaders
|
||||
run: cd data && unzip all.zip
|
||||
run: |
|
||||
cd naga/data
|
||||
unzip all.zip
|
||||
|
||||
- name: Build Naga
|
||||
run: cargo build --release --bin naga
|
||||
run: |
|
||||
cd naga
|
||||
cargo build --release -p naga-cli
|
||||
|
||||
- name: Convert shaders
|
||||
run: for file in data/*.spv ; do echo "Translating" ${file} && target/release/naga --validate 27 ${file} ${file}.metal; done
|
||||
run: |
|
||||
cd naga
|
||||
for file in data/*.spv ; do echo "Translating" ${file} && ../target/release/naga --validate 27 ${file} ${file}.metal; done
|
||||
|
||||
parse-vulkan-tutorial-shaders:
|
||||
name: Parse Sascha Willems Vulkan tutorial shaders
|
||||
name: "Validate Shaders: Sascha Willems Vulkan Tutorial"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Download shaders
|
||||
run: git clone https://github.com/SaschaWillems/Vulkan.git
|
||||
run: cd naga && git clone https://github.com/SaschaWillems/Vulkan.git
|
||||
|
||||
- name: Build Naga
|
||||
run: cargo build --release --bin naga
|
||||
run: |
|
||||
cd naga
|
||||
cargo build --release -p naga-cli
|
||||
|
||||
- name: Convert metal shaders
|
||||
run: |
|
||||
# No needed to stop workflow if we can't validate one file
|
||||
set +e
|
||||
cd naga
|
||||
touch counter
|
||||
SUCCESS_RESULT_COUNT=0
|
||||
FILE_COUNT=0
|
||||
@ -57,7 +66,7 @@ jobs:
|
||||
do
|
||||
echo "Convert: $fname"
|
||||
FILE_COUNT=$((FILE_COUNT+1))
|
||||
target/release/naga --validate 27 $(realpath ${fname}) out/$(basename ${fname}).metal
|
||||
../target/release/naga --validate 27 $(realpath ${fname}) out/$(basename ${fname}).metal
|
||||
if [[ $? -eq 0 ]]; then
|
||||
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
||||
fi
|
||||
@ -66,26 +75,30 @@ jobs:
|
||||
cat counter
|
||||
|
||||
dneto0_spirv-samples:
|
||||
name: Parse dneto0 spirv-samples
|
||||
name: "Validate Shaders: dneto0 spirv-samples"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Download shaders
|
||||
run: git clone https://github.com/dneto0/spirv-samples.git
|
||||
run: |
|
||||
cd naga
|
||||
git clone https://github.com/dneto0/spirv-samples.git
|
||||
|
||||
- name: Build Naga
|
||||
run: cargo build --release --bin naga
|
||||
run: |
|
||||
cargo build --release -p naga-cli
|
||||
|
||||
- name: Install spirv-tools
|
||||
run: |
|
||||
cd naga
|
||||
wget -q https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/linux-clang-release/continuous/1489/20210629-121459/install.tgz
|
||||
tar zxf install.tgz
|
||||
./install/bin/spirv-as --version
|
||||
|
||||
- name: Compile spv from spvasm
|
||||
run: |
|
||||
cd spirv-samples
|
||||
cd naga/spirv-samples
|
||||
mkdir -p spv
|
||||
|
||||
find "./spvasm" -name '*.spvasm' | while read fname;
|
||||
@ -97,7 +110,7 @@ jobs:
|
||||
- name: Validate spv and generate wgsl
|
||||
run: |
|
||||
set +e
|
||||
cd spirv-samples
|
||||
cd naga/spirv-samples
|
||||
SUCCESS_RESULT_COUNT=0
|
||||
FILE_COUNT=0
|
||||
mkdir -p spv
|
||||
@ -111,7 +124,7 @@ jobs:
|
||||
do
|
||||
echo "Convert: $fname"
|
||||
FILE_COUNT=$((FILE_COUNT+1))
|
||||
../target/release/naga --validate 27 $(realpath ${fname}) ./wgsl/$(basename ${fname}).wgsl
|
||||
../../target/release/naga --validate 27 $(realpath ${fname}) ./wgsl/$(basename ${fname}).wgsl
|
||||
if [[ $? -eq 0 ]]; then
|
||||
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
||||
fi
|
||||
@ -122,7 +135,7 @@ jobs:
|
||||
- name: Validate output wgsl
|
||||
run: |
|
||||
set +e
|
||||
cd spirv-samples
|
||||
cd naga/spirv-samples
|
||||
SUCCESS_RESULT_COUNT=0
|
||||
FILE_COUNT=0
|
||||
|
||||
@ -133,30 +146,10 @@ jobs:
|
||||
do
|
||||
echo "Validate: $fname"
|
||||
FILE_COUNT=$((FILE_COUNT+1))
|
||||
../target/release/naga --validate 27 $(realpath ${fname})
|
||||
../../target/release/naga --validate 27 $(realpath ${fname})
|
||||
if [[ $? -eq 0 ]]; then
|
||||
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
||||
fi
|
||||
echo "Result: $(expr $FILE_COUNT - $SUCCESS_RESULT_COUNT) / $FILE_COUNT" > counter
|
||||
done
|
||||
cat counter
|
||||
|
||||
check-snapshots-extra:
|
||||
name: Check snapshots (validated or not)
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install cargo-nextest
|
||||
uses: taiki-e/install-action@v2
|
||||
with:
|
||||
tool: cargo-nextest
|
||||
|
||||
- name: Test minimal (without span)
|
||||
run: cargo nextest run --features validate -p naga
|
||||
|
||||
- name: Test all (without validation)
|
||||
run: cargo nextest run --features wgsl-in,wgsl-out,glsl-in,glsl-out,spv-in,spv-out,msl-out,hlsl-out,dot-out --workspace
|
||||
|
||||
- name: Check snapshots (without validation)
|
||||
run: git diff --exit-code -- tests/out
|
5
.github/workflows/publish.yml
vendored
5
.github/workflows/publish.yml
vendored
@ -2,9 +2,8 @@ name: Publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["*"]
|
||||
pull_request:
|
||||
merge_group:
|
||||
branches:
|
||||
- trunk
|
||||
|
||||
env:
|
||||
CARGO_INCREMENTAL: false
|
||||
|
75
.github/workflows/shaders.yml
vendored
Normal file
75
.github/workflows/shaders.yml
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
name: Shaders
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["*"]
|
||||
tags: [v0.*]
|
||||
pull_request:
|
||||
merge_group:
|
||||
|
||||
jobs:
|
||||
naga-validate-windows:
|
||||
name: "Validate: HLSL"
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup DXC
|
||||
uses: napokue/setup-dxc@v1.1.0
|
||||
|
||||
- name: Setup FXC
|
||||
run: |
|
||||
Get-Childitem -Path "C:\Program Files (x86)\Windows Kits\10\bin\**\x64\fxc.exe" `
|
||||
| Sort-Object -Property LastWriteTime -Descending `
|
||||
| Select-Object -First 1 `
|
||||
| Split-Path -Parent `
|
||||
| Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
|
||||
shell: powershell
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: |
|
||||
naga/xtask -> naga/xtask/target
|
||||
|
||||
- run: |
|
||||
cd naga
|
||||
cargo xtask validate hlsl dxc
|
||||
cargo xtask validate hlsl fxc
|
||||
|
||||
naga-validate-macos:
|
||||
name: "Validate: MSL"
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: |
|
||||
naga/xtask -> naga/xtask/target
|
||||
|
||||
- run: |
|
||||
cd naga
|
||||
cargo xtask validate msl
|
||||
|
||||
naga-validate-linux:
|
||||
name: "Validate: SPIR-V/GLSL/DOT/WGSL"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install tools
|
||||
run: sudo apt-get install spirv-tools glslang-tools graphviz
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: |
|
||||
naga/xtask -> naga/xtask/target
|
||||
|
||||
- run: cd naga; cargo xtask validate spv
|
||||
|
||||
- run: cd naga; cargo xtask validate glsl
|
||||
|
||||
- run: cd naga; cargo xtask validate dot
|
||||
|
||||
- run: cd naga; cargo xtask validate wgsl
|
||||
|
@ -4,7 +4,7 @@
|
||||
Please add your PR to the changelog! Choose from a top level and bottom
|
||||
level category, then write your changes like follows:
|
||||
|
||||
- Describe your change in a user friendly format by @yourslug in [#9999](https://github.com/gfx-rs/wgpu/pull/2488)
|
||||
- Describe your change in a user friendly format by @yourslug in [#99999](https://github.com/gfx-rs/wgpu/pull/99999)
|
||||
|
||||
You can add additional user facing information if it's a major breaking change. You can use the following to help:
|
||||
|
||||
@ -38,6 +38,10 @@ Bottom level categories:
|
||||
- Hal
|
||||
-->
|
||||
|
||||
## Unreleased
|
||||
|
||||
For naga changelogs at or before v0.14.0. See [naga's changelog](naga/CHANGELOG.md).
|
||||
|
||||
## v0.18.0 (2023-10-25)
|
||||
|
||||
### Desktop OpenGL 3.3+ Support on Windows
|
||||
|
342
Cargo.lock
generated
342
Cargo.lock
generated
@ -93,6 +93,12 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anes"
|
||||
version = "0.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
|
||||
|
||||
[[package]]
|
||||
name = "anstream"
|
||||
version = "0.6.4"
|
||||
@ -147,6 +153,46 @@ version = "1.0.75"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
|
||||
|
||||
[[package]]
|
||||
name = "arbitrary"
|
||||
version = "1.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a2e1373abdaa212b704512ec2bd8b26bd0b7d5c3f70117411a5d9a451383c859"
|
||||
dependencies = [
|
||||
"derive_arbitrary",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "argh"
|
||||
version = "0.1.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7af5ba06967ff7214ce4c7419c7d185be7ecd6cc4965a8f6e1d8ce0398aad219"
|
||||
dependencies = [
|
||||
"argh_derive",
|
||||
"argh_shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "argh_derive"
|
||||
version = "0.1.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56df0aeedf6b7a2fc67d06db35b09684c3e8da0c95f8f27685cb17e08413d87a"
|
||||
dependencies = [
|
||||
"argh_shared",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "argh_shared"
|
||||
version = "0.1.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5693f39141bda5760ecc4111ab08da40565d1771038c4a0250f03457ec707531"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "arrayref"
|
||||
version = "0.3.7"
|
||||
@ -254,6 +300,15 @@ dependencies = [
|
||||
"vsimd",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bincode"
|
||||
version = "1.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bit-set"
|
||||
version = "0.5.3"
|
||||
@ -281,6 +336,7 @@ version = "2.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
|
||||
dependencies = [
|
||||
"arbitrary",
|
||||
"serde",
|
||||
]
|
||||
|
||||
@ -361,6 +417,12 @@ dependencies = [
|
||||
"vec_map",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cast"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.83"
|
||||
@ -392,6 +454,33 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ciborium"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
|
||||
dependencies = [
|
||||
"ciborium-io",
|
||||
"ciborium-ll",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ciborium-io"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
|
||||
|
||||
[[package]]
|
||||
name = "ciborium-ll"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
|
||||
dependencies = [
|
||||
"ciborium-io",
|
||||
"half",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.4.7"
|
||||
@ -601,6 +690,66 @@ dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "criterion"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
|
||||
dependencies = [
|
||||
"anes",
|
||||
"cast",
|
||||
"ciborium",
|
||||
"clap",
|
||||
"criterion-plot",
|
||||
"is-terminal",
|
||||
"itertools",
|
||||
"num-traits 0.2.17",
|
||||
"once_cell",
|
||||
"oorandom",
|
||||
"plotters",
|
||||
"rayon",
|
||||
"regex",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"serde_json",
|
||||
"tinytemplate",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "criterion-plot"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
|
||||
dependencies = [
|
||||
"cast",
|
||||
"itertools",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-deque"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-epoch"
|
||||
version = "0.9.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"cfg-if",
|
||||
"crossbeam-utils",
|
||||
"memoffset 0.9.0",
|
||||
"scopeguard",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-utils"
|
||||
version = "0.8.16"
|
||||
@ -876,6 +1025,17 @@ dependencies = [
|
||||
"deno_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "derive_arbitrary"
|
||||
version = "1.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "derive_more"
|
||||
version = "0.99.17"
|
||||
@ -889,6 +1049,12 @@ dependencies = [
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "diff"
|
||||
version = "0.1.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
|
||||
|
||||
[[package]]
|
||||
name = "dispatch"
|
||||
version = "0.2.0"
|
||||
@ -1468,6 +1634,12 @@ dependencies = [
|
||||
"bitflags 2.4.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "half"
|
||||
version = "1.8.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.14.2"
|
||||
@ -1511,6 +1683,14 @@ version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
|
||||
|
||||
[[package]]
|
||||
name = "hlsl-snapshots"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"nanoserde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "home"
|
||||
version = "0.5.5"
|
||||
@ -1568,6 +1748,7 @@ version = "2.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
|
||||
dependencies = [
|
||||
"arbitrary",
|
||||
"equivalent",
|
||||
"hashbrown",
|
||||
"serde",
|
||||
@ -1596,6 +1777,15 @@ dependencies = [
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.10.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
||||
dependencies = [
|
||||
"either",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itoa"
|
||||
version = "1.0.9"
|
||||
@ -1774,6 +1964,15 @@ dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memoffset"
|
||||
version = "0.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.27.0"
|
||||
@ -1820,25 +2019,44 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "naga"
|
||||
version = "0.14.0"
|
||||
source = "git+https://github.com/gfx-rs/naga?rev=92e41b43e437146b5d946eb238de963be1168016#92e41b43e437146b5d946eb238de963be1168016"
|
||||
dependencies = [
|
||||
"arbitrary",
|
||||
"bincode",
|
||||
"bit-set",
|
||||
"bitflags 2.4.1",
|
||||
"codespan-reporting",
|
||||
"criterion",
|
||||
"diff",
|
||||
"env_logger",
|
||||
"hexf-parse",
|
||||
"hlsl-snapshots",
|
||||
"indexmap",
|
||||
"log",
|
||||
"num-traits 0.2.17",
|
||||
"petgraph",
|
||||
"pp-rs",
|
||||
"ron",
|
||||
"rspirv",
|
||||
"rustc-hash",
|
||||
"serde",
|
||||
"spirv",
|
||||
"spirv 0.2.0+1.5.4",
|
||||
"termcolor",
|
||||
"thiserror",
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "naga-cli"
|
||||
version = "0.14.0"
|
||||
dependencies = [
|
||||
"argh",
|
||||
"bincode",
|
||||
"codespan-reporting",
|
||||
"env_logger",
|
||||
"log",
|
||||
"naga",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nanorand"
|
||||
version = "0.7.0"
|
||||
@ -1848,6 +2066,21 @@ dependencies = [
|
||||
"getrandom 0.2.10",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nanoserde"
|
||||
version = "0.1.35"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4a983d0b19ed0fcd803c4f04f9b20d5e6dd17e06d44d98742a0985ac45dab1bc"
|
||||
dependencies = [
|
||||
"nanoserde-derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nanoserde-derive"
|
||||
version = "0.1.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d4dc96541767a4279572fdcf9f95af9cc1c9b2a2254e7a079203c81e206a9059"
|
||||
|
||||
[[package]]
|
||||
name = "ndk"
|
||||
version = "0.7.0"
|
||||
@ -1915,7 +2148,7 @@ dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"memoffset",
|
||||
"memoffset 0.6.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -1928,7 +2161,7 @@ dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"memoffset",
|
||||
"memoffset 0.6.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2139,6 +2372,12 @@ version = "1.18.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
|
||||
|
||||
[[package]]
|
||||
name = "oorandom"
|
||||
version = "11.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
|
||||
|
||||
[[package]]
|
||||
name = "orbclient"
|
||||
version = "0.3.46"
|
||||
@ -2281,6 +2520,34 @@ dependencies = [
|
||||
"winit 0.28.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "plotters"
|
||||
version = "0.3.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
|
||||
dependencies = [
|
||||
"num-traits 0.2.17",
|
||||
"plotters-backend",
|
||||
"plotters-svg",
|
||||
"wasm-bindgen",
|
||||
"web-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "plotters-backend"
|
||||
version = "0.3.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
|
||||
|
||||
[[package]]
|
||||
name = "plotters-svg"
|
||||
version = "0.3.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
|
||||
dependencies = [
|
||||
"plotters-backend",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pmutil"
|
||||
version = "0.6.1"
|
||||
@ -2452,6 +2719,26 @@ version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
|
||||
|
||||
[[package]]
|
||||
name = "rayon"
|
||||
version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
|
||||
dependencies = [
|
||||
"either",
|
||||
"rayon-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rayon-core"
|
||||
version = "1.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
|
||||
dependencies = [
|
||||
"crossbeam-deque",
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_syscall"
|
||||
version = "0.3.5"
|
||||
@ -2517,6 +2804,15 @@ dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rspirv"
|
||||
version = "0.11.0+sdk-1.2.198"
|
||||
source = "git+https://github.com/gfx-rs/rspirv?rev=b969f175d5663258b4891e44b76c1544da9661ab#b969f175d5663258b4891e44b76c1544da9661ab"
|
||||
dependencies = [
|
||||
"rustc-hash",
|
||||
"spirv 0.2.0+sdk-1.2.198",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc-demangle"
|
||||
version = "0.1.23"
|
||||
@ -2581,6 +2877,15 @@ dependencies = [
|
||||
"bytemuck",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "same-file"
|
||||
version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
||||
dependencies = [
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "scoped-tls"
|
||||
version = "1.0.1"
|
||||
@ -2828,6 +3133,15 @@ checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"num-traits 0.2.17",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spirv"
|
||||
version = "0.2.0+sdk-1.2.198"
|
||||
source = "git+https://github.com/gfx-rs/rspirv?rev=b969f175d5663258b4891e44b76c1544da9661ab#b969f175d5663258b4891e44b76c1544da9661ab"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2980,6 +3294,16 @@ dependencies = [
|
||||
"strict-num",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tinytemplate"
|
||||
version = "1.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tinyvec"
|
||||
version = "1.6.0"
|
||||
@ -3205,6 +3529,16 @@ version = "1.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
|
||||
|
||||
[[package]]
|
||||
name = "walkdir"
|
||||
version = "2.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
|
||||
dependencies = [
|
||||
"same-file",
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.9.0+wasi-snapshot-preview1"
|
||||
|
21
Cargo.toml
21
Cargo.toml
@ -3,27 +3,33 @@ resolver = "2"
|
||||
members = [
|
||||
"cts_runner",
|
||||
"deno_webgpu",
|
||||
"player",
|
||||
|
||||
# default members
|
||||
"examples/*",
|
||||
"wgpu",
|
||||
"naga",
|
||||
"naga-cli",
|
||||
"player",
|
||||
"tests",
|
||||
"wgpu-core",
|
||||
"wgpu-hal",
|
||||
"wgpu-info",
|
||||
"wgpu-macros",
|
||||
"wgpu-types",
|
||||
"tests",
|
||||
"wgpu",
|
||||
]
|
||||
exclude = []
|
||||
default-members = [
|
||||
"examples/*",
|
||||
"naga",
|
||||
"naga-cli",
|
||||
"player",
|
||||
"wgpu",
|
||||
"tests",
|
||||
"wgpu-core",
|
||||
"wgpu-hal",
|
||||
"wgpu-info",
|
||||
"wgpu-macros",
|
||||
"wgpu-types",
|
||||
"tests",
|
||||
"wgpu",
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
@ -52,8 +58,7 @@ path = "./wgpu-hal"
|
||||
version = "0.18.0"
|
||||
|
||||
[workspace.dependencies.naga]
|
||||
git = "https://github.com/gfx-rs/naga"
|
||||
rev = "92e41b43e437146b5d946eb238de963be1168016"
|
||||
path = "./naga"
|
||||
version = "0.14.0"
|
||||
|
||||
[workspace.dependencies]
|
||||
@ -161,7 +166,6 @@ tokio = "1.33.0"
|
||||
termcolor = "1.3.0"
|
||||
|
||||
[patch."https://github.com/gfx-rs/naga"]
|
||||
#naga = { path = "../naga" }
|
||||
|
||||
[patch."https://github.com/zakarumych/gpu-descriptor"]
|
||||
#gpu-descriptor = { path = "../gpu-descriptor/gpu-descriptor" }
|
||||
@ -170,7 +174,6 @@ termcolor = "1.3.0"
|
||||
#gpu-alloc = { path = "../gpu-alloc/gpu-alloc" }
|
||||
|
||||
[patch.crates-io]
|
||||
#naga = { path = "../naga" }
|
||||
#glow = { path = "../glow" }
|
||||
#d3d12 = { path = "../d3d12-rs" }
|
||||
#web-sys = { path = "../wasm-bindgen/crates/web-sys" }
|
||||
|
@ -18,7 +18,7 @@ argh = "0.1.5"
|
||||
|
||||
[dependencies.naga]
|
||||
version = "0.14"
|
||||
path = "../"
|
||||
path = "../naga"
|
||||
features = [
|
||||
"validate",
|
||||
"compact",
|
1
naga/.github/CODEOWNERS
vendored
1
naga/.github/CODEOWNERS
vendored
@ -1 +0,0 @@
|
||||
* @gfx-rs/naga
|
34
naga/.github/workflows/validation-linux.yml
vendored
34
naga/.github/workflows/validation-linux.yml
vendored
@ -1,34 +0,0 @@
|
||||
name: validation-linux
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/validation-linux.yml'
|
||||
- 'tests/out/spv/*.spvasm'
|
||||
- 'tests/out/glsl/*.glsl'
|
||||
- 'tests/out/dot/*.dot'
|
||||
- 'tests/out/wgsl/*.wgsl'
|
||||
- 'src/front/wgsl/*'
|
||||
- 'xtask/**'
|
||||
|
||||
jobs:
|
||||
validate-linux:
|
||||
name: SPIR-V + GLSL
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install tools
|
||||
run: sudo apt-get install spirv-tools glslang-tools graphviz
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: |
|
||||
xtask -> target
|
||||
|
||||
- run: cargo xtask validate spv
|
||||
|
||||
- run: cargo xtask validate glsl
|
||||
|
||||
- run: cargo xtask validate dot
|
||||
|
||||
- run: cargo xtask validate wgsl
|
21
naga/.github/workflows/validation-macos.yml
vendored
21
naga/.github/workflows/validation-macos.yml
vendored
@ -1,21 +0,0 @@
|
||||
name: validation-macos
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/validation-macos.yml'
|
||||
- 'tests/out/msl/*.msl'
|
||||
- 'xtask/**'
|
||||
|
||||
jobs:
|
||||
validate-macos:
|
||||
name: MSL
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: |
|
||||
xtask -> target
|
||||
|
||||
- run: cargo xtask validate msl
|
48
naga/.github/workflows/validation-windows.yml
vendored
48
naga/.github/workflows/validation-windows.yml
vendored
@ -1,48 +0,0 @@
|
||||
name: validation-windows
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/validation-windows.yml'
|
||||
- 'tests/out/hlsl/*.hlsl'
|
||||
- 'tests/out/hlsl/*.ron'
|
||||
- 'xtask/**'
|
||||
- 'hlsl-snapshots/**'
|
||||
|
||||
jobs:
|
||||
validate-windows-dxc:
|
||||
name: HLSL via DXC
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Add DirectXShaderCompiler
|
||||
uses: napokue/setup-dxc@v1.1.0
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: |
|
||||
xtask -> target
|
||||
|
||||
- run: cargo xtask validate hlsl dxc
|
||||
|
||||
validate-windows-fxc:
|
||||
name: HLSL via FXC
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Add fxc bin to PATH
|
||||
run: |
|
||||
Get-Childitem -Path "C:\Program Files (x86)\Windows Kits\10\bin\**\x64\fxc.exe" `
|
||||
| Sort-Object -Property LastWriteTime -Descending `
|
||||
| Select-Object -First 1 `
|
||||
| Split-Path -Parent `
|
||||
| Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
|
||||
shell: powershell
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: |
|
||||
xtask -> target
|
||||
|
||||
- run: cargo xtask validate hlsl fxc
|
@ -1,5 +1,7 @@
|
||||
# Change Log
|
||||
|
||||
For changelogs after v0.14, see [the wgpu changelog](../CHANGELOG.md).
|
||||
|
||||
## v0.14 (2023-10-25)
|
||||
|
||||
#### GENERAL
|
||||
|
@ -15,12 +15,6 @@ rust-version = "1.65"
|
||||
[package.metadata.docs.rs]
|
||||
all-features = true
|
||||
|
||||
[profile.release]
|
||||
panic = "abort"
|
||||
|
||||
[profile.dev]
|
||||
panic = "abort"
|
||||
|
||||
[features]
|
||||
default = []
|
||||
clone = []
|
||||
@ -65,9 +59,11 @@ pp-rs = { version = "0.2.1", optional = true }
|
||||
hexf-parse = { version = "0.2.1", optional = true }
|
||||
unicode-xid = { version = "0.2.3", optional = true }
|
||||
|
||||
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
|
||||
criterion = { version = "0.5", features = [] }
|
||||
|
||||
[dev-dependencies]
|
||||
bincode = "1"
|
||||
criterion = { version = "0.5", features = [] }
|
||||
diff = "0.1"
|
||||
env_logger = "0.10"
|
||||
hlsl-snapshots = { path = "./hlsl-snapshots" }
|
||||
@ -78,11 +74,3 @@ ron = "0.8.0"
|
||||
rspirv = { version = "0.11", git = "https://github.com/gfx-rs/rspirv", rev = "b969f175d5663258b4891e44b76c1544da9661ab" }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
spirv = { version = "0.2", features = ["deserialize"] }
|
||||
|
||||
[workspace]
|
||||
members = [".", "cli"]
|
||||
|
||||
# Include "cli", so that `cargo run` runs the CLI by default. Include ".", so
|
||||
# that `cargo test` includes naga's own tests by default (but note, using the
|
||||
# features that `cli/Cargo.toml` requests).
|
||||
default-members = [".", "cli"]
|
||||
|
@ -1,201 +0,0 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
@ -1,19 +0,0 @@
|
||||
Copyright (c) [yyyy] [name of copyright owner]
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -1,3 +1,4 @@
|
||||
#![cfg(not(target_arch = "wasm32"))]
|
||||
#![allow(clippy::needless_borrowed_reference)]
|
||||
|
||||
use criterion::*;
|
||||
|
@ -1 +0,0 @@
|
||||
comment: false
|
@ -4,6 +4,7 @@ version = "0.0.0"
|
||||
authors = ["Automatically generated"]
|
||||
publish = false
|
||||
edition = "2018"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
||||
[package.metadata]
|
||||
cargo-fuzz = true
|
||||
|
@ -3,6 +3,7 @@ name = "hlsl-snapshots"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1"
|
||||
|
@ -156,6 +156,7 @@ pub struct InlineSampler {
|
||||
|
||||
impl Eq for InlineSampler {}
|
||||
|
||||
#[allow(renamed_and_removed_lints)]
|
||||
#[allow(clippy::derive_hash_xor_eq)]
|
||||
impl std::hash::Hash for InlineSampler {
|
||||
fn hash<H: std::hash::Hasher>(&self, hasher: &mut H) {
|
||||
|
@ -607,6 +607,7 @@ impl GlobalCtx<'_> {
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn eval_expr_to_literal(
|
||||
&self,
|
||||
handle: crate::Handle<crate::Expression>,
|
||||
|
@ -189,7 +189,10 @@ impl<E> WithSpan<E> {
|
||||
}
|
||||
|
||||
/// Add a new span with description.
|
||||
#[cfg_attr(not(feature = "span"), allow(unused_variables, unused_mut))]
|
||||
#[cfg_attr(
|
||||
not(feature = "span"),
|
||||
allow(unused_variables, unused_mut, clippy::missing_const_for_fn)
|
||||
)]
|
||||
pub fn with_span<S>(mut self, span: Span, description: S) -> Self
|
||||
where
|
||||
S: ToString,
|
||||
@ -249,6 +252,7 @@ impl<E> WithSpan<E> {
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "span"))]
|
||||
#[allow(clippy::missing_const_for_fn)]
|
||||
/// Return a [`SourceLocation`] for our first span, if we have one.
|
||||
pub fn location(&self, _source: &str) -> Option<SourceLocation> {
|
||||
None
|
||||
|
@ -143,8 +143,8 @@ impl Input {
|
||||
.expect("all files in snapshot input directory should have extensions");
|
||||
let input = Input::new(
|
||||
Some(&subdirectory),
|
||||
&file_name.file_stem().unwrap().to_str().unwrap(),
|
||||
&extension.to_str().unwrap(),
|
||||
file_name.file_stem().unwrap().to_str().unwrap(),
|
||||
extension.to_str().unwrap(),
|
||||
);
|
||||
input
|
||||
}),
|
||||
@ -232,10 +232,8 @@ impl Input {
|
||||
let mut param_path = self.input_path();
|
||||
param_path.set_extension("param.ron");
|
||||
match fs::read_to_string(¶m_path) {
|
||||
Ok(string) => ron::de::from_str(&string).expect(&format!(
|
||||
"Couldn't parse param file: {}",
|
||||
param_path.display()
|
||||
)),
|
||||
Ok(string) => ron::de::from_str(&string)
|
||||
.unwrap_or_else(|_| panic!("Couldn't parse param file: {}", param_path.display())),
|
||||
Err(_) => Parameters::default(),
|
||||
}
|
||||
}
|
||||
@ -277,10 +275,7 @@ fn check_targets(
|
||||
|
||||
let info = naga::valid::Validator::new(naga::valid::ValidationFlags::all(), capabilities)
|
||||
.validate(module)
|
||||
.expect(&format!(
|
||||
"Naga module validation failed on test '{}'",
|
||||
name.display()
|
||||
));
|
||||
.unwrap_or_else(|_| panic!("Naga module validation failed on test '{}'", name.display()));
|
||||
|
||||
#[cfg(feature = "compact")]
|
||||
let info = {
|
||||
@ -297,10 +292,12 @@ fn check_targets(
|
||||
|
||||
naga::valid::Validator::new(naga::valid::ValidationFlags::all(), capabilities)
|
||||
.validate(module)
|
||||
.expect(&format!(
|
||||
.unwrap_or_else(|_| {
|
||||
panic!(
|
||||
"Post-compaction module validation failed on test '{}'",
|
||||
name.display()
|
||||
))
|
||||
)
|
||||
})
|
||||
};
|
||||
|
||||
#[cfg(feature = "serialize")]
|
||||
@ -576,7 +573,7 @@ fn write_output_hlsl(
|
||||
});
|
||||
}
|
||||
|
||||
config.to_file(&input.output_path("hlsl", "ron")).unwrap();
|
||||
config.to_file(input.output_path("hlsl", "ron")).unwrap();
|
||||
}
|
||||
|
||||
#[cfg(feature = "wgsl-out")]
|
||||
|
@ -190,7 +190,7 @@ fn run(args: Args) -> anyhow::Result<()> {
|
||||
ValidateSubcommand::Wgsl => {
|
||||
visit_files(snapshots_base_out, "wgsl/*.wgsl", |path| {
|
||||
ack_visiting(path);
|
||||
EasyCommand::new("cargo", |cmd| cmd.args(["run", "--"]).arg(path)).success()
|
||||
EasyCommand::new("cargo", |cmd| cmd.args(["run", "-p", "naga-cli", "--"]).arg(path)).success()
|
||||
})
|
||||
}
|
||||
ValidateSubcommand::Hlsl(cmd) => {
|
||||
|
@ -79,8 +79,7 @@ smallvec = "1"
|
||||
thiserror = "1"
|
||||
|
||||
[dependencies.naga]
|
||||
git = "https://github.com/gfx-rs/naga"
|
||||
rev = "92e41b43e437146b5d946eb238de963be1168016"
|
||||
path = "../naga"
|
||||
version = "0.14.0"
|
||||
features = ["clone", "span", "validate"]
|
||||
|
||||
|
@ -165,15 +165,13 @@ libc = "0.2"
|
||||
android_system_properties = "0.1.1"
|
||||
|
||||
[dependencies.naga]
|
||||
git = "https://github.com/gfx-rs/naga"
|
||||
rev = "92e41b43e437146b5d946eb238de963be1168016"
|
||||
path = "../naga"
|
||||
version = "0.14.0"
|
||||
features = ["clone"]
|
||||
|
||||
# DEV dependencies
|
||||
[dev-dependencies.naga]
|
||||
git = "https://github.com/gfx-rs/naga"
|
||||
rev = "92e41b43e437146b5d946eb238de963be1168016"
|
||||
path = "../naga"
|
||||
version = "0.14.0"
|
||||
features = ["wgsl-in"]
|
||||
|
||||
|
@ -46,7 +46,7 @@ pub fn run_tests(mut args: Arguments) -> anyhow::Result<()> {
|
||||
|
||||
xshell::cmd!(
|
||||
shell,
|
||||
"cargo {llvm_cov_nextest_flags...} --no-fail-fast --retries 2"
|
||||
"cargo {llvm_cov_nextest_flags...} --all-features --no-fail-fast --retries 2"
|
||||
)
|
||||
.args(args.finish())
|
||||
.quiet()
|
||||
|
Loading…
Reference in New Issue
Block a user