将当前文件夹着色器全部编译spv,并输出到out文件夹
.bat脚本
@echo off
if not exist out (md out)
for %%i in (*.frag,*.vert,*.geom,*.comp,*.rchit,*.rahit,*.rmiss,*.rgen) ^
do (%VULKAN_SDK%\Bin\glslangValidator.exe --target-env vulkan1.3 -V %%i -o %cd%\out\%%i.spv)
pause
.ps1 脚本
$location=Get-Location
$glslang=$env:VULKAN_SDK +"\Bin\glslangValidator.exe"
$filter_list=Write-Output *.frag *.vert *.geom *.comp *.rchit *.rahit *.rmiss *.rgen #文件尾筛选器
if(!(Test-Path .\out)){ New-Item -Path . -Name out -ItemType directory}
Get-ChildItem $filter_list|ForEach-Object{
$pinfo = [System.Diagnostics.ProcessStartInfo]::new()
$pinfo.WorkingDirectory=$location_path.Path
$pinfo.FileName =$glslang
$pinfo.Arguments = " -V $($_.Name) -o .\out\$($_.Name).spv --target-env vulkan1.3"
$pinfo.RedirectStandardOutput = $true
$pinfo.UseShellExecute = $false
$p =[System.Diagnostics.Process]::new()
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$p.WaitForExit()
$stdout = $p.StandardOutput.ReadToEnd()
Write-Host "out_info: $stdout"
}
Get-ChildItem .\out\*.spv
pause