
There is no need repeatedly downloading rust and d3d when building the docker locally Download glext.h from github Remove src directory and .git directory once compiling finished Split piglit and depq compiling out Clean middle files of piglit and depq ci/msvc: Improve fetch source of spirv_samples_source Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736>
89 lines
3.1 KiB
PowerShell
89 lines
3.1 KiB
PowerShell
# Compiling deqp
|
|
|
|
$ProgressPreference = "SilentlyContinue"
|
|
$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent
|
|
. "$MyPath\mesa_init_msvc.ps1"
|
|
|
|
$source_dir = Join-Path -Path "$PWD" -ChildPath "src"
|
|
$deqp_source = Join-Path -Path "$source_dir" -ChildPath "VK-GL-CTS"
|
|
$deqp_build = Join-Path -Path "$PWD" -ChildPath "deqp"
|
|
|
|
Write-Host "Cloning Vulkan and GL Conformance Tests at:"
|
|
Get-Date
|
|
New-Item -ItemType Directory -Path "$deqp_source" | Out-Null
|
|
Push-Location -Path $deqp_source
|
|
git init
|
|
git remote add origin https://github.com/KhronosGroup/VK-GL-CTS.git
|
|
git fetch --depth 1 origin 56114106d860c121cd6ff0c3b926ddc50c4c11fd # of branch vulkan-cts-1.3.4
|
|
if (!$?) {
|
|
Write-Host "Failed to fetch deqp repository"
|
|
Pop-Location
|
|
Exit 1
|
|
}
|
|
git checkout FETCH_HEAD
|
|
|
|
Write-Host "Fetch sources inside $deqp_source at:"
|
|
Get-Date
|
|
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
|
# libpng (sigh). The archives get their checksums checked anyway, and git
|
|
# always goes through ssh or https.
|
|
py .\external\fetch_sources.py --insecure
|
|
Pop-Location
|
|
|
|
Write-Host "Compiling deqp at:"
|
|
Get-Date
|
|
New-Item -ItemType Directory -Path "$deqp_build" | Out-Null
|
|
Push-Location -Path $deqp_build
|
|
cmake -S $($deqp_source) `
|
|
-B . `
|
|
-GNinja `
|
|
-DCMAKE_BUILD_TYPE=Release `
|
|
-DDEQP_TARGET=default && `
|
|
ninja -j32
|
|
if (!$?) {
|
|
Write-Host "Failed to compile deqp"
|
|
Pop-Location
|
|
Exit 1
|
|
}
|
|
Pop-Location
|
|
|
|
# Copy test result templates
|
|
Copy-Item -Path "$($deqp_source)\doc\testlog-stylesheet\testlog.css" -Destination $deqp_build
|
|
Copy-Item -Path "$($deqp_source)\doc\testlog-stylesheet\testlog.xsl" -Destination $deqp_build
|
|
|
|
# Copy Vulkan must-pass list
|
|
$deqp_mustpass = New-Item -ItemType Directory -Path $deqp_build -Name "mustpass"
|
|
$root_mustpass = Join-Path -Path $deqp_source -ChildPath "external\vulkancts\mustpass\main"
|
|
$files = Get-Content "$($root_mustpass)\vk-default.txt"
|
|
foreach($file in $files) {
|
|
Get-Content "$($root_mustpass)\$($file)" | Add-Content -Path "$($deqp_mustpass)\vk-main.txt"
|
|
}
|
|
|
|
Write-Host "Installing deqp-runner at:"
|
|
Get-Date
|
|
$env:Path += ";$($env:USERPROFILE)\.cargo\bin"
|
|
cargo install --git https://gitlab.freedesktop.org/anholt/deqp-runner.git --tag v0.16.1
|
|
|
|
$depsInstallPath="C:\mesa-deps"
|
|
$vk_cts_bin = "$deqp_build\external\vulkancts\modules\vulkan"
|
|
|
|
# Hard link Agility SDK into subfolder of Vulkan CTS
|
|
$agility_dest = New-Item -ItemType Directory -Path $vk_cts_bin -Name 'D3D12'
|
|
New-Item -ItemType HardLink -path $agility_dest\D3D12Core.dll -Value $depsInstallPath\bin\D3D12\D3D12Core.dll
|
|
New-Item -ItemType HardLink -path $agility_dest\d3d12SDKLayers.dll -Value $depsInstallPath\bin\D3D12\d3d12SDKLayers.dll
|
|
|
|
# Hard link WARP next to Vulkan CTS
|
|
New-Item -ItemType HardLink -path $vk_cts_bin\d3d10warp.dll -Value $depsInstallPath\bin\d3d10warp.dll
|
|
|
|
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path "$source_dir" | Out-Null
|
|
|
|
# Cleanup deqp intermediate files
|
|
Get-ChildItem -Force -ErrorAction SilentlyContinue -Recurse "$deqp_build" | Where-Object {
|
|
if($_.FullName -match "CMake|.git|.lib"){
|
|
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $_.FullName | Out-Null
|
|
}
|
|
}
|
|
|
|
Write-Host "Compiling deqp finished at:"
|
|
Get-Date
|