diff options
-rw-r--r-- | README.md | 24 | ||||
-rwxr-xr-x | deqp-run | 11 | ||||
-rwxr-xr-x | mesa-debug-asan | 5 | ||||
-rwxr-xr-x | mesa-run | 32 |
4 files changed, 36 insertions, 36 deletions
@@ -5,7 +5,7 @@ A collection of scripts to build and test [Mesa](https://www.mesa3d.org/) withou ## Scripts - [nj](nj) - Run [ninja](https://github.com/ninja-build/ninja) from anywhere in the project git repository. (upstream: [nj repo](gitlab.freedesktop.org/kwg/nj)) -- [mesa-run](mesa-run) - helper script. Not used directly. Requires [jq](https://github.com/jqlang/jq) +- [mesa-run](mesa-run) - helper script. Not used directly. - [mesa-debug](mesa-debug) - Debug build - [mesa-debug-asan](mesa-debug-asan) - Debug build with [AddressSanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizer) - [mesa-debug-optimized](mesa-debug-optimized) - Debug build with optimization @@ -18,15 +18,15 @@ A collection of scripts to build and test [Mesa](https://www.mesa3d.org/) withou ### Configure and build debug build -```sh -mesa-debug configure -nj debug install +```console +$ mesa-debug configure +$ nj debug install ``` ### Run program with local Mesa build -```sh -mesa-debug glxinfo +```console +$ mesa-debug glxinfo ``` ### Run dEQP @@ -37,20 +37,20 @@ On desktop Linux, `deqp-run` should be run from a git checkout of [VK-GL-CTS](ht #### Single test -```sh -deqp-run dEQP-VK.graphicsfuzz.spv-stable-pillars-volatile-nontemporal-store +```console +$ deqp-run dEQP-VK.graphicsfuzz.spv-stable-pillars-volatile-nontemporal-store ``` #### Test suite -```sh -deqp-run vk +```console +$ deqp-run vk ``` ### Make Markdown table of dEQP test results -```sh -deqp-results-to-markdown +```console +$ deqp-results-to-markdown ``` #### Example output @@ -21,11 +21,11 @@ readonly -A LINUX_DEQP_BIN=( [gles31]=build/modules/gles31/deqp-gles31 ) readonly -A CHROMEOS_DEQP_CASELIST=( - [vk]=/usr/local/deqp/caselists/vk.txt - [egl]=/usr/local/deqp/caselists/egl.txt - [gles2]=/usr/local/deqp/caselists/gles2.txt - [gles3]=/usr/local/deqp/caselists/gles3.txt - [gles31]=/usr/local/deqp/caselists/gles31.txt + [vk]=/usr/local/deqp/caselists/vk.txt.zst + [egl]=/usr/local/deqp/caselists/egl.txt.zst + [gles2]=/usr/local/deqp/caselists/gles2.txt.zst + [gles3]=/usr/local/deqp/caselists/gles3.txt.zst + [gles31]=/usr/local/deqp/caselists/gles31.txt.zst ) readonly -A LINUX_DEQP_CASELIST=( @@ -112,6 +112,7 @@ DEQP_RUNNER_ARGS=( --caselist "${CASELIST}" --deqp "${DEQP_BIN}" --testlog-to-xml "${TESTLOG_TO_XML}" + --timeout 360 --output "${OUTPUT_DIR}" ) diff --git a/mesa-debug-asan b/mesa-debug-asan index 3ff7dce..cfd7928 100755 --- a/mesa-debug-asan +++ b/mesa-debug-asan @@ -4,6 +4,9 @@ export cflags="-ggdb3 -O0 -march=native -pipe" export cxxflags="${cflags}" export buildtype=debug export builddir=~/projects/mesa/build-debug-asan -export extra_args=(-Db_sanitize="address,undefined") +export extra_args="-Db_sanitize=address,undefined:-Db_lundef=false" + +export GCC_ASAN_PRELOAD=$(gcc -print-file-name=libasan.so) +export CLANG_ASAN_PRELOAD=$(clang -print-file-name=libclang_rt.asan-x86_64.so) exec mesa-run "$@" @@ -8,17 +8,19 @@ die() { [[ -z ${builddir} ]] && die "builddir must be set" prefix="${builddir}"/install +IFS=: read -r -a extra_args <<< "${extra_args}" + machine=$(uname -m) case "$machine" in x86_64) - vk_icd="intel_icd.${machine}.json" vulkan_drivers=intel gallium_drivers=iris tools=drm-shim,intel - extra_args+=(-Dintel-clc=enabled) + extra_args+=( + -Dintel-rt=disabled + ) ;; aarch64|arm*) - vk_icd="freedreno_icd.${machine}.json" vulkan_drivers=freedreno gallium_drivers=freedreno tools=drm-shim,freedreno @@ -28,15 +30,17 @@ esac case "$1" in wipe|wipeout) echo "Removing ${builddir}" - exec meson setup --wipe "${builddir}" - ;; + rm -r "${builddir}" + ;& configure) - export LLVM_MAJOR_VERSION="16" + export LLVM_MAJOR_VERSION="19" export LLVM_CONFIG="/usr/lib/llvm/${LLVM_MAJOR_VERSION}/bin/llvm-config" #export CC="/usr/lib/llvm/${LLVM_MAJOR_VERSION}/bin/clang" #export CXX="/usr/lib/llvm/${LLVM_MAJOR_VERSION}/bin/clang++" #export CC_LD="/usr/lib/llvm/${LLVM_MAJOR_VERSION}/bin/lld" #export CXX_LD="${CC_LD}" + export CC_LD="mold" + export CXX_LD="mold" args=( --pkg-config-path "/usr/lib/llvm/${LLVM_MAJOR_VERSION}/lib64/pkgconfig" @@ -44,19 +48,19 @@ configure) -Dc_args="${cflags}" -Dcpp_args="${cxxflags}" -Dtools="${tools}" - -Dbuild-tests=true + -Dbuild-tests=false -Dvulkan-drivers="${vulkan_drivers}" -Dgallium-drivers="${gallium_drivers}" -Dgallium-rusticl=false - -Dgallium-va=auto + -Dgallium-va=disabled -Dgallium-xa=disabled - -Dvideo-codecs="vc1dec,h264dec,h264enc,h265dec,h265enc" -Dvulkan-beta=true -Dbuildtype="${buildtype}" -Dbackend=ninja "${extra_args[@]}" "${builddir}" ) + echo meson setup --reconfigure "${args[@]}" exec meson setup --reconfigure "${args[@]}" ;; build) @@ -64,12 +68,4 @@ build) ;; esac -if ! command -v jq &> /dev/null; then - die "jq needs to be installed" -fi - -libdir=$(jq -r '.[] | select(.name == "libdir").value' "${builddir}"/meson-info/intro-buildoptions.json) -export LD_LIBRARY_PATH="${prefix}/${libdir}:${LD_LIBRARY_PATH}" -export LIBGL_DRIVERS_PATH="${prefix}/${libdir}"/dri -export VK_ICD_FILENAMES="${prefix}"/share/vulkan/icd.d/"${vk_icd}" -exec "$@" +LD_PRELOAD="${GCC_ASAN_PRELOAD}" exec meson devenv -C "${builddir}" -w "${PWD}" "$@" |