
This is needed to work around an MSVC compiler bug which causes test failures Acked-by: David Heidelberg <david@ixit.cz> Acked-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30877>
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 d48899f85b486a70d090af59a1453763458611d9 # of branch vulkan-cts-1.3.8
|
|
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
|