-
Notifications
You must be signed in to change notification settings - Fork 972
152 lines (120 loc) · 4.04 KB
/
shaders.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: Shaders
on:
push:
branches-ignore: [
# We don't need to run on dependabot PRs.
"dependabot/**",
# This is the branch the merge queue creates.
"gh-readonly-queue/**",
]
tags: [v0.*]
pull_request:
merge_group:
env:
# Sourced from https://vulkan.lunarg.com/sdk/home#linux
#
# We don't include the 4th version number, as it's not used in any URL.
VULKAN_SDK_VERSION: "1.4.304"
# Sourced from https://github.com/microsoft/DirectXShaderCompiler/releases
#
# Must also be changed in ci.yaml
DXC_RELEASE: "v1.8.2407"
DXC_FILENAME: "dxc_2024_07_31_clang_cl.zip"
jobs:
naga-validate-windows:
name: "Validate: HLSL"
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: debug symbols to line-tables-only
shell: bash
run: |
mkdir -p .cargo
cat <<EOF >> .cargo/config.toml
[profile.dev]
debug = "line-tables-only"
EOF
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
naga/xtask -> naga/xtask/target
# We must have the FXC job before the DXC job, so the DXC PATH has priority
# over the FXC PATH. This is because the windows kits also include an older
# version of DXC, which we don't want to use.
- 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
- name: Setup DXC
shell: bash
run: |
set -e
curl.exe -L --retry 5 https://github.com/microsoft/DirectXShaderCompiler/releases/download/$DXC_RELEASE/$DXC_FILENAME -o dxc.zip
7z.exe e dxc.zip -odxc bin/x64/{dxc.exe,dxcompiler.dll,dxil.dll}
# We need to use cygpath to convert PWD to a windows path as we're using bash.
cygpath --windows "$PWD/dxc" >> "$GITHUB_PATH"
- name: Validate
shell: bash
run: |
set -e
dxc --version
cd naga
cargo xtask validate hlsl dxc
cargo xtask validate hlsl fxc
naga-validate-macos:
name: "Validate: MSL"
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: debug symbols to line-tables-only
shell: bash
run: |
mkdir -p .cargo
cat <<EOF >> .cargo/config.toml
[profile.dev]
debug = "line-tables-only"
EOF
- 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-24.04
steps:
- uses: actions/checkout@v4
- name: install vulkan sdk
shell: bash
run: |
set -e
sudo apt-get update -y -qq
# vulkan sdk
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-$VULKAN_SDK_VERSION-noble.list https://packages.lunarg.com/vulkan/$VULKAN_SDK_VERSION/lunarg-vulkan-$VULKAN_SDK_VERSION-noble.list
sudo apt-get update
sudo apt install -y vulkan-sdk
- name: Install graphviz
run: sudo apt-get install graphviz
- name: debug symbols to line-tables-only
shell: bash
run: |
mkdir -p .cargo
cat <<EOF >> .cargo/config.toml
[profile.dev]
debug = "line-tables-only"
EOF
- 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