Skip to content

Commit 685c79a

Browse files
authored
Upgrade SPIRV-Tools prebuild to 2022-04-14 (#867)
For Linux and Windows, Mac CI uses latest installed from brew. Also added comment about how/where to get the download link for next upgrade. Resolves: #866
1 parent 0cd30c2 commit 685c79a

File tree

3 files changed

+44
-8
lines changed

3 files changed

+44
-8
lines changed

.github/workflows/ci.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
target: aarch64-linux-android
2323
runs-on: ${{ matrix.os }}
2424
env:
25-
spirv_tools_version: "20210805"
25+
spirv_tools_version: "20220414" # get platform-specific download link from https://github.com/KhronosGroup/SPIRV-Tools/blob/master/docs/downloads.md
2626
RUSTUP_UNPACK_RAM: "26214400"
2727
RUSTUP_IO_THREADS: "1"
2828
steps:
@@ -33,8 +33,8 @@ jobs:
3333
name: Linux - Install native dependencies
3434
run: |
3535
sudo apt install libwayland-cursor0 libxkbcommon-dev libwayland-dev
36-
mkdir "${HOME}/spirv-tools"
37-
curl -fL https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/linux-clang-release/continuous/1530/20210805-040049/install.tgz | tar -xz -C "${HOME}/spirv-tools"
36+
mkdir "${HOME}/spirv-tools"
37+
curl -fL https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/linux-clang-release/continuous/1744/20220414-060821/install.tgz | tar -xz -C "${HOME}/spirv-tools"
3838
echo "${HOME}/spirv-tools/install/bin" >> $GITHUB_PATH
3939
- if: ${{ runner.os == 'macOS' }}
4040
name: Mac - Install spirv-tools
@@ -47,7 +47,7 @@ jobs:
4747
run: |
4848
tmparch=$(mktemp)
4949
mkdir "${HOME}/spirv-tools"
50-
curl -fL -o "$tmparch" https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/windows-msvc-2017-release/continuous/1517/20210805-040116/install.zip
50+
curl -fL -o "$tmparch" https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/windows-msvc-2017-release/continuous/1732/20220414-060824/install.zip
5151
unzip "$tmparch" -d "${HOME}/spirv-tools"
5252
- if: ${{ runner.os == 'Windows' }}
5353
# Runs separately to add spir-v tools to Powershell's Path.

tests/ui/image/sample_depth_reference/sample_gradient.rs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,34 @@ pub fn main(
88
#[spirv(descriptor_set = 0, binding = 0)] image: &Image!(2D, type=f32, sampled),
99
#[spirv(descriptor_set = 1, binding = 1)] image_array: &Image!(2D, type=f32, arrayed, sampled),
1010
#[spirv(descriptor_set = 2, binding = 2)] sampler: &Sampler,
11-
#[spirv(descriptor_set = 3, binding = 3)] cubemap: &Image!(3D, type=f32, sampled),
1211
output: &mut f32,
1312
) {
1413
let v2 = glam::Vec2::new(0.0, 1.0);
1514
let v2_dx = glam::Vec2::new(0.0, 1.0);
1615
let v2_dy = glam::Vec2::new(0.0, 1.0);
1716
let v3 = glam::Vec3A::new(0.0, 0.0, 1.0);
18-
let v3_dx = glam::Vec3A::new(0.0, 1.0, 0.5);
19-
let v3_dy = glam::Vec3A::new(0.0, 1.0, 0.5);
2017
*output = image.sample_depth_reference_by_gradient(*sampler, v2, 1.0, v2_dx, v2_dy);
2118
*output += image_array.sample_depth_reference_by_gradient(*sampler, v3, 1.0, v2_dx, v2_dy);
19+
}
20+
21+
// NOTE(eddyb) this is separate because it runs afoul of this rule:
22+
// > VUID-StandaloneSpirv-OpImage-04777
23+
// > `OpImage*Dref*` instructions **must** not consume an image whose `Dim` is 3D
24+
// FIXME(eddyb) look into whether non-Vulkan `OpImage*Dref*` usage can ever be 3D
25+
#[cfg(not(any(
26+
target_env = "vulkan1.0",
27+
target_env = "vulkan1.1",
28+
target_env = "vulkan1.1spv1.4",
29+
target_env = "vulkan1.2"
30+
)))]
31+
#[spirv(fragment)]
32+
pub fn main_cubemap(
33+
#[spirv(descriptor_set = 2, binding = 2)] sampler: &Sampler,
34+
#[spirv(descriptor_set = 3, binding = 3)] cubemap: &Image!(3D, type=f32, sampled),
35+
output: &mut f32,
36+
) {
37+
let v3 = glam::Vec3A::new(0.0, 0.0, 1.0);
38+
let v3_dx = glam::Vec3A::new(0.0, 1.0, 0.5);
39+
let v3_dy = glam::Vec3A::new(0.0, 1.0, 0.5);
2240
*output += cubemap.sample_depth_reference_by_gradient(*sampler, v3, 1.0, v3_dx, v3_dy);
2341
}

tests/ui/image/sample_depth_reference/sample_lod.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,30 @@ pub fn main(
88
#[spirv(descriptor_set = 0, binding = 0)] image: &Image!(2D, type=f32, sampled),
99
#[spirv(descriptor_set = 1, binding = 1)] image_array: &Image!(2D, type=f32, arrayed, sampled),
1010
#[spirv(descriptor_set = 2, binding = 2)] sampler: &Sampler,
11-
#[spirv(descriptor_set = 3, binding = 3)] cubemap: &Image!(3D, type=f32, sampled),
1211
output: &mut f32,
1312
) {
1413
let v2 = glam::Vec2::new(0.0, 1.0);
1514
let v3 = glam::Vec3A::new(0.0, 0.0, 1.0);
1615
*output = image.sample_depth_reference_by_lod(*sampler, v2, 1.0, 0.0);
1716
*output += image_array.sample_depth_reference_by_lod(*sampler, v3, 1.0, 0.0);
17+
}
18+
19+
// NOTE(eddyb) this is separate because it runs afoul of this rule:
20+
// > VUID-StandaloneSpirv-OpImage-04777
21+
// > `OpImage*Dref*` instructions **must** not consume an image whose `Dim` is 3D
22+
// FIXME(eddyb) look into whether non-Vulkan `OpImage*Dref*` usage can ever be 3D
23+
#[cfg(not(any(
24+
target_env = "vulkan1.0",
25+
target_env = "vulkan1.1",
26+
target_env = "vulkan1.1spv1.4",
27+
target_env = "vulkan1.2"
28+
)))]
29+
#[spirv(fragment)]
30+
pub fn main_cubemap(
31+
#[spirv(descriptor_set = 2, binding = 2)] sampler: &Sampler,
32+
#[spirv(descriptor_set = 3, binding = 3)] cubemap: &Image!(3D, type=f32, sampled),
33+
output: &mut f32,
34+
) {
35+
let v3 = glam::Vec3A::new(0.0, 0.0, 1.0);
1836
*output += cubemap.sample_depth_reference_by_lod(*sampler, v3, 1.0, 0.0);
1937
}

0 commit comments

Comments
 (0)