diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2021-09-09 09:43:01 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2021-09-09 09:43:01 +0000 |
commit | 07ef485e72236d6eb66875017b251bdac985bb1f (patch) | |
tree | 052f34fe2fc3c790f85655a33d22968b08c4710a | |
parent | 73b65ddf621ec36f84c239cba7d3903b262035ef (diff) |
Import Mesa 21.1.8
-rw-r--r-- | lib/mesa/.gitlab-ci/container/build-virglrenderer.sh | 4 | ||||
-rwxr-xr-x | lib/mesa/.gitlab-ci/piglit/run.sh | 131 | ||||
-rw-r--r-- | lib/mesa/.gitlab-ci/windows/mesa_deps.ps1 | 19 | ||||
-rw-r--r-- | lib/mesa/.gitlab-ci/windows/quick_gl.txt | 10 |
4 files changed, 80 insertions, 84 deletions
diff --git a/lib/mesa/.gitlab-ci/container/build-virglrenderer.sh b/lib/mesa/.gitlab-ci/container/build-virglrenderer.sh index 78b29dae2..20cd94741 100644 --- a/lib/mesa/.gitlab-ci/container/build-virglrenderer.sh +++ b/lib/mesa/.gitlab-ci/container/build-virglrenderer.sh @@ -4,13 +4,13 @@ set -ex mkdir -p /epoxy pushd /epoxy -wget -qO- https://github.com/anholt/libepoxy/releases/download/1.5.8/libepoxy-1.5.8.tar.xz | tar -xJ --strip-components=1 +wget -qO- https://github.com/anholt/libepoxy/releases/download/1.5.4/libepoxy-1.5.4.tar.xz | tar -xJ --strip-components=1 meson build/ $EXTRA_MESON_ARGS ninja -C build install popd rm -rf /epoxy -VIRGLRENDERER_VERSION=f2ab66c6c00065b2944f4cd9d965ee455c535271 +VIRGLRENDERER_VERSION=43148d1115a12219a0560a538c9872d07c28c558 git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git --single-branch --no-checkout /virglrenderer pushd /virglrenderer git checkout "$VIRGLRENDERER_VERSION" diff --git a/lib/mesa/.gitlab-ci/piglit/run.sh b/lib/mesa/.gitlab-ci/piglit/run.sh index e5fa819d7..116f363d0 100755 --- a/lib/mesa/.gitlab-ci/piglit/run.sh +++ b/lib/mesa/.gitlab-ci/piglit/run.sh @@ -3,7 +3,6 @@ set -ex INSTALL=$(realpath -s "$PWD"/install) -MINIO_ARGS="--credentials=/tmp/.minio_credentials" RESULTS=$(realpath -s "$PWD"/results) mkdir -p "$RESULTS" @@ -16,22 +15,7 @@ export __LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/" # Sanity check to ensure that our environment is sufficient to make our tests # run against the Mesa built by CI, rather than any installed distro version. -MESA_VERSION=$(head -1 "$INSTALL/VERSION" | sed 's/\./\\./g') - -print_red() { - RED='\033[0;31m' - NC='\033[0m' # No Color - printf "${RED}" - "$@" - printf "${NC}" -} - -# wrapper to supress +x to avoid spamming the log -quiet() { - set +x - "$@" - set -x -} +MESA_VERSION=$(cat "$INSTALL/VERSION" | sed 's/\./\\./g') if [ "$VK_DRIVER" ]; then @@ -56,23 +40,18 @@ if [ "$VK_DRIVER" ]; then SANITY_MESA_VERSION_CMD="vulkaninfo" - HANG_DETECTION_CMD="/parallel-deqp-runner/build/bin/hang-detection" - # Set up the Window System Interface (WSI) - if [ ${TEST_START_XORG:-0} -eq 1 ]; then - "$INSTALL"/common/start-x.sh "$INSTALL" - export DISPLAY=:0 - else - # Run vulkan against the host's running X server (xvfb doesn't - # have DRI3 support). - # Set the DISPLAY env variable in each gitlab-runner's - # configuration file: - # https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section - quiet printf "%s%s\n" "Running against the hosts' X server. " \ - "DISPLAY is \"$DISPLAY\"." - fi + # IMPORTANT: + # + # Nothing to do here. + # + # Run vulkan against the host's running X server (xvfb doesn't + # have DRI3 support). + # Set the DISPLAY env variable in each gitlab-runner's + # configuration file: + # https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section else ### GL/ES ### @@ -88,8 +67,6 @@ else SANITY_MESA_VERSION_CMD="wflinfo" - HANG_DETECTION_CMD="" - # Set up the platform windowing system. @@ -107,7 +84,7 @@ else LD_LIBRARY_PATH="$__LD_LIBRARY_PATH" \ GALLIUM_DRIVER=llvmpipe \ - GALLIVM_PERF="nopt" \ + GALLIVM_PERF="nopt,no_filter_hacks" \ VTEST_USE_EGL_SURFACELESS=1 \ VTEST_USE_GLES=1 \ virgl_test_server >"$RESULTS"/vtest-log.txt 2>&1 & @@ -143,6 +120,21 @@ if [ -n "$CI_NODE_INDEX" ]; then USE_CASELIST=1 fi +print_red() { + RED='\033[0;31m' + NC='\033[0m' # No Color + printf "${RED}" + "$@" + printf "${NC}" +} + +# wrapper to supress +x to avoid spamming the log +quiet() { + set +x + "$@" + set -x +} + replay_minio_upload_images() { find "$RESULTS/$__PREFIX" -type f -name "*.png" -printf "%P\n" \ | while read -r line; do @@ -152,26 +144,36 @@ replay_minio_upload_images() { if [ "x$CI_PROJECT_PATH" != "x$FDO_UPSTREAM_REPO" ]; then continue fi - __MINIO_PATH="$PIGLIT_REPLAY_REFERENCE_IMAGES_BASE" + __MINIO_PATH="$PIGLIT_REPLAY_REFERENCE_IMAGES_BASE_URL" __DESTINATION_FILE_PATH="${line##*-}" - if wget -q --method=HEAD "https://${__MINIO_PATH}/${__DESTINATION_FILE_PATH}" 2>/dev/null; then + if ci-fairy minio ls "minio://${MINIO_HOST}${__MINIO_PATH}/${__DESTINATION_FILE_PATH}" 2>/dev/null; then continue fi else - __MINIO_PATH="$JOB_ARTIFACTS_BASE" + __MINIO_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL" __DESTINATION_FILE_PATH="$__MINIO_TRACES_PREFIX/${line##*-}" + # Adding to the JUnit the direct link to the diff page in + # the dashboard + __PIGLIT_TESTCASE_CLASSNAME="piglit\.trace\.$PIGLIT_REPLAY_DEVICE_NAME\.$(dirname $__TRACE | sed 's%/%\\.%g;s@%@\\%@')" + __PIGLIT_TESTCASE_NAME="$(basename $__TRACE | sed 's%\.%_%g;s@%@\\%@')" + __DASHBOARD_URL="https://tracie.freedesktop.org/dashboard/imagediff/${CI_PROJECT_PATH}/${CI_JOB_ID}/${__TRACE}" + __START_TEST_PATTERN='<testcase classname="'"${__PIGLIT_TESTCASE_CLASSNAME}"'" name="'"${__PIGLIT_TESTCASE_NAME}"'" status="fail"' + __REPLACE_TEST_PATTERN='</system-out><failure type="fail"/></testcase>' + # Replace in the range between __START_TEST_PATTERN and + # __REPLACE_TEST_PATTERN leaving __START_TEST_PATTERN out + # from the substitution + sed '\%'"${__START_TEST_PATTERN}"'%,\%'"${__REPLACE_TEST_PATTERN}"'%{\%'"${__START_TEST_PATTERN}"'%b;s%'"${__REPLACE_TEST_PATTERN}"'%</system-out><failure type="fail">To view the image differences visit: '"${__DASHBOARD_URL}"'</failure></testcase>%}' \ + -i "$RESULTS"/junit.xml fi - ci-fairy minio cp $MINIO_ARGS "$RESULTS/$__PREFIX/$line" \ - "minio://${__MINIO_PATH}/${__DESTINATION_FILE_PATH}" + ci-fairy minio cp "$RESULTS/$__PREFIX/$line" \ + "minio://${MINIO_HOST}${__MINIO_PATH}/${__DESTINATION_FILE_PATH}" done } SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD | tee /tmp/version.txt | grep \"Mesa $MESA_VERSION\(\s\|$\)\"" -if [ -d results ]; then - cd results && rm -rf ..?* .[!.]* * -fi +rm -rf results cd /piglit if [ -n "$USE_CASELIST" ]; then @@ -190,9 +192,9 @@ PIGLIT_OPTIONS=$(printf "%s" "$PIGLIT_OPTIONS") PIGLIT_TESTS=$(printf "%s" "$PIGLIT_TESTS") -PIGLIT_CMD="./piglit run --timeout 300 -j${FDO_CI_CONCURRENT:-4} $PIGLIT_OPTIONS $PIGLIT_TESTS $PIGLIT_PROFILES "$(/usr/bin/printf "%q" "$RESULTS") +PIGLIT_CMD="./piglit run -j${FDO_CI_CONCURRENT:-4} $PIGLIT_OPTIONS $PIGLIT_TESTS $PIGLIT_PROFILES "$(/usr/bin/printf "%q" "$RESULTS") -RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $SANITY_MESA_VERSION_CMD && $HANG_DETECTION_CMD $PIGLIT_CMD" +RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $SANITY_MESA_VERSION_CMD && $PIGLIT_CMD" if [ "$RUN_CMD_WRAPPER" ]; then RUN_CMD="set +e; $RUN_CMD_WRAPPER "$(/usr/bin/printf "%q" "$RUN_CMD")"; set -e" @@ -200,11 +202,6 @@ fi FAILURE_MESSAGE=$(printf "%s" "Unexpected change in results:") -if [ "x$PIGLIT_PROFILES" = "xreplay" ] \ - && [ ${PIGLIT_REPLAY_UPLOAD_TO_MINIO:-0} -eq 1 ]; then - ci-fairy minio login $MINIO_ARGS $CI_JOB_JWT -fi - eval $RUN_CMD if [ $? -ne 0 ]; then @@ -230,13 +227,19 @@ mkdir -p .gitlab-ci/piglit if [ "x$PIGLIT_PROFILES" = "xreplay" ] \ && [ ${PIGLIT_REPLAY_UPLOAD_TO_MINIO:-0} -eq 1 ]; then + ci-fairy minio login $CI_JOB_JWT + __PREFIX="trace/$PIGLIT_REPLAY_DEVICE_NAME" __MINIO_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL" __MINIO_TRACES_PREFIX="traces" - if [ "x$PIGLIT_REPLAY_SUBCOMMAND" != "xprofile" ]; then - quiet replay_minio_upload_images - fi + ci-fairy minio cp "$RESULTS"/results.json.bz2 \ + "minio://${MINIO_HOST}${__MINIO_PATH}/${__MINIO_TRACES_PREFIX}/results.json.bz2" + + quiet replay_minio_upload_images + + ci-fairy minio cp "$RESULTS"/junit.xml \ + "minio://${MINIO_HOST}${__MINIO_PATH}/${__MINIO_TRACES_PREFIX}/junit.xml" fi if [ -n "$USE_CASELIST" ]; then @@ -247,28 +250,28 @@ if [ -n "$USE_CASELIST" ]; then grep -F -f /tmp/executed.txt "$INSTALL/$PIGLIT_RESULTS.txt" \ > ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline" || true -elif [ -f "$INSTALL/$PIGLIT_RESULTS.txt" ]; then +else cp "$INSTALL/$PIGLIT_RESULTS.txt" \ ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline" -else - touch ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline" fi if diff -q ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline" $RESULTSFILE; then exit 0 fi -./piglit summary html --exclude-details=pass \ -"$RESULTS"/summary "$RESULTS"/results.json.bz2 +if [ ${PIGLIT_HTML_SUMMARY:-1} -eq 1 ]; then + ./piglit summary html --exclude-details=pass \ + "$RESULTS"/summary "$RESULTS"/results.json.bz2 -if [ "x$PIGLIT_PROFILES" = "xreplay" ]; then -find "$RESULTS"/summary -type f -name "*.html" -print0 \ - | xargs -0 sed -i 's%<img src="file://'"${RESULTS}"'.*-\([0-9a-f]*\)\.png%<img src="https://'"${JOB_ARTIFACTS_BASE}"'/traces/\1.png%g' -find "$RESULTS"/summary -type f -name "*.html" -print0 \ - | xargs -0 sed -i 's%<img src="file://%<img src="https://'"${PIGLIT_REPLAY_REFERENCE_IMAGES_BASE}"'/%g' -fi + if [ "x$PIGLIT_PROFILES" = "xreplay" ]; then + find "$RESULTS"/summary -type f -name "*.html" -print0 \ + | xargs -0 sed -i 's%<img src="file://'"${RESULTS}"'.*-\([0-9a-f]*\)\.png%<img src="https://'"${MINIO_HOST}${PIGLIT_REPLAY_ARTIFACTS_BASE_URL}"'/traces/\1.png%g' + find "$RESULTS"/summary -type f -name "*.html" -print0 \ + | xargs -0 sed -i 's%<img src="file://%<img src="https://'"${MINIO_HOST}${PIGLIT_REPLAY_REFERENCE_IMAGES_BASE_URL}"'/%g' + fi -FAILURE_MESSAGE=$(printf "${FAILURE_MESSAGE}\n%s" "Check the HTML summary for problems at: ${ARTIFACTS_BASE_URL}/results/summary/problems.html") + FAILURE_MESSAGE=$(printf "${FAILURE_MESSAGE}\n%s" "Check the HTML summary for problems at: ${ARTIFACTS_BASE_URL}/results/summary/problems.html") +fi quiet print_red printf "%s\n" "$FAILURE_MESSAGE" quiet diff --color=always -u ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline" $RESULTSFILE diff --git a/lib/mesa/.gitlab-ci/windows/mesa_deps.ps1 b/lib/mesa/.gitlab-ci/windows/mesa_deps.ps1 index 1e5e78d21..0e2bc60a9 100644 --- a/lib/mesa/.gitlab-ci/windows/mesa_deps.ps1 +++ b/lib/mesa/.gitlab-ci/windows/mesa_deps.ps1 @@ -21,7 +21,7 @@ Write-Host "Installing Chocolatey packages" For ($i = 0; $i -lt 5; $i++) { choco install -y python3 --params="/InstallDir:C:\python3" $python_install = $? - choco install --allow-empty-checksums -y cmake git git-lfs ninja pkgconfiglite winflexbison vulkan-sdk --installargs "ADD_CMAKE_TO_PATH=System" + choco install --allow-empty-checksums -y cmake git git-lfs ninja pkgconfiglite winflexbison --installargs "ADD_CMAKE_TO_PATH=System" $other_install = $? $choco_installed = $other_install -and $python_install if ($choco_installed) { @@ -55,7 +55,7 @@ if (!$?) { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13; Get-Date -Write-Host "Cloning LLVM release/12.x" +Write-Host "Cloning LLVM master" git clone -b release/12.x --depth=1 https://github.com/llvm/llvm-project llvm-project if (!$?) { Write-Host "Failed to clone LLVM repository" @@ -81,7 +81,7 @@ Get-Date $llvm_build = New-Item -ItemType Directory -Path ".\llvm-project" -Name "build" Push-Location -Path $llvm_build.FullName Write-Host "Compiling LLVM and Clang" -cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake ../llvm -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_INSTALL_PREFIX="C:\llvm-10" -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_TARGETS_TO_BUILD=AMDGPU;X86 -DLLVM_OPTIMIZED_TABLEGEN=TRUE -DLLVM_ENABLE_ASSERTIONS=TRUE -DLLVM_INCLUDE_UTILS=OFF -DLLVM_INCLUDE_RUNTIMES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_GO_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_BUILD_LLVM_C_DYLIB=OFF -DLLVM_ENABLE_DIA_SDK=OFF -DCLANG_BUILD_TOOLS=ON -DLLVM_SPIRV_INCLUDE_TESTS=OFF && ninja -j32 install' +cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake ../llvm -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_INSTALL_PREFIX="C:\llvm-10" -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_OPTIMIZED_TABLEGEN=TRUE -DLLVM_ENABLE_ASSERTIONS=TRUE -DLLVM_INCLUDE_UTILS=OFF -DLLVM_INCLUDE_RUNTIMES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_GO_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_BUILD_LLVM_C_DYLIB=OFF -DLLVM_ENABLE_DIA_SDK=OFF -DCLANG_BUILD_TOOLS=ON -DLLVM_SPIRV_INCLUDE_TESTS=OFF && ninja -j32 install' $buildstatus = $? Pop-Location if (!$buildstatus) { @@ -94,7 +94,7 @@ $libclc_build = New-Item -ItemType Directory -Path ".\llvm-project" -Name "build Push-Location -Path $libclc_build.FullName Write-Host "Compiling libclc" # libclc can only be built with Ninja, because CMake's VS backend doesn't know how to compile new language types -cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake ../libclc -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64" -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_INSTALL_PREFIX="C:\llvm-10" -DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" && ninja -j32 install' +cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake ../libclc -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER="/llvm-10/bin/clang-cl.exe" -DCMAKE_CXX_FLAGS="-m64" -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_INSTALL_PREFIX="C:\llvm-10" -DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" && ninja -j32 install' $buildstatus = $? Pop-Location Remove-Item -Recurse -Path $libclc_build @@ -130,17 +130,6 @@ if (!$buildstatus) { } Get-Date -Write-Host "Downloading Vulkan-Runtime" -Invoke-WebRequest -Uri 'https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-runtime.exe' -OutFile 'C:\vulkan-runtime.exe' | Out-Null -Write-Host "Installing Vulkan-Runtime" -Start-Process -NoNewWindow -Wait C:\vulkan-runtime.exe -ArgumentList '/S' -if (!$?) { - Write-Host "Failed to install Vulkan-Runtime" - Exit 1 -} -Remove-Item C:\vulkan-runtime.exe -Force - -Get-Date Write-Host "Downloading Freeglut" $freeglut_zip = 'freeglut-MSVC.zip' diff --git a/lib/mesa/.gitlab-ci/windows/quick_gl.txt b/lib/mesa/.gitlab-ci/windows/quick_gl.txt index 052823d94..89a582ead 100644 --- a/lib/mesa/.gitlab-ci/windows/quick_gl.txt +++ b/lib/mesa/.gitlab-ci/windows/quick_gl.txt @@ -364,6 +364,7 @@ spec/!opengl 2.0/vertex-program-two-side/tcs-out, tes and fs: skip spec/!opengl 2.0/vertex-program-two-side/tes-out and fs: skip spec/!opengl 2.0/vertex-program-two-side/vs, gs and fs: skip spec/!opengl 2.0/vertex-program-two-side/vs, tcs, tes and fs: skip +spec/!opengl 2.1/fbo-mrt-alphatest-no-buffer-zero-write: crash spec/!opengl 3.0/bound-resource-limits: fail spec/!opengl 3.0/clearbuffer-depth-cs-probe: skip spec/!opengl 3.0/required-sized-texture-formats: fail @@ -2389,6 +2390,7 @@ spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 7: sk spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 8: skip spec/arb_texture_buffer_object/bufferstorage: skip spec/arb_texture_buffer_object/data-sync: fail +spec/arb_texture_buffer_object/get: fail spec/arb_texture_buffer_object/indexed: skip spec/arb_texture_buffer_object/negative-unsupported: skip spec/arb_texture_buffer_object/subdata-sync: fail @@ -4560,6 +4562,8 @@ spec/glsl-1.30/execution/tex-miplevel-selection texturegrad cubearray: skip spec/glsl-1.30/execution/tex-miplevel-selection texturelod cubearray: skip spec/glsl-1.30/execution/tex-miplevel-selection textureoffset 2darrayshadow: skip spec/glsl-1.50/built-in constants compatibility: skip +spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_loop ffs: fail +spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_loop other: fail spec/glsl-1.50/execution/geometry/primitive-types gl_triangle_strip: fail spec/glsl-1.50/execution/geometry/primitive-types gl_triangle_strip_adjacency: fail spec/glsl-1.50/execution/geometry/tri-strip-ordering-with-prim-restart gl_triangle_strip ffs: fail @@ -4749,9 +4753,9 @@ wgl/wgl-sanity: skip summary: name: results ---- -------- - pass: 13303 - fail: 535 - crash: 67 + pass: 13299 + fail: 538 + crash: 68 skip: 4126 timeout: 0 warn: 10 |