CI/Windows: Use deqp-runner for D3D12 piglit

Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20454>
This commit is contained in:
Jesse Natalie 2022-12-28 15:47:54 -08:00 committed by Marge Bot
parent 0a256f79d4
commit 31d722b706
11 changed files with 572 additions and 5015 deletions

View File

@ -28,4 +28,4 @@ variables:
WINDOWS_X64_BUILD_TAG: "2022-10-18-wrap-nodownload-va"
WINDOWS_X64_TEST_PATH: "windows/x64_test"
WINDOWS_X64_TEST_TAG: "2022-11-03-agility-sdk"
WINDOWS_X64_TEST_TAG: "2022-12-28-piglit-no-install"

View File

@ -83,6 +83,5 @@ Copy-Item ".\.gitlab-ci\windows\spirv2dxil_check.ps1" -Destination $installdir
Copy-Item ".\.gitlab-ci\windows\spirv2dxil_run.ps1" -Destination $installdir
Copy-Item ".\.gitlab-ci\windows\deqp_runner_run.ps1" -Destination $installdir
Copy-Item ".\src\microsoft\ci\deqp-dozen.toml" -Destination $installdir
Get-ChildItem -Recurse -Filter "ci" | Get-ChildItem -Filter "*.txt" | Copy-Item -Destination $installdir
Get-ChildItem -Recurse -Filter "ci" | Get-ChildItem -Include "*.txt","*.toml" | Copy-Item -Destination $installdir

View File

@ -36,38 +36,31 @@ Invoke-WebRequest -Uri 'https://www.khronos.org/registry/OpenGL/api/GL/glext.h'
Get-Date
Write-Host "Cloning Piglit"
git clone --no-progress --single-branch --no-checkout https://gitlab.freedesktop.org/mesa/piglit.git 'C:\src\piglit'
git clone --no-progress --single-branch --no-checkout https://gitlab.freedesktop.org/mesa/piglit.git 'C:\piglit'
if (!$?) {
Write-Host "Failed to clone Piglit repository"
Exit 1
}
Push-Location -Path C:\src\piglit
Push-Location -Path C:\piglit
git checkout f7f2a6c2275cae023a27b6cc81be3dda8c99492d
Pop-Location
Get-Date
$piglit_build = New-Item -ItemType Directory -Path "C:\src\piglit" -Name "build"
Push-Location -Path $piglit_build.FullName
Write-Host "Compiling Piglit"
cmake .. `
cmake -S . -B . `
-GNinja `
-DCMAKE_BUILD_TYPE=Release `
-DCMAKE_INSTALL_PREFIX="C:\Piglit" `
-DGLUT_INCLUDE_DIR=C:\freeglut\include `
-DGLUT_glut_LIBRARY_RELEASE=C:\freeglut\lib\x64\freeglut.lib `
-DGLEXT_INCLUDE_DIR=.\glext && `
ninja -j32
$buildstatus = $?
ninja -j32 install | Out-Null
$installstatus = $?
Pop-Location
Remove-Item -Recurse -Path $piglit_build
if (!$buildstatus -Or !$installstatus) {
Write-Host "Failed to compile or install Piglit"
if (!$buildstatus) {
Write-Host "Failed to compile Piglit"
Exit 1
}
Copy-Item -Path C:\freeglut\bin\x64\freeglut.dll -Destination C:\Piglit\lib\piglit\bin\freeglut.dll
Copy-Item -Path C:\freeglut\bin\x64\freeglut.dll -Destination C:\Piglit\bin\freeglut.dll
Get-Date
Write-Host "Cloning spirv-samples"
@ -104,8 +97,8 @@ cmake -S $($deqp_source) `
ninja -j32
$buildstatus = $?
Pop-Location
if (!$buildstatus -Or !$installstatus) {
Write-Host "Failed to compile or install deqp"
if (!$buildstatus) {
Write-Host "Failed to compile deqp"
Exit 1
}
@ -141,7 +134,7 @@ Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D
Expand-Archive -Path 'agility.zip' -DestinationPath 'C:\agility'
Remove-Item 'agility.zip'
$piglit_bin = 'C:\Piglit\lib\piglit\bin'
$piglit_bin = 'C:\Piglit\bin'
$vk_cts_bin = "$deqp_build\external\vulkancts\modules\vulkan"
# Copy Agility SDK into subfolder of piglit and Vulkan CTS

View File

@ -1,27 +1,13 @@
$env:PIGLIT_NO_FAST_SKIP = 1
Copy-Item -Path _install\bin\opengl32.dll -Destination C:\Piglit\lib\piglit\bin\opengl32.dll
Copy-Item -Path _install\bin\libgallium_wgl.dll -Destination C:\Piglit\lib\piglit\bin\libgallium_wgl.dll
Copy-Item -Path _install\bin\libglapi.dll -Destination C:\Piglit\lib\piglit\bin\libglapi.dll
Copy-Item -Path _install\bin\opengl32.dll -Destination C:\Piglit\bin\opengl32.dll
Copy-Item -Path _install\bin\libgallium_wgl.dll -Destination C:\Piglit\bin\libgallium_wgl.dll
Copy-Item -Path _install\bin\libglapi.dll -Destination C:\Piglit\bin\libglapi.dll
cmd.exe /C "py -3 C:\Piglit\bin\piglit.py run --timeout 240 `"$env:PIGLIT_PROFILE`" $env:PIGLIT_OPTIONS $env:PIGLIT_TESTS .\results"
py -3 C:\Piglit\bin\piglit.py summary console .\results | Select -SkipLast 1 | Select-String -NotMatch -Pattern ': pass' | Set-Content -Path .\result.txt
$reference = Get-Content ".\_install\$env:PIGLIT_RESULTS.txt"
$result = Get-Content .\result.txt
if (-Not ($reference -And $result)) {
deqp-runner suite --output .\logs --suite "_install/$env:PIGLIT_SUITE" `
--skips "_install/$env:PIGLIT_SKIPS" `
--baseline "_install/$env:PIGLIT_BASELINE" `
--flakes "_install/$env:PIGLIT_FLAKES"
if (!$?) {
Exit 1
}
$diff = Compare-Object -ReferenceObject $reference -DifferenceObject $result
if (-Not $diff) {
Exit 0
}
py -3 C:\Piglit\bin\piglit.py summary html --exclude-details=pass .\summary .\results
Write-Host "Unexpected change in results:"
Write-Output $diff | Format-Table -Property SideIndicator,InputObject -Wrap
Exit 1

View File

@ -0,0 +1,6 @@
# Tessellation isoline tests are flaky on WARP, probably a WARP bug
isoline
# If the test machine are busy, these can spuriously fail
arb_timer_query
ext_timer_query

View File

@ -0,0 +1,5 @@
[[piglit]]
piglit_folder = "C:/piglit"
profile = "quick_gl"
process_isolation = true
timeout = 240

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
[[piglit]]
piglit_folder = "C:/piglit"
profile = "quick_shader"
process_isolation = true
timeout = 240

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
# The Windows piglit build doesn't produce any EGL/GLES tests
gles
opengl es
egl
glsl-es
spec@oes
# These are GLES extensions
ext_clear_texture
ext_disjoint_timer_query
ext_draw_instanced
ext_occlusion_query_boolean
ext_render_snorm
ext_texture_format_bgra8888
ext_texture_norm16
ext_unpack_subimage
# These are Vulkan tests which aren't built on Windows either
ext_external_objects@vk
# Linux-specific extension
ext_image_dma_buf_import
# Requires EGL/GLES
shaders@glsl-bug-110796
amd_compressed_atc_texture
intel_performance_query
# The WGL tests are only built when Piglit is using Waffle
wgl
# This test will timeout and slows down the whole job, so just skip it
spec@arb_tessellation_shader@arb_tessellation_shader-tes-gs-max-output

View File

@ -25,22 +25,21 @@
when: on_failure
name: "mesa_${CI_JOB_NAME}"
paths:
- summary/
- result.txt
- logs/
variables:
PIGLIT_SKIPS: d3d12-skips.txt
PIGLIT_FLAKES: d3d12-flakes.txt
test-d3d12-quick_gl:
extends:
- .d3d12-test-piglit
variables:
PIGLIT_PROFILE: quick_gl
PIGLIT_RESULTS: "d3d12-quick_gl"
PIGLIT_TESTS: -x nv_copy_depth_to_color -x glsl-1.30.execution.tex-miplevel-selection -x arb_timer_query.timestamp-get -x max-size -x query.gl_timestamp -x query.time-elapsed -x tes-gs-max-output
PIGLIT_SUITE: d3d12-quick_gl.toml
PIGLIT_BASELINE: d3d12-quick_gl.txt
test-d3d12-quick_shader:
extends:
- .d3d12-test-piglit
variables:
PIGLIT_PROFILE: quick_shader
PIGLIT_RESULTS: "d3d12-quick_shader"
# These tests crash WARP causing the test suite to timeout, or are flaky
PIGLIT_TESTS: -x amd_texture_texture4 -x arb_texture_gather -x isoline
PIGLIT_SUITE: d3d12-quick_shader.toml
PIGLIT_BASELINE: d3d12-quick_shader.txt