ci/msvc: Split the install of rust and d3d out of mesa_deps_test.ps1
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>
This commit is contained in:
88
.gitlab-ci/windows/mesa_deps_test_deqp.ps1
Normal file
88
.gitlab-ci/windows/mesa_deps_test_deqp.ps1
Normal file
@@ -0,0 +1,88 @@
|
||||
# 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
|
Reference in New Issue
Block a user