mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-21 22:33:49 +00:00
Integration of Naga into Repo (#4296)
This commit is contained in:
parent
4445e55e1a
commit
34e947de4b
@ -21,7 +21,6 @@ allow = [
|
|||||||
"ISC",
|
"ISC",
|
||||||
"MIT",
|
"MIT",
|
||||||
"MIT-0",
|
"MIT-0",
|
||||||
"MPL-2.0",
|
|
||||||
"Unicode-DFS-2016",
|
"Unicode-DFS-2016",
|
||||||
"Zlib",
|
"Zlib",
|
||||||
]
|
]
|
||||||
|
1
.github/CODEOWNERS
vendored
1
.github/CODEOWNERS
vendored
@ -2,3 +2,4 @@
|
|||||||
|
|
||||||
/cts_runner/ @gfx-rs/deno @gfx-rs/wgpu
|
/cts_runner/ @gfx-rs/deno @gfx-rs/wgpu
|
||||||
/deno_webgpu/ @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.
|
# 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
|
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:
|
wasm-test:
|
||||||
name: Test WebAssembly
|
name: Test WebAssembly
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -378,6 +424,9 @@ jobs:
|
|||||||
|
|
||||||
cargo xtask test --llvm-cov
|
cargo xtask test --llvm-cov
|
||||||
|
|
||||||
|
- name: check naga snapshots
|
||||||
|
run: git diff --exit-code -- naga/tests/out
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
if: always() # We want artifacts even if the tests fail.
|
if: always() # We want artifacts even if the tests fail.
|
||||||
with:
|
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:
|
on:
|
||||||
push:
|
push:
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# Lazy jobs running on master post merges.
|
# Lazy jobs running on trunk post merges.
|
||||||
name: lazy
|
name: Lazy
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches: [master]
|
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/lazy.yml'
|
- '.github/workflows/lazy.yml'
|
||||||
|
push:
|
||||||
|
branches: [trunk]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CARGO_INCREMENTAL: false
|
CARGO_INCREMENTAL: false
|
||||||
@ -14,41 +14,50 @@ env:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
parse-dota2:
|
parse-dota2:
|
||||||
name: Parse Dota2 shaders
|
name: "Validate Shaders: Dota2"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- run: mkdir data
|
- run: mkdir naga/data
|
||||||
|
|
||||||
- name: Download shaders
|
- 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
|
- name: Unpack shaders
|
||||||
run: cd data && unzip all.zip
|
run: |
|
||||||
|
cd naga/data
|
||||||
|
unzip all.zip
|
||||||
|
|
||||||
- name: Build Naga
|
- name: Build Naga
|
||||||
run: cargo build --release --bin naga
|
run: |
|
||||||
|
cd naga
|
||||||
|
cargo build --release -p naga-cli
|
||||||
|
|
||||||
- name: Convert shaders
|
- 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:
|
parse-vulkan-tutorial-shaders:
|
||||||
name: Parse Sascha Willems Vulkan tutorial shaders
|
name: "Validate Shaders: Sascha Willems Vulkan Tutorial"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Download shaders
|
- 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
|
- name: Build Naga
|
||||||
run: cargo build --release --bin naga
|
run: |
|
||||||
|
cd naga
|
||||||
|
cargo build --release -p naga-cli
|
||||||
|
|
||||||
- name: Convert metal shaders
|
- name: Convert metal shaders
|
||||||
run: |
|
run: |
|
||||||
# No needed to stop workflow if we can't validate one file
|
# No needed to stop workflow if we can't validate one file
|
||||||
set +e
|
set +e
|
||||||
|
cd naga
|
||||||
touch counter
|
touch counter
|
||||||
SUCCESS_RESULT_COUNT=0
|
SUCCESS_RESULT_COUNT=0
|
||||||
FILE_COUNT=0
|
FILE_COUNT=0
|
||||||
@ -57,7 +66,7 @@ jobs:
|
|||||||
do
|
do
|
||||||
echo "Convert: $fname"
|
echo "Convert: $fname"
|
||||||
FILE_COUNT=$((FILE_COUNT+1))
|
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
|
if [[ $? -eq 0 ]]; then
|
||||||
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
||||||
fi
|
fi
|
||||||
@ -66,26 +75,30 @@ jobs:
|
|||||||
cat counter
|
cat counter
|
||||||
|
|
||||||
dneto0_spirv-samples:
|
dneto0_spirv-samples:
|
||||||
name: Parse dneto0 spirv-samples
|
name: "Validate Shaders: dneto0 spirv-samples"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Download shaders
|
- 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
|
- name: Build Naga
|
||||||
run: cargo build --release --bin naga
|
run: |
|
||||||
|
cargo build --release -p naga-cli
|
||||||
|
|
||||||
- name: Install spirv-tools
|
- name: Install spirv-tools
|
||||||
run: |
|
run: |
|
||||||
wget -q https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/linux-clang-release/continuous/1489/20210629-121459/install.tgz
|
cd naga
|
||||||
tar zxf install.tgz
|
wget -q https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/linux-clang-release/continuous/1489/20210629-121459/install.tgz
|
||||||
./install/bin/spirv-as --version
|
tar zxf install.tgz
|
||||||
|
./install/bin/spirv-as --version
|
||||||
|
|
||||||
- name: Compile spv from spvasm
|
- name: Compile spv from spvasm
|
||||||
run: |
|
run: |
|
||||||
cd spirv-samples
|
cd naga/spirv-samples
|
||||||
mkdir -p spv
|
mkdir -p spv
|
||||||
|
|
||||||
find "./spvasm" -name '*.spvasm' | while read fname;
|
find "./spvasm" -name '*.spvasm' | while read fname;
|
||||||
@ -97,7 +110,7 @@ jobs:
|
|||||||
- name: Validate spv and generate wgsl
|
- name: Validate spv and generate wgsl
|
||||||
run: |
|
run: |
|
||||||
set +e
|
set +e
|
||||||
cd spirv-samples
|
cd naga/spirv-samples
|
||||||
SUCCESS_RESULT_COUNT=0
|
SUCCESS_RESULT_COUNT=0
|
||||||
FILE_COUNT=0
|
FILE_COUNT=0
|
||||||
mkdir -p spv
|
mkdir -p spv
|
||||||
@ -111,7 +124,7 @@ jobs:
|
|||||||
do
|
do
|
||||||
echo "Convert: $fname"
|
echo "Convert: $fname"
|
||||||
FILE_COUNT=$((FILE_COUNT+1))
|
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
|
if [[ $? -eq 0 ]]; then
|
||||||
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
||||||
fi
|
fi
|
||||||
@ -122,7 +135,7 @@ jobs:
|
|||||||
- name: Validate output wgsl
|
- name: Validate output wgsl
|
||||||
run: |
|
run: |
|
||||||
set +e
|
set +e
|
||||||
cd spirv-samples
|
cd naga/spirv-samples
|
||||||
SUCCESS_RESULT_COUNT=0
|
SUCCESS_RESULT_COUNT=0
|
||||||
FILE_COUNT=0
|
FILE_COUNT=0
|
||||||
|
|
||||||
@ -133,30 +146,10 @@ jobs:
|
|||||||
do
|
do
|
||||||
echo "Validate: $fname"
|
echo "Validate: $fname"
|
||||||
FILE_COUNT=$((FILE_COUNT+1))
|
FILE_COUNT=$((FILE_COUNT+1))
|
||||||
../target/release/naga --validate 27 $(realpath ${fname})
|
../../target/release/naga --validate 27 $(realpath ${fname})
|
||||||
if [[ $? -eq 0 ]]; then
|
if [[ $? -eq 0 ]]; then
|
||||||
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
SUCCESS_RESULT_COUNT=$((SUCCESS_RESULT_COUNT + 1))
|
||||||
fi
|
fi
|
||||||
echo "Result: $(expr $FILE_COUNT - $SUCCESS_RESULT_COUNT) / $FILE_COUNT" > counter
|
echo "Result: $(expr $FILE_COUNT - $SUCCESS_RESULT_COUNT) / $FILE_COUNT" > counter
|
||||||
done
|
done
|
||||||
cat counter
|
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:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: ["*"]
|
branches:
|
||||||
pull_request:
|
- trunk
|
||||||
merge_group:
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CARGO_INCREMENTAL: false
|
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
|
Please add your PR to the changelog! Choose from a top level and bottom
|
||||||
level category, then write your changes like follows:
|
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:
|
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
|
- Hal
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
For naga changelogs at or before v0.14.0. See [naga's changelog](naga/CHANGELOG.md).
|
||||||
|
|
||||||
## v0.18.0 (2023-10-25)
|
## v0.18.0 (2023-10-25)
|
||||||
|
|
||||||
### Desktop OpenGL 3.3+ Support on Windows
|
### Desktop OpenGL 3.3+ Support on Windows
|
||||||
|
342
Cargo.lock
generated
342
Cargo.lock
generated
@ -93,6 +93,12 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "anes"
|
||||||
|
version = "0.1.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anstream"
|
name = "anstream"
|
||||||
version = "0.6.4"
|
version = "0.6.4"
|
||||||
@ -147,6 +153,46 @@ version = "1.0.75"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
|
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]]
|
[[package]]
|
||||||
name = "arrayref"
|
name = "arrayref"
|
||||||
version = "0.3.7"
|
version = "0.3.7"
|
||||||
@ -254,6 +300,15 @@ dependencies = [
|
|||||||
"vsimd",
|
"vsimd",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bincode"
|
||||||
|
version = "1.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bit-set"
|
name = "bit-set"
|
||||||
version = "0.5.3"
|
version = "0.5.3"
|
||||||
@ -281,6 +336,7 @@ version = "2.4.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
|
checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"arbitrary",
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -361,6 +417,12 @@ dependencies = [
|
|||||||
"vec_map",
|
"vec_map",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cast"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.0.83"
|
version = "1.0.83"
|
||||||
@ -392,6 +454,33 @@ dependencies = [
|
|||||||
"libc",
|
"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]]
|
[[package]]
|
||||||
name = "clap"
|
name = "clap"
|
||||||
version = "4.4.7"
|
version = "4.4.7"
|
||||||
@ -601,6 +690,66 @@ dependencies = [
|
|||||||
"cfg-if",
|
"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]]
|
[[package]]
|
||||||
name = "crossbeam-utils"
|
name = "crossbeam-utils"
|
||||||
version = "0.8.16"
|
version = "0.8.16"
|
||||||
@ -876,6 +1025,17 @@ dependencies = [
|
|||||||
"deno_core",
|
"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]]
|
[[package]]
|
||||||
name = "derive_more"
|
name = "derive_more"
|
||||||
version = "0.99.17"
|
version = "0.99.17"
|
||||||
@ -889,6 +1049,12 @@ dependencies = [
|
|||||||
"syn 1.0.109",
|
"syn 1.0.109",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "diff"
|
||||||
|
version = "0.1.13"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dispatch"
|
name = "dispatch"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
@ -1468,6 +1634,12 @@ dependencies = [
|
|||||||
"bitflags 2.4.1",
|
"bitflags 2.4.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "half"
|
||||||
|
version = "1.8.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hashbrown"
|
name = "hashbrown"
|
||||||
version = "0.14.2"
|
version = "0.14.2"
|
||||||
@ -1511,6 +1683,14 @@ version = "0.2.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
|
checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hlsl-snapshots"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"nanoserde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "home"
|
name = "home"
|
||||||
version = "0.5.5"
|
version = "0.5.5"
|
||||||
@ -1568,6 +1748,7 @@ version = "2.0.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
|
checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"arbitrary",
|
||||||
"equivalent",
|
"equivalent",
|
||||||
"hashbrown",
|
"hashbrown",
|
||||||
"serde",
|
"serde",
|
||||||
@ -1596,6 +1777,15 @@ dependencies = [
|
|||||||
"windows-sys 0.48.0",
|
"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]]
|
[[package]]
|
||||||
name = "itoa"
|
name = "itoa"
|
||||||
version = "1.0.9"
|
version = "1.0.9"
|
||||||
@ -1774,6 +1964,15 @@ dependencies = [
|
|||||||
"autocfg",
|
"autocfg",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memoffset"
|
||||||
|
version = "0.9.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "metal"
|
name = "metal"
|
||||||
version = "0.27.0"
|
version = "0.27.0"
|
||||||
@ -1820,25 +2019,44 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "naga"
|
name = "naga"
|
||||||
version = "0.14.0"
|
version = "0.14.0"
|
||||||
source = "git+https://github.com/gfx-rs/naga?rev=92e41b43e437146b5d946eb238de963be1168016#92e41b43e437146b5d946eb238de963be1168016"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"arbitrary",
|
||||||
|
"bincode",
|
||||||
"bit-set",
|
"bit-set",
|
||||||
"bitflags 2.4.1",
|
"bitflags 2.4.1",
|
||||||
"codespan-reporting",
|
"codespan-reporting",
|
||||||
|
"criterion",
|
||||||
|
"diff",
|
||||||
|
"env_logger",
|
||||||
"hexf-parse",
|
"hexf-parse",
|
||||||
|
"hlsl-snapshots",
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"log",
|
"log",
|
||||||
"num-traits 0.2.17",
|
"num-traits 0.2.17",
|
||||||
"petgraph",
|
"petgraph",
|
||||||
"pp-rs",
|
"pp-rs",
|
||||||
|
"ron",
|
||||||
|
"rspirv",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"serde",
|
"serde",
|
||||||
"spirv",
|
"spirv 0.2.0+1.5.4",
|
||||||
"termcolor",
|
"termcolor",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"unicode-xid",
|
"unicode-xid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "naga-cli"
|
||||||
|
version = "0.14.0"
|
||||||
|
dependencies = [
|
||||||
|
"argh",
|
||||||
|
"bincode",
|
||||||
|
"codespan-reporting",
|
||||||
|
"env_logger",
|
||||||
|
"log",
|
||||||
|
"naga",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nanorand"
|
name = "nanorand"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
@ -1848,6 +2066,21 @@ dependencies = [
|
|||||||
"getrandom 0.2.10",
|
"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]]
|
[[package]]
|
||||||
name = "ndk"
|
name = "ndk"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
@ -1915,7 +2148,7 @@ dependencies = [
|
|||||||
"bitflags 1.3.2",
|
"bitflags 1.3.2",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
"memoffset",
|
"memoffset 0.6.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1928,7 +2161,7 @@ dependencies = [
|
|||||||
"bitflags 1.3.2",
|
"bitflags 1.3.2",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
"memoffset",
|
"memoffset 0.6.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2139,6 +2372,12 @@ version = "1.18.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
|
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "oorandom"
|
||||||
|
version = "11.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "orbclient"
|
name = "orbclient"
|
||||||
version = "0.3.46"
|
version = "0.3.46"
|
||||||
@ -2281,6 +2520,34 @@ dependencies = [
|
|||||||
"winit 0.28.7",
|
"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]]
|
[[package]]
|
||||||
name = "pmutil"
|
name = "pmutil"
|
||||||
version = "0.6.1"
|
version = "0.6.1"
|
||||||
@ -2452,6 +2719,26 @@ version = "0.5.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
|
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]]
|
[[package]]
|
||||||
name = "redox_syscall"
|
name = "redox_syscall"
|
||||||
version = "0.3.5"
|
version = "0.3.5"
|
||||||
@ -2517,6 +2804,15 @@ dependencies = [
|
|||||||
"serde_derive",
|
"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]]
|
[[package]]
|
||||||
name = "rustc-demangle"
|
name = "rustc-demangle"
|
||||||
version = "0.1.23"
|
version = "0.1.23"
|
||||||
@ -2581,6 +2877,15 @@ dependencies = [
|
|||||||
"bytemuck",
|
"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]]
|
[[package]]
|
||||||
name = "scoped-tls"
|
name = "scoped-tls"
|
||||||
version = "1.0.1"
|
version = "1.0.1"
|
||||||
@ -2828,6 +3133,15 @@ checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 1.3.2",
|
"bitflags 1.3.2",
|
||||||
"num-traits 0.2.17",
|
"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]]
|
[[package]]
|
||||||
@ -2980,6 +3294,16 @@ dependencies = [
|
|||||||
"strict-num",
|
"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]]
|
[[package]]
|
||||||
name = "tinyvec"
|
name = "tinyvec"
|
||||||
version = "1.6.0"
|
version = "1.6.0"
|
||||||
@ -3205,6 +3529,16 @@ version = "1.1.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
|
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]]
|
[[package]]
|
||||||
name = "wasi"
|
name = "wasi"
|
||||||
version = "0.9.0+wasi-snapshot-preview1"
|
version = "0.9.0+wasi-snapshot-preview1"
|
||||||
|
21
Cargo.toml
21
Cargo.toml
@ -3,27 +3,33 @@ resolver = "2"
|
|||||||
members = [
|
members = [
|
||||||
"cts_runner",
|
"cts_runner",
|
||||||
"deno_webgpu",
|
"deno_webgpu",
|
||||||
"player",
|
|
||||||
|
# default members
|
||||||
"examples/*",
|
"examples/*",
|
||||||
"wgpu",
|
"naga",
|
||||||
|
"naga-cli",
|
||||||
|
"player",
|
||||||
|
"tests",
|
||||||
"wgpu-core",
|
"wgpu-core",
|
||||||
"wgpu-hal",
|
"wgpu-hal",
|
||||||
"wgpu-info",
|
"wgpu-info",
|
||||||
"wgpu-macros",
|
"wgpu-macros",
|
||||||
"wgpu-types",
|
"wgpu-types",
|
||||||
"tests",
|
"wgpu",
|
||||||
]
|
]
|
||||||
exclude = []
|
exclude = []
|
||||||
default-members = [
|
default-members = [
|
||||||
"examples/*",
|
"examples/*",
|
||||||
|
"naga",
|
||||||
|
"naga-cli",
|
||||||
"player",
|
"player",
|
||||||
"wgpu",
|
"tests",
|
||||||
"wgpu-core",
|
"wgpu-core",
|
||||||
"wgpu-hal",
|
"wgpu-hal",
|
||||||
"wgpu-info",
|
"wgpu-info",
|
||||||
"wgpu-macros",
|
"wgpu-macros",
|
||||||
"wgpu-types",
|
"wgpu-types",
|
||||||
"tests",
|
"wgpu",
|
||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
@ -52,8 +58,7 @@ path = "./wgpu-hal"
|
|||||||
version = "0.18.0"
|
version = "0.18.0"
|
||||||
|
|
||||||
[workspace.dependencies.naga]
|
[workspace.dependencies.naga]
|
||||||
git = "https://github.com/gfx-rs/naga"
|
path = "./naga"
|
||||||
rev = "92e41b43e437146b5d946eb238de963be1168016"
|
|
||||||
version = "0.14.0"
|
version = "0.14.0"
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
@ -161,7 +166,6 @@ tokio = "1.33.0"
|
|||||||
termcolor = "1.3.0"
|
termcolor = "1.3.0"
|
||||||
|
|
||||||
[patch."https://github.com/gfx-rs/naga"]
|
[patch."https://github.com/gfx-rs/naga"]
|
||||||
#naga = { path = "../naga" }
|
|
||||||
|
|
||||||
[patch."https://github.com/zakarumych/gpu-descriptor"]
|
[patch."https://github.com/zakarumych/gpu-descriptor"]
|
||||||
#gpu-descriptor = { path = "../gpu-descriptor/gpu-descriptor" }
|
#gpu-descriptor = { path = "../gpu-descriptor/gpu-descriptor" }
|
||||||
@ -170,7 +174,6 @@ termcolor = "1.3.0"
|
|||||||
#gpu-alloc = { path = "../gpu-alloc/gpu-alloc" }
|
#gpu-alloc = { path = "../gpu-alloc/gpu-alloc" }
|
||||||
|
|
||||||
[patch.crates-io]
|
[patch.crates-io]
|
||||||
#naga = { path = "../naga" }
|
|
||||||
#glow = { path = "../glow" }
|
#glow = { path = "../glow" }
|
||||||
#d3d12 = { path = "../d3d12-rs" }
|
#d3d12 = { path = "../d3d12-rs" }
|
||||||
#web-sys = { path = "../wasm-bindgen/crates/web-sys" }
|
#web-sys = { path = "../wasm-bindgen/crates/web-sys" }
|
||||||
|
@ -18,7 +18,7 @@ argh = "0.1.5"
|
|||||||
|
|
||||||
[dependencies.naga]
|
[dependencies.naga]
|
||||||
version = "0.14"
|
version = "0.14"
|
||||||
path = "../"
|
path = "../naga"
|
||||||
features = [
|
features = [
|
||||||
"validate",
|
"validate",
|
||||||
"compact",
|
"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
|
# Change Log
|
||||||
|
|
||||||
|
For changelogs after v0.14, see [the wgpu changelog](../CHANGELOG.md).
|
||||||
|
|
||||||
## v0.14 (2023-10-25)
|
## v0.14 (2023-10-25)
|
||||||
|
|
||||||
#### GENERAL
|
#### GENERAL
|
||||||
|
@ -15,12 +15,6 @@ rust-version = "1.65"
|
|||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
all-features = true
|
all-features = true
|
||||||
|
|
||||||
[profile.release]
|
|
||||||
panic = "abort"
|
|
||||||
|
|
||||||
[profile.dev]
|
|
||||||
panic = "abort"
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
clone = []
|
clone = []
|
||||||
@ -65,9 +59,11 @@ pp-rs = { version = "0.2.1", optional = true }
|
|||||||
hexf-parse = { version = "0.2.1", optional = true }
|
hexf-parse = { version = "0.2.1", optional = true }
|
||||||
unicode-xid = { version = "0.2.3", 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]
|
[dev-dependencies]
|
||||||
bincode = "1"
|
bincode = "1"
|
||||||
criterion = { version = "0.5", features = [] }
|
|
||||||
diff = "0.1"
|
diff = "0.1"
|
||||||
env_logger = "0.10"
|
env_logger = "0.10"
|
||||||
hlsl-snapshots = { path = "./hlsl-snapshots" }
|
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" }
|
rspirv = { version = "0.11", git = "https://github.com/gfx-rs/rspirv", rev = "b969f175d5663258b4891e44b76c1544da9661ab" }
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
spirv = { version = "0.2", features = ["deserialize"] }
|
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)]
|
#![allow(clippy::needless_borrowed_reference)]
|
||||||
|
|
||||||
use criterion::*;
|
use criterion::*;
|
||||||
|
@ -1 +0,0 @@
|
|||||||
comment: false
|
|
@ -4,6 +4,7 @@ version = "0.0.0"
|
|||||||
authors = ["Automatically generated"]
|
authors = ["Automatically generated"]
|
||||||
publish = false
|
publish = false
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
license = "MIT OR Apache-2.0"
|
||||||
|
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
cargo-fuzz = true
|
cargo-fuzz = true
|
||||||
|
@ -3,6 +3,7 @@ name = "hlsl-snapshots"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
publish = false
|
publish = false
|
||||||
|
license = "MIT OR Apache-2.0"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1"
|
anyhow = "1"
|
||||||
|
@ -156,6 +156,7 @@ pub struct InlineSampler {
|
|||||||
|
|
||||||
impl Eq for InlineSampler {}
|
impl Eq for InlineSampler {}
|
||||||
|
|
||||||
|
#[allow(renamed_and_removed_lints)]
|
||||||
#[allow(clippy::derive_hash_xor_eq)]
|
#[allow(clippy::derive_hash_xor_eq)]
|
||||||
impl std::hash::Hash for InlineSampler {
|
impl std::hash::Hash for InlineSampler {
|
||||||
fn hash<H: std::hash::Hasher>(&self, hasher: &mut H) {
|
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(
|
pub(crate) fn eval_expr_to_literal(
|
||||||
&self,
|
&self,
|
||||||
handle: crate::Handle<crate::Expression>,
|
handle: crate::Handle<crate::Expression>,
|
||||||
|
@ -189,7 +189,10 @@ impl<E> WithSpan<E> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Add a new span with description.
|
/// 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
|
pub fn with_span<S>(mut self, span: Span, description: S) -> Self
|
||||||
where
|
where
|
||||||
S: ToString,
|
S: ToString,
|
||||||
@ -249,6 +252,7 @@ impl<E> WithSpan<E> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(feature = "span"))]
|
#[cfg(not(feature = "span"))]
|
||||||
|
#[allow(clippy::missing_const_for_fn)]
|
||||||
/// Return a [`SourceLocation`] for our first span, if we have one.
|
/// Return a [`SourceLocation`] for our first span, if we have one.
|
||||||
pub fn location(&self, _source: &str) -> Option<SourceLocation> {
|
pub fn location(&self, _source: &str) -> Option<SourceLocation> {
|
||||||
None
|
None
|
||||||
|
@ -143,8 +143,8 @@ impl Input {
|
|||||||
.expect("all files in snapshot input directory should have extensions");
|
.expect("all files in snapshot input directory should have extensions");
|
||||||
let input = Input::new(
|
let input = Input::new(
|
||||||
Some(&subdirectory),
|
Some(&subdirectory),
|
||||||
&file_name.file_stem().unwrap().to_str().unwrap(),
|
file_name.file_stem().unwrap().to_str().unwrap(),
|
||||||
&extension.to_str().unwrap(),
|
extension.to_str().unwrap(),
|
||||||
);
|
);
|
||||||
input
|
input
|
||||||
}),
|
}),
|
||||||
@ -232,10 +232,8 @@ impl Input {
|
|||||||
let mut param_path = self.input_path();
|
let mut param_path = self.input_path();
|
||||||
param_path.set_extension("param.ron");
|
param_path.set_extension("param.ron");
|
||||||
match fs::read_to_string(¶m_path) {
|
match fs::read_to_string(¶m_path) {
|
||||||
Ok(string) => ron::de::from_str(&string).expect(&format!(
|
Ok(string) => ron::de::from_str(&string)
|
||||||
"Couldn't parse param file: {}",
|
.unwrap_or_else(|_| panic!("Couldn't parse param file: {}", param_path.display())),
|
||||||
param_path.display()
|
|
||||||
)),
|
|
||||||
Err(_) => Parameters::default(),
|
Err(_) => Parameters::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -277,10 +275,7 @@ fn check_targets(
|
|||||||
|
|
||||||
let info = naga::valid::Validator::new(naga::valid::ValidationFlags::all(), capabilities)
|
let info = naga::valid::Validator::new(naga::valid::ValidationFlags::all(), capabilities)
|
||||||
.validate(module)
|
.validate(module)
|
||||||
.expect(&format!(
|
.unwrap_or_else(|_| panic!("Naga module validation failed on test '{}'", name.display()));
|
||||||
"Naga module validation failed on test '{}'",
|
|
||||||
name.display()
|
|
||||||
));
|
|
||||||
|
|
||||||
#[cfg(feature = "compact")]
|
#[cfg(feature = "compact")]
|
||||||
let info = {
|
let info = {
|
||||||
@ -297,10 +292,12 @@ fn check_targets(
|
|||||||
|
|
||||||
naga::valid::Validator::new(naga::valid::ValidationFlags::all(), capabilities)
|
naga::valid::Validator::new(naga::valid::ValidationFlags::all(), capabilities)
|
||||||
.validate(module)
|
.validate(module)
|
||||||
.expect(&format!(
|
.unwrap_or_else(|_| {
|
||||||
"Post-compaction module validation failed on test '{}'",
|
panic!(
|
||||||
name.display()
|
"Post-compaction module validation failed on test '{}'",
|
||||||
))
|
name.display()
|
||||||
|
)
|
||||||
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(feature = "serialize")]
|
#[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")]
|
#[cfg(feature = "wgsl-out")]
|
||||||
|
@ -190,7 +190,7 @@ fn run(args: Args) -> anyhow::Result<()> {
|
|||||||
ValidateSubcommand::Wgsl => {
|
ValidateSubcommand::Wgsl => {
|
||||||
visit_files(snapshots_base_out, "wgsl/*.wgsl", |path| {
|
visit_files(snapshots_base_out, "wgsl/*.wgsl", |path| {
|
||||||
ack_visiting(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) => {
|
ValidateSubcommand::Hlsl(cmd) => {
|
||||||
|
@ -79,8 +79,7 @@ smallvec = "1"
|
|||||||
thiserror = "1"
|
thiserror = "1"
|
||||||
|
|
||||||
[dependencies.naga]
|
[dependencies.naga]
|
||||||
git = "https://github.com/gfx-rs/naga"
|
path = "../naga"
|
||||||
rev = "92e41b43e437146b5d946eb238de963be1168016"
|
|
||||||
version = "0.14.0"
|
version = "0.14.0"
|
||||||
features = ["clone", "span", "validate"]
|
features = ["clone", "span", "validate"]
|
||||||
|
|
||||||
|
@ -165,15 +165,13 @@ libc = "0.2"
|
|||||||
android_system_properties = "0.1.1"
|
android_system_properties = "0.1.1"
|
||||||
|
|
||||||
[dependencies.naga]
|
[dependencies.naga]
|
||||||
git = "https://github.com/gfx-rs/naga"
|
path = "../naga"
|
||||||
rev = "92e41b43e437146b5d946eb238de963be1168016"
|
|
||||||
version = "0.14.0"
|
version = "0.14.0"
|
||||||
features = ["clone"]
|
features = ["clone"]
|
||||||
|
|
||||||
# DEV dependencies
|
# DEV dependencies
|
||||||
[dev-dependencies.naga]
|
[dev-dependencies.naga]
|
||||||
git = "https://github.com/gfx-rs/naga"
|
path = "../naga"
|
||||||
rev = "92e41b43e437146b5d946eb238de963be1168016"
|
|
||||||
version = "0.14.0"
|
version = "0.14.0"
|
||||||
features = ["wgsl-in"]
|
features = ["wgsl-in"]
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ pub fn run_tests(mut args: Arguments) -> anyhow::Result<()> {
|
|||||||
|
|
||||||
xshell::cmd!(
|
xshell::cmd!(
|
||||||
shell,
|
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())
|
.args(args.finish())
|
||||||
.quiet()
|
.quiet()
|
||||||
|
Loading…
Reference in New Issue
Block a user