Skip to content

Commit e1a804e

Browse files
committed
Update spirv-tools
1 parent e3ef281 commit e1a804e

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

build.cake

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,11 +254,30 @@ Task("Download-SPIRV-Cross-ISPC")
254254

255255
Task("Download-SPIRV-Tools")
256256
.Does(() => {
257+
// Hack to get the actual zip URL from the intermediate download page, which contains this HTML:
258+
// <meta http-equiv="refresh" content="0; url=https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/windows-msvc-2017-release/continuous/1336/20201217-105132/install.zip" />
259+
var downloadPageFileName = $"./build/spirv-tools-trunk.html";
260+
DownloadFile(
261+
"https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2017_release.html",
262+
downloadPageFileName);
263+
var downloadPageHtml = System.IO.File.ReadAllText(downloadPageFileName);
264+
var downloadPageUrl = System.Text.RegularExpressions.Regex.Match(downloadPageHtml, "url=([\\s\\S]+)\"").Groups[1].Value;
265+
257266
DownloadAndUnzipCompiler(
258-
"https://github.com/KhronosGroup/SPIRV-Tools/releases/download/master-tot/SPIRV-Tools-master-windows-x64-Release.zip",
267+
downloadPageUrl,
259268
"spirv-tools",
260269
"trunk",
261270
false,
271+
"install/bin/*.*");
272+
});
273+
274+
Task("Download-SPIRV-Tools-Legacy")
275+
.Does(() => {
276+
DownloadAndUnzipCompiler(
277+
"https://github.com/KhronosGroup/SPIRV-Tools/releases/download/master-tot/SPIRV-Tools-master-windows-x64-Release.zip",
278+
"spirv-tools-legacy",
279+
"trunk",
280+
true,
262281
"bin/*.*");
263282
});
264283

@@ -626,6 +645,7 @@ Task("Default")
626645
.IsDependentOn("Download-Mali-Offline-Compiler")
627646
.IsDependentOn("Download-SPIRV-Cross")
628647
.IsDependentOn("Download-SPIRV-Tools")
648+
.IsDependentOn("Download-SPIRV-Tools-Legacy")
629649
.IsDependentOn("Download-XShaderCompiler")
630650
.IsDependentOn("Download-SPIRV-Cross-ISPC")
631651
.IsDependentOn("Download-Slang")

src/ShaderPlayground.Core/Compilers/SpirvTools/SpirvMarkvDecoderCompiler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ internal sealed class SpirvMarkvDecoderCompiler : IShaderCompiler
1313

1414
public ShaderCompilerParameter[] Parameters { get; } =
1515
{
16-
CommonParameters.CreateVersionParameter("spirv-tools"),
16+
CommonParameters.CreateVersionParameter("spirv-tools-legacy"),
1717
new ShaderCompilerParameter("Model", "Model", ShaderCompilerParameterType.ComboBox, ModelOptions, defaultValue: "shader_lite"),
1818
CommonParameters.CreateOutputParameter(new[] { LanguageNames.SpirV })
1919
};
@@ -34,7 +34,7 @@ public ShaderCompilerResult Compile(ShaderCode shaderCode, ShaderCompilerArgumen
3434
var outputPath = $"{tempFile.FilePath}.out";
3535

3636
ProcessHelper.Run(
37-
CommonParameters.GetBinaryPath("spirv-tools", arguments, "spirv-markv.exe"),
37+
CommonParameters.GetBinaryPath("spirv-tools-legacy", arguments, "spirv-markv.exe"),
3838
$"d --comments --model={arguments.GetString("Model")} -o \"{outputPath}\" \"{tempFile.FilePath}\"",
3939
out var stdOutput,
4040
out var stdError);

src/ShaderPlayground.Core/Compilers/SpirvTools/SpirvMarkvEncoderCompiler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ internal sealed class SpirvMarkvEncoderCompiler : IShaderCompiler
1313

1414
public ShaderCompilerParameter[] Parameters { get; } =
1515
{
16-
CommonParameters.CreateVersionParameter("spirv-tools"),
16+
CommonParameters.CreateVersionParameter("spirv-tools-legacy"),
1717
new ShaderCompilerParameter("Model", "Model", ShaderCompilerParameterType.ComboBox, ModelOptions, defaultValue: "shader_lite"),
1818
CommonParameters.CreateOutputParameter(new[] { LanguageNames.Markv })
1919
};
@@ -34,7 +34,7 @@ public ShaderCompilerResult Compile(ShaderCode shaderCode, ShaderCompilerArgumen
3434
var outputPath = $"{tempFile.FilePath}.out";
3535

3636
ProcessHelper.Run(
37-
CommonParameters.GetBinaryPath("spirv-tools", arguments, "spirv-markv.exe"),
37+
CommonParameters.GetBinaryPath("spirv-tools-legacy", arguments, "spirv-markv.exe"),
3838
$"e --comments --model={arguments.GetString("Model")} -o \"{outputPath}\" \"{tempFile.FilePath}\"",
3939
out var stdOutput,
4040
out var stdError);

src/ShaderPlayground.Core/Compilers/SpirvTools/SpirvStatsCompiler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ internal sealed class SpirvStatsCompiler : IShaderCompiler
1313

1414
public ShaderCompilerParameter[] Parameters { get; } =
1515
{
16-
CommonParameters.CreateVersionParameter("spirv-tools")
16+
CommonParameters.CreateVersionParameter("spirv-tools-legacy")
1717
};
1818

1919
public ShaderCompilerResult Compile(ShaderCode shaderCode, ShaderCompilerArguments arguments)
2020
{
2121
using (var tempFile = TempFile.FromShaderCode(shaderCode))
2222
{
2323
ProcessHelper.Run(
24-
CommonParameters.GetBinaryPath("spirv-tools", arguments, "spirv-stats.exe"),
24+
CommonParameters.GetBinaryPath("spirv-tools-legacy", arguments, "spirv-stats.exe"),
2525
$"\"{tempFile.FilePath}\"",
2626
out var stdOutput,
2727
out var _);

0 commit comments

Comments
 (0)