Compare commits
	
		
			184 Commits
		
	
	
		
			mesa-21.0.
			...
			mesa_6_4_1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 53e595017e | ||
|  | f8be78367d | ||
|  | 89568e0509 | ||
|  | 149675017f | ||
|  | 4d87d19a60 | ||
|  | 7a46bf5e1b | ||
|  | c2cabc6755 | ||
|  | 3fa7668f99 | ||
|  | 2370d426cf | ||
|  | d8eb2d49dd | ||
|  | fcda7131b4 | ||
|  | 6ff7b66f4a | ||
|  | e037150407 | ||
|  | c2e6917e14 | ||
|  | 2048fabe04 | ||
|  | b7da962caf | ||
|  | 040bdbe2e6 | ||
|  | 471c17cc84 | ||
|  | ad9a205ba8 | ||
|  | 45c30dbead | ||
|  | eeb4f1aff9 | ||
|  | 1ea4669fce | ||
|  | a110f0f407 | ||
|  | 4f42aa83f1 | ||
|  | eb72779ef1 | ||
|  | 47604ffc2f | ||
|  | 5889e4b775 | ||
|  | f9d66b2a44 | ||
|  | 2119711dac | ||
|  | fcc21abbc6 | ||
|  | c331aef105 | ||
|  | 2fc89f126a | ||
|  | 22c8686dad | ||
|  | 7a12ad5a08 | ||
|  | c6165ec3b3 | ||
|  | 67ef9d76e7 | ||
|  | aa5f5d54a8 | ||
|  | c18fd3a3bf | ||
|  | d799fbf78e | ||
|  | 48d7f01740 | ||
|  | 59f84d5723 | ||
|  | 6f9ff2af81 | ||
|  | 4591406e21 | ||
|  | 2c6cf3d0aa | ||
|  | 154a8be6a7 | ||
|  | db03e55efa | ||
|  | d038563a60 | ||
|  | 469bd21184 | ||
|  | 13a5235305 | ||
|  | 4e4f6a29f3 | ||
|  | 87855fd59b | ||
|  | 546b020144 | ||
|  | 84663e12d0 | ||
|  | c16bb264e8 | ||
|  | 8ef980af6e | ||
|  | 7cd7a78d72 | ||
|  | 5c57efd6b4 | ||
|  | ea9ed5849f | ||
|  | 1ef0939a64 | ||
|  | d0f9c2887c | ||
|  | ed75287003 | ||
|  | c01c2fb542 | ||
|  | e1d7297812 | ||
|  | b4227f0d98 | ||
|  | c868c1ee14 | ||
|  | a1dcb43658 | ||
|  | cc7b6810e2 | ||
|  | 7b9fecee10 | ||
|  | 8856180e4f | ||
|  | df51dfbdc3 | ||
|  | 2fd1ed1b45 | ||
|  | 66b928e95e | ||
|  | d5e9cca0b2 | ||
|  | c072c17a8c | ||
|  | 8367420be9 | ||
|  | e2a2ed06b2 | ||
|  | 0cc3703188 | ||
|  | fb6c1492fb | ||
|  | 89ad797f9a | ||
|  | fa67028ae7 | ||
|  | 8e1724dfe9 | ||
|  | fbdb5c9b14 | ||
|  | 4b2728f95c | ||
|  | 3a7437399f | ||
|  | 3338f04be7 | ||
|  | 047f7bb11c | ||
|  | 5b25acdac7 | ||
|  | cb16208ec0 | ||
|  | 88107bea56 | ||
|  | b4d25157f2 | ||
|  | c6d1f32ebe | ||
|  | 281f388e03 | ||
|  | c0a0dfeb96 | ||
|  | ab07593563 | ||
|  | 5b08058604 | ||
|  | 3bf13d3c4b | ||
|  | 2b05784084 | ||
|  | 2292262de4 | ||
|  | a9358bb3b0 | ||
|  | b9d111f202 | ||
|  | 20fd105e2a | ||
|  | 1faaa0090a | ||
|  | 23803bd5fb | ||
|  | c000250504 | ||
|  | b854297bab | ||
|  | 3c1b44ad55 | ||
|  | bdab2cc216 | ||
|  | 91ade9ad68 | ||
|  | 7355bbce55 | ||
|  | 1d2671e6cb | ||
|  | 0a405dcc5f | ||
|  | b210ffaadf | ||
|  | b1e8471898 | ||
|  | aefe0dabec | ||
|  | 758c5b9a7e | ||
|  | 44db6d7cb8 | ||
|  | 04f1fdc755 | ||
|  | b181773d02 | ||
|  | 4218cddfb1 | ||
|  | a4e35c21d2 | ||
|  | 5d63323d34 | ||
|  | 419a350499 | ||
|  | db78ec7018 | ||
|  | 291911aeb5 | ||
|  | e15a7d4883 | ||
|  | 2e95fdc5d8 | ||
|  | 6e03f6ed43 | ||
|  | 97790948f6 | ||
|  | a882648023 | ||
|  | b7f8d69bb3 | ||
|  | 5bad790e56 | ||
|  | 382b00f483 | ||
|  | 718bd385ed | ||
|  | 402ca8903f | ||
|  | 25a9c9f370 | ||
|  | d73a838f01 | ||
|  | c72b2fb2db | ||
|  | 5a6ce051ef | ||
|  | e7c2fa9cff | ||
|  | 5919aec5c3 | ||
|  | f5a6175d83 | ||
|  | e41ea35fee | ||
|  | 38cf2b14f4 | ||
|  | 66725dca81 | ||
|  | 59ad040754 | ||
|  | 5e16f314d6 | ||
|  | 2376438410 | ||
|  | 1be13df2c3 | ||
|  | 1f6892527b | ||
|  | e5f6f26c87 | ||
|  | e14b3baca0 | ||
|  | 5eb129de76 | ||
|  | 3f27b6ffeb | ||
|  | 270572e543 | ||
|  | 7b56e1a443 | ||
|  | cfaac5dc4f | ||
|  | 1e5c3e977f | ||
|  | 831b4143f7 | ||
|  | b26b565f91 | ||
|  | f4d1dafc18 | ||
|  | db70c3f9b6 | ||
|  | 384b1d03e4 | ||
|  | e3c1b594ae | ||
|  | 453eb90128 | ||
|  | cb505bf744 | ||
|  | 133112c71a | ||
|  | a66eebc579 | ||
|  | 89ea47182d | ||
|  | 2efe639f26 | ||
|  | 39e4095560 | ||
|  | b19ec5009f | ||
|  | afed3e55ba | ||
|  | 46cf4fa1bd | ||
|  | b4198e821a | ||
|  | 5a1fb7db0e | ||
|  | f16fbf03bd | ||
|  | ec0c42a3be | ||
|  | a4c1895d07 | ||
|  | b2971358ad | ||
|  | 24a36c26fa | ||
|  | 247e27d0b8 | ||
|  | 912bcb2386 | ||
|  | cee416863f | ||
|  | 8e946792dc | 
| @@ -1,66 +0,0 @@ | ||||
| goto %1 | ||||
|  | ||||
| :install | ||||
| rem Check pip | ||||
| python --version | ||||
| python -m pip install --upgrade pip | ||||
| python -m pip --version | ||||
| if "%buildsystem%" == "scons" ( | ||||
|     rem Install Mako | ||||
|     python -m pip install Mako==1.1.3 | ||||
|     rem Install pywin32 extensions, needed by SCons | ||||
|     python -m pip install pypiwin32 | ||||
|     rem Install python wheels, necessary to install SCons via pip | ||||
|     python -m pip install wheel | ||||
|     rem Install SCons | ||||
|     python -m pip install scons==3.1.2 | ||||
|     call scons --version | ||||
| ) else ( | ||||
|     python -m pip install Mako meson | ||||
|     meson --version | ||||
|  | ||||
|     rem Install pkg-config, which meson requires even on windows | ||||
|     cinst -y pkgconfiglite | ||||
| ) | ||||
|  | ||||
| rem Install flex/bison | ||||
| set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip | ||||
| if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%" | ||||
| 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul | ||||
| set Path=%CD%\winflexbison;%Path% | ||||
| win_flex --version | ||||
| win_bison --version | ||||
| rem Download and extract LLVM | ||||
| if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%" | ||||
| 7z x -y "%LLVM_ARCHIVE%" > nul | ||||
| if "%buildsystem%" == "scons" ( | ||||
|     mkdir llvm\bin | ||||
|     set LLVM=%CD%\llvm | ||||
| ) else ( | ||||
|     move llvm subprojects\ | ||||
|     copy .appveyor\llvm-wrap.meson subprojects\llvm\meson.build | ||||
| ) | ||||
| goto :eof | ||||
|  | ||||
| :build_script | ||||
| if "%buildsystem%" == "scons" ( | ||||
|     call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.2 machine=x86 llvm=1 | ||||
| ) else ( | ||||
|     call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" -arch=x86 | ||||
|     rem We use default-library as static to affect any wraps (such as expat and zlib) | ||||
|     rem it would be better if we could set subprojects buildtype independently, | ||||
|     rem but I haven't written that patch yet :) | ||||
|     call meson builddir --backend=vs2017 --default-library=static -Dbuild-tests=true -Db_vscrt=mtd --buildtype=release -Dllvm=true -Dgallium-drivers=swrast -Dosmesa=gallium | ||||
|     pushd builddir | ||||
|     call msbuild mesa.sln /m | ||||
|     popd | ||||
| ) | ||||
| goto :eof | ||||
|  | ||||
| :test_script | ||||
| if "%buildsystem%" == "scons" ( | ||||
|     call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.2 machine=x86 llvm=1 check | ||||
| ) else ( | ||||
|     call meson test -C builddir | ||||
| ) | ||||
| goto :eof | ||||
| @@ -1,36 +0,0 @@ | ||||
| # A meson.build file for binary wrapping the LLVM used in the appvyeor CI | ||||
| project('llvm', ['cpp']) | ||||
|  | ||||
| cpp = meson.get_compiler('cpp') | ||||
|  | ||||
| _deps = [] | ||||
| _search = join_paths(meson.current_source_dir(), 'lib') | ||||
| foreach d : ['LLVMAnalysis', 'LLVMAsmParser', 'LLVMAsmPrinter', | ||||
|              'LLVMBinaryFormat', 'LLVMBitReader', 'LLVMBitWriter', | ||||
|              'LLVMCodeGen', 'LLVMCore', 'LLVMCoroutines', 'LLVMCoverage', | ||||
|              'LLVMDebugInfoCodeView', 'LLVMDebugInfoDWARF', | ||||
|              'LLVMDebugInfoMSF', 'LLVMDebugInfoPDB', 'LLVMDemangle', | ||||
|              'LLVMDlltoolDriver', 'LLVMExecutionEngine', 'LLVMGlobalISel', | ||||
|              'LLVMInstCombine', 'LLVMInstrumentation', 'LLVMInterpreter', | ||||
|              'LLVMipo', 'LLVMIRReader', 'LLVMLibDriver', 'LLVMLineEditor', | ||||
|              'LLVMLinker', 'LLVMLTO', 'LLVMMCDisassembler', 'LLVMMCJIT', | ||||
|              'LLVMMC', 'LLVMMCParser', 'LLVMMIRParser', 'LLVMObjCARCOpts', | ||||
|              'LLVMObject', 'LLVMObjectYAML', 'LLVMOption', 'LLVMOrcJIT', | ||||
|              'LLVMPasses', 'LLVMProfileData', 'LLVMRuntimeDyld', | ||||
|              'LLVMScalarOpts', 'LLVMSelectionDAG', 'LLVMSupport', | ||||
|              'LLVMSymbolize', 'LLVMTableGen', 'LLVMTarget', | ||||
|              'LLVMTransformUtils', 'LLVMVectorize', 'LLVMX86AsmParser', | ||||
|              'LLVMX86AsmPrinter', 'LLVMX86CodeGen', 'LLVMX86Desc', | ||||
|              'LLVMX86Disassembler', 'LLVMX86Info', 'LLVMX86Utils', | ||||
|              'LLVMXRay'] | ||||
|   _deps += cpp.find_library(d, dirs : _search) | ||||
| endforeach | ||||
|  | ||||
| dep_llvm = declare_dependency( | ||||
|   include_directories : include_directories('include'), | ||||
|   dependencies : _deps, | ||||
|   version : '5.0.1', | ||||
| ) | ||||
|  | ||||
| has_rtti = false | ||||
| irbuilder_h = files('include/llvm/IR/IRBuilder.h') | ||||
| @@ -1,18 +0,0 @@ | ||||
| ((nil . ((show-trailing-whitespace . t))) | ||||
|  (prog-mode | ||||
|   (indent-tabs-mode . nil) | ||||
|   (tab-width . 8) | ||||
|   (c-basic-offset . 3) | ||||
|   (c-file-style . "stroustrup") | ||||
|   (fill-column . 78) | ||||
|   (eval . (progn | ||||
| 	    (c-set-offset 'case-label '0) | ||||
| 	    (c-set-offset 'innamespace '0) | ||||
| 	    (c-set-offset 'inline-open '0))) | ||||
|   (whitespace-style face indentation) | ||||
|   (whitespace-line-column . 79) | ||||
|   (eval ignore-errors | ||||
|         (require 'whitespace) | ||||
|         (whitespace-mode 1))) | ||||
|  (makefile-mode (indent-tabs-mode . t)) | ||||
|  ) | ||||
| @@ -1,44 +0,0 @@ | ||||
| # To use this config on you editor, follow the instructions at: | ||||
| # http://editorconfig.org | ||||
|  | ||||
| root = true | ||||
|  | ||||
| [*] | ||||
| charset = utf-8 | ||||
| insert_final_newline = true | ||||
| tab_width = 8 | ||||
|  | ||||
| [*.{c,h,cpp,hpp,cc,hh}] | ||||
| indent_style = space | ||||
| indent_size = 3 | ||||
| max_line_length = 78 | ||||
|  | ||||
| [{Makefile*,*.mk}] | ||||
| indent_style = tab | ||||
|  | ||||
| [{*.py,SCons*}] | ||||
| indent_style = space | ||||
| indent_size = 4 | ||||
|  | ||||
| [*.pl] | ||||
| indent_style = space | ||||
| indent_size = 4 | ||||
|  | ||||
| [*.m4] | ||||
| indent_style = space | ||||
| indent_size = 2 | ||||
|  | ||||
| [*.yml] | ||||
| indent_style = space | ||||
| indent_size = 2 | ||||
|  | ||||
| [*.html] | ||||
| indent_style = space | ||||
| indent_size = 2 | ||||
|  | ||||
| [*.patch] | ||||
| trim_trailing_whitespace = false | ||||
|  | ||||
| [{meson.build,meson_options.txt}] | ||||
| indent_style = space | ||||
| indent_size = 2 | ||||
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +0,0 @@ | ||||
| *.pyc | ||||
| *.pyo | ||||
| *.out | ||||
| build | ||||
							
								
								
									
										1776
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										1776
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,54 +0,0 @@ | ||||
| CONFIG_LOCALVERSION="ccu" | ||||
|  | ||||
| CONFIG_DEBUG_KERNEL=y | ||||
|  | ||||
| CONFIG_DEVFREQ_GOV_PERFORMANCE=y | ||||
| CONFIG_DEVFREQ_GOV_POWERSAVE=y | ||||
| CONFIG_DEVFREQ_GOV_USERSPACE=y | ||||
| CONFIG_DEVFREQ_GOV_PASSIVE=y | ||||
| CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y | ||||
|  | ||||
| CONFIG_DRM=y | ||||
| CONFIG_DRM_ROCKCHIP=y | ||||
| CONFIG_DRM_PANFROST=y | ||||
| CONFIG_DRM_LIMA=y | ||||
| CONFIG_DRM_PANEL_SIMPLE=y | ||||
| CONFIG_PWM_CROS_EC=y | ||||
| CONFIG_BACKLIGHT_PWM=y | ||||
|  | ||||
| CONFIG_ROCKCHIP_CDN_DP=n | ||||
|  | ||||
| CONFIG_SPI_ROCKCHIP=y | ||||
| CONFIG_PWM_ROCKCHIP=y | ||||
| CONFIG_PHY_ROCKCHIP_DP=y | ||||
| CONFIG_DWMAC_ROCKCHIP=y | ||||
|  | ||||
| CONFIG_MFD_RK808=y | ||||
| CONFIG_REGULATOR_RK808=y | ||||
| CONFIG_RTC_DRV_RK808=y | ||||
| CONFIG_COMMON_CLK_RK808=y | ||||
|  | ||||
| CONFIG_REGULATOR_FAN53555=y | ||||
| CONFIG_REGULATOR=y | ||||
|  | ||||
| CONFIG_REGULATOR_VCTRL=y | ||||
|  | ||||
| CONFIG_KASAN=n | ||||
| CONFIG_KASAN_INLINE=n | ||||
| CONFIG_STACKTRACE=n | ||||
|  | ||||
| CONFIG_TMPFS=y | ||||
|  | ||||
| CONFIG_PROVE_LOCKING=n | ||||
| CONFIG_DEBUG_LOCKDEP=n | ||||
| CONFIG_SOFTLOCKUP_DETECTOR=n | ||||
| CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=n | ||||
|  | ||||
| CONFIG_FW_LOADER_COMPRESS=y | ||||
|  | ||||
| CONFIG_USB_USBNET=y | ||||
| CONFIG_NETDEVICES=y | ||||
| CONFIG_USB_NET_DRIVERS=y | ||||
| CONFIG_USB_RTL8152=y | ||||
| CONFIG_USB_NET_AX8817X=y | ||||
| CONFIG_USB_NET_SMSC95XX=y | ||||
| @@ -1,136 +0,0 @@ | ||||
| CONFIG_LOCALVERSION="ccu" | ||||
|  | ||||
| CONFIG_DEBUG_KERNEL=y | ||||
|  | ||||
| CONFIG_DEVFREQ_GOV_PERFORMANCE=y | ||||
| CONFIG_DEVFREQ_GOV_POWERSAVE=y | ||||
| CONFIG_DEVFREQ_GOV_USERSPACE=y | ||||
| CONFIG_DEVFREQ_GOV_PASSIVE=y | ||||
|  | ||||
| CONFIG_DRM=y | ||||
| CONFIG_DRM_ROCKCHIP=y | ||||
| CONFIG_DRM_PANFROST=y | ||||
| CONFIG_DRM_LIMA=y | ||||
| CONFIG_DRM_PANEL_SIMPLE=y | ||||
| CONFIG_DRM_MSM=y | ||||
| CONFIG_DRM_I2C_ADV7511=y | ||||
| CONFIG_DRM_I2C_ADV7533=y | ||||
| CONFIG_PWM_CROS_EC=y | ||||
| CONFIG_BACKLIGHT_PWM=y | ||||
|  | ||||
| CONFIG_ROCKCHIP_CDN_DP=n | ||||
|  | ||||
| CONFIG_SPI_ROCKCHIP=y | ||||
| CONFIG_PWM_ROCKCHIP=y | ||||
| CONFIG_PHY_ROCKCHIP_DP=y | ||||
| CONFIG_DWMAC_ROCKCHIP=y | ||||
| CONFIG_STMMAC_ETH=y | ||||
| CONFIG_TYPEC_FUSB302=y | ||||
| CONFIG_TYPEC=y | ||||
| CONFIG_TYPEC_TCPM=y | ||||
|  | ||||
| # MSM platform bits | ||||
| CONFIG_QCOM_RPMHPD=y | ||||
| CONFIG_QCOM_RPMPD=y | ||||
| CONFIG_SDM_GPUCC_845=y | ||||
| CONFIG_SDM_VIDEOCC_845=y | ||||
| CONFIG_SDM_DISPCC_845=y | ||||
| CONFIG_SDM_LPASSCC_845=y | ||||
| CONFIG_SDM_CAMCC_845=y | ||||
| CONFIG_RESET_QCOM_PDC=y | ||||
| CONFIG_DRM_TI_SN65DSI86=y | ||||
| CONFIG_I2C_QCOM_GENI=y | ||||
| CONFIG_SPI_QCOM_GENI=y | ||||
| CONFIG_PHY_QCOM_QUSB2=y | ||||
| CONFIG_PHY_QCOM_QMP=y | ||||
| CONFIG_QCOM_LLCC=y | ||||
| CONFIG_QCOM_SPMI_TEMP_ALARM=y | ||||
| CONFIG_POWER_RESET_QCOM_PON=y | ||||
| CONFIG_RTC_DRV_PM8XXX=y | ||||
| CONFIG_INTERCONNECT=y | ||||
| CONFIG_INTERCONNECT_QCOM=y | ||||
| CONFIG_INTERCONNECT_QCOM_SDM845=y | ||||
| CONFIG_INTERCONNECT_QCOM_MSM8916=y | ||||
| CONFIG_INTERCONNECT_QCOM_OSM_L3=y | ||||
| CONFIG_INTERCONNECT_QCOM_SC7180=y | ||||
| CONFIG_QCOM_WDT=y | ||||
| CONFIG_CRYPTO_DEV_QCOM_RNG=y | ||||
|  | ||||
| # db410c ethernet | ||||
| CONFIG_USB_RTL8152=y | ||||
| # db820c ethernet | ||||
| CONFIG_ATL1C=y | ||||
|  | ||||
| CONFIG_ARCH_ALPINE=n | ||||
| CONFIG_ARCH_BCM2835=n | ||||
| CONFIG_ARCH_BCM_IPROC=n | ||||
| CONFIG_ARCH_BERLIN=n | ||||
| CONFIG_ARCH_BRCMSTB=n | ||||
| CONFIG_ARCH_EXYNOS=n | ||||
| CONFIG_ARCH_K3=n | ||||
| CONFIG_ARCH_LAYERSCAPE=n | ||||
| CONFIG_ARCH_LG1K=n | ||||
| CONFIG_ARCH_HISI=n | ||||
| CONFIG_ARCH_MEDIATEK=n | ||||
| CONFIG_ARCH_MVEBU=n | ||||
| CONFIG_ARCH_SEATTLE=n | ||||
| CONFIG_ARCH_SYNQUACER=n | ||||
| CONFIG_ARCH_RENESAS=n | ||||
| CONFIG_ARCH_R8A774A1=n | ||||
| CONFIG_ARCH_R8A774C0=n | ||||
| CONFIG_ARCH_R8A7795=n | ||||
| CONFIG_ARCH_R8A7796=n | ||||
| CONFIG_ARCH_R8A77965=n | ||||
| CONFIG_ARCH_R8A77970=n | ||||
| CONFIG_ARCH_R8A77980=n | ||||
| CONFIG_ARCH_R8A77990=n | ||||
| CONFIG_ARCH_R8A77995=n | ||||
| CONFIG_ARCH_STRATIX10=n | ||||
| CONFIG_ARCH_TEGRA=n | ||||
| CONFIG_ARCH_SPRD=n | ||||
| CONFIG_ARCH_THUNDER=n | ||||
| CONFIG_ARCH_THUNDER2=n | ||||
| CONFIG_ARCH_UNIPHIER=n | ||||
| CONFIG_ARCH_VEXPRESS=n | ||||
| CONFIG_ARCH_XGENE=n | ||||
| CONFIG_ARCH_ZX=n | ||||
| CONFIG_ARCH_ZYNQMP=n | ||||
|  | ||||
| # Strip out some stuff we don't need for graphics testing, to reduce | ||||
| # the build. | ||||
| CONFIG_CAN=n | ||||
| CONFIG_WIRELESS=n | ||||
| CONFIG_RFKILL=n | ||||
| CONFIG_WLAN=n | ||||
|  | ||||
| CONFIG_REGULATOR_FAN53555=y | ||||
| CONFIG_REGULATOR=y | ||||
|  | ||||
| CONFIG_REGULATOR_VCTRL=y | ||||
|  | ||||
| CONFIG_KASAN=n | ||||
| CONFIG_KASAN_INLINE=n | ||||
| CONFIG_STACKTRACE=n | ||||
|  | ||||
| CONFIG_TMPFS=y | ||||
|  | ||||
| CONFIG_PROVE_LOCKING=n | ||||
| CONFIG_DEBUG_LOCKDEP=n | ||||
| CONFIG_SOFTLOCKUP_DETECTOR=y | ||||
| CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y | ||||
|  | ||||
| CONFIG_DETECT_HUNG_TASK=y | ||||
|  | ||||
| CONFIG_FW_LOADER_COMPRESS=y | ||||
| CONFIG_FW_LOADER_USER_HELPER=n | ||||
|  | ||||
| CONFIG_USB_USBNET=y | ||||
| CONFIG_NETDEVICES=y | ||||
| CONFIG_USB_NET_DRIVERS=y | ||||
| CONFIG_USB_RTL8152=y | ||||
| CONFIG_USB_NET_AX8817X=y | ||||
| CONFIG_USB_NET_SMSC95XX=y | ||||
|  | ||||
| # For amlogic | ||||
| CONFIG_MESON_GXL_PHY=y | ||||
| CONFIG_MDIO_BUS_MUX_MESON_G12A=y | ||||
| @@ -1,2 +0,0 @@ | ||||
| [*.sh] | ||||
| indent_size = 2 | ||||
| @@ -1,81 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # This test script groups together a bunch of fast dEQP variant runs | ||||
| # to amortize the cost of rebooting the board. | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| EXIT=0 | ||||
|  | ||||
| # Test rendering with the gmem path forced when possible (~1 minute) | ||||
| if ! env \ | ||||
|   DEQP_RESULTS_DIR=results/gmem \ | ||||
|   DEQP_VER=gles31 \ | ||||
|   DEQP_FRACTION=5 \ | ||||
|   FD_MESA_DEBUG=nobypass \ | ||||
|   /install/deqp-runner.sh; then | ||||
|     EXIT=1 | ||||
| fi | ||||
|  | ||||
| # Test rendering with the bypass path forced when possible (~1 minute) | ||||
| if ! env \ | ||||
|   DEQP_RESULTS_DIR=results/bypass \ | ||||
|   DEQP_VER=gles31 \ | ||||
|   DEQP_FRACTION=5 \ | ||||
|   FD_MESA_DEBUG=nogmem \ | ||||
|   GPU_VERSION=freedreno-a630-bypass \ | ||||
|   /install/deqp-runner.sh; then | ||||
|     EXIT=1 | ||||
| fi | ||||
|  | ||||
| # Test rendering with the UBO-to-constants optimization disabled (~1 minute) | ||||
| if ! env \ | ||||
|   DEQP_RESULTS_DIR=results/nouboopt \ | ||||
|   DEQP_VER=gles31 \ | ||||
|   IR3_SHADER_DEBUG=nouboopt \ | ||||
|   DEQP_CASELIST_FILTER="functional.*ubo" \ | ||||
|   /install/deqp-runner.sh; then | ||||
|     EXIT=1 | ||||
| fi | ||||
|  | ||||
| # gles3-565nozs mustpass (~20s) | ||||
| if ! env \ | ||||
|   DEQP_RESULTS_DIR=results/gles3-565nozs \ | ||||
|   DEQP_VER=gles3 \ | ||||
|   DEQP_CONFIG="rgb565d0s0ms0" \ | ||||
|   DEQP_VARIANT="565-no-depth-no-stencil" \ | ||||
|   /install/deqp-runner.sh; then | ||||
|     EXIT=1 | ||||
| fi | ||||
|  | ||||
| # gles31-565nozs mustpass (~1s) | ||||
| if ! env \ | ||||
|   DEQP_RESULTS_DIR=results/gles31-565nozs \ | ||||
|   DEQP_VER=gles31 \ | ||||
|   DEQP_CONFIG="rgb565d0s0ms0" \ | ||||
|   DEQP_VARIANT="565-no-depth-no-stencil" \ | ||||
|   /install/deqp-runner.sh; then | ||||
|     EXIT=1 | ||||
| fi | ||||
|  | ||||
| # gles3-multisample mustpass -- disabled pending https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1859 | ||||
| # if ! env \ | ||||
| #   DEQP_RESULTS_DIR=results/gles3-multisample \ | ||||
| #   DEQP_VER=gles3 \ | ||||
| #   DEQP_CONFIG="rgba8888d24s8ms4" \ | ||||
| #   DEQP_VARIANT="multisample" \ | ||||
| #   /install/deqp-runner.sh; then | ||||
| #     EXIT=1 | ||||
| # fi | ||||
|  | ||||
| # gles31-multisample mustpass -- disabled pending https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1859 | ||||
| # if ! env \ | ||||
| #   DEQP_RESULTS_DIR=results/gles31-multisample \ | ||||
| #   DEQP_VER=gles31 \ | ||||
| #   DEQP_CONFIG="rgba8888d24s8ms4" \ | ||||
| #   DEQP_VARIANT="multisample" \ | ||||
| #   /install/deqp-runner.sh; then | ||||
| #     EXIT=1 | ||||
| # fi | ||||
|  | ||||
| exit $EXIT | ||||
| @@ -1,14 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| while true; do | ||||
|   devcds=`find /sys/devices/virtual/devcoredump/ -name data 2>/dev/null` | ||||
|   for i in $devcds; do | ||||
|     echo "Found a devcoredump at $i." | ||||
|     if cp $i /results/first.devcore; then | ||||
|       echo 1 > $i | ||||
|       echo "Saved to the job artifacts at /first.devcore" | ||||
|       exit 0 | ||||
|     fi | ||||
|   done | ||||
|   sleep 10 | ||||
| done | ||||
| @@ -1,100 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Boot script for Chrome OS devices attached to a servo debug connector, using | ||||
| # NFS and TFTP to boot. | ||||
|  | ||||
| # We're run from the root of the repo, make a helper var for our paths | ||||
| BM=$CI_PROJECT_DIR/install/bare-metal | ||||
|  | ||||
| # Runner config checks | ||||
| if [ -z "$BM_SERIAL" ]; then | ||||
|   echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is the CPU serial device." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_SERIAL_EC" ]; then | ||||
|   echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is the EC serial device for controlling board power" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ ! -d /nfs ]; then | ||||
|   echo "NFS rootfs directory needs to be mounted at /nfs by the gitlab runner" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ ! -d /tftp ]; then | ||||
|   echo "TFTP directory for this board needs to be mounted at /tftp by the gitlab runner" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| # job config checks | ||||
| if [ -z "$BM_KERNEL" ]; then | ||||
|   echo "Must set BM_KERNEL to your board's kernel FIT image" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_ROOTFS" ]; then | ||||
|   echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_CMDLINE" ]; then | ||||
|   echo "Must set BM_CMDLINE to your board's kernel command line arguments" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| # Clear out any previous run's artifacts. | ||||
| rm -rf results/ | ||||
| mkdir -p results | ||||
|  | ||||
| # Create the rootfs in the NFS directory.  rm to make sure it's in a pristine | ||||
| # state, since it's volume-mounted on the host. | ||||
| rsync -a --delete $BM_ROOTFS/ /nfs/ | ||||
| mkdir -p /nfs/results | ||||
| . $BM/rootfs-setup.sh /nfs | ||||
|  | ||||
| # Put the kernel/dtb image and the boot command line in the tftp directory for | ||||
| # the board to find.  For normal Mesa development, we build the kernel and | ||||
| # store it in the docker container that this script is running in. | ||||
| # | ||||
| # However, container builds are expensive, so when you're hacking on the | ||||
| # kernel, it's nice to be able to skip the half hour container build and plus | ||||
| # moving that container to the runner.  So, if BM_KERNEL is a URL, fetch it | ||||
| # instead of looking in the container.  Note that the kernel build should be | ||||
| # the output of: | ||||
| # | ||||
| # make Image.lzma | ||||
| # | ||||
| # mkimage \ | ||||
| #  -A arm64 \ | ||||
| #  -f auto \ | ||||
| #  -C lzma \ | ||||
| #  -d arch/arm64/boot/Image.lzma \ | ||||
| #  -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \ | ||||
| #  cheza-image.img | ||||
|  | ||||
| rm -rf /tftp/* | ||||
| if echo "$BM_KERNEL" | grep -q http; then | ||||
|   apt install -y wget | ||||
|   wget $BM_KERNEL -O /tftp/vmlinuz | ||||
| else | ||||
|   cp $BM_KERNEL /tftp/vmlinuz | ||||
| fi | ||||
| echo "$BM_CMDLINE" > /tftp/cmdline | ||||
|  | ||||
| set +e | ||||
| python3 $BM/cros_servo_run.py \ | ||||
|         --cpu $BM_SERIAL \ | ||||
|         --ec $BM_SERIAL_EC | ||||
| ret=$? | ||||
| set -e | ||||
|  | ||||
| # Bring artifacts back from the NFS dir to the build dir where gitlab-runner | ||||
| # will look for them. | ||||
| cp -Rp /nfs/results/. results/ | ||||
|  | ||||
| exit $ret | ||||
| @@ -1,156 +0,0 @@ | ||||
| #!/usr/bin/env python3 | ||||
| # | ||||
| # Copyright © 2020 Google LLC | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a | ||||
| # copy of this software and associated documentation files (the "Software"), | ||||
| # to deal in the Software without restriction, including without limitation | ||||
| # the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
| # and/or sell copies of the Software, and to permit persons to whom the | ||||
| # Software is furnished to do so, subject to the following conditions: | ||||
| # | ||||
| # The above copyright notice and this permission notice (including the next | ||||
| # paragraph) shall be included in all copies or substantial portions of the | ||||
| # Software. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
| # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||
| # IN THE SOFTWARE. | ||||
|  | ||||
| import argparse | ||||
| import queue | ||||
| import re | ||||
| from serial_buffer import SerialBuffer | ||||
| import sys | ||||
| import threading | ||||
|  | ||||
|  | ||||
| class CrosServoRun: | ||||
|     def __init__(self, cpu, ec): | ||||
|         # Merged FIFO for the two serial buffers, fed by threads. | ||||
|         self.serial_queue = queue.Queue() | ||||
|         self.sentinel = object() | ||||
|         self.threads_done = 0 | ||||
|  | ||||
|         self.ec_ser = SerialBuffer( | ||||
|             ec, "results/serial-ec.txt", "R SERIAL-EC> ") | ||||
|         self.cpu_ser = SerialBuffer( | ||||
|             cpu, "results/serial.txt", "R SERIAL-CPU> ") | ||||
|  | ||||
|         self.iter_feed_ec = threading.Thread( | ||||
|             target=self.iter_feed_queue, daemon=True, args=(self.ec_ser.lines(),)) | ||||
|         self.iter_feed_ec.start() | ||||
|  | ||||
|         self.iter_feed_cpu = threading.Thread( | ||||
|             target=self.iter_feed_queue, daemon=True, args=(self.cpu_ser.lines(),)) | ||||
|         self.iter_feed_cpu.start() | ||||
|  | ||||
|     # Feed lines from our serial queues into the merged queue, marking when our | ||||
|     # input is done. | ||||
|     def iter_feed_queue(self, it): | ||||
|         for i in it: | ||||
|             self.serial_queue.put(i) | ||||
|         self.serial_queue.put(sentinel) | ||||
|  | ||||
|     # Return the next line from the queue, counting how many threads have | ||||
|     # terminated and joining when done | ||||
|     def get_serial_queue_line(self): | ||||
|         line = self.serial_queue.get() | ||||
|         if line == self.sentinel: | ||||
|             self.threads_done = self.threads_done + 1 | ||||
|             if self.threads_done == 2: | ||||
|                 self.iter_feed_cpu.join() | ||||
|                 self.iter_feed_ec.join() | ||||
|         return line | ||||
|  | ||||
|     # Returns an iterator for getting the next line. | ||||
|     def serial_queue_lines(self): | ||||
|         return iter(self.get_serial_queue_line, self.sentinel) | ||||
|  | ||||
|     def ec_write(self, s): | ||||
|         print("W SERIAL-EC> %s" % s) | ||||
|         self.ec_ser.serial.write(s.encode()) | ||||
|  | ||||
|     def cpu_write(self, s): | ||||
|         print("W SERIAL-CPU> %s" % s) | ||||
|         self.cpu_ser.serial.write(s.encode()) | ||||
|  | ||||
|     def run(self): | ||||
|         # Flush any partial commands in the EC's prompt, then ask for a reboot. | ||||
|         self.ec_write("\n") | ||||
|         self.ec_write("reboot\n") | ||||
|  | ||||
|         # This is emitted right when the bootloader pauses to check for input. | ||||
|         # Emit a ^N character to request network boot, because we don't have a | ||||
|         # direct-to-netboot firmware on cheza. | ||||
|         for line in self.serial_queue_lines(): | ||||
|             if re.search("load_archive: loading locale_en.bin", line): | ||||
|                 self.cpu_write("\016") | ||||
|                 break | ||||
|  | ||||
|             # The Cheza boards have issues with failing to bring up power to | ||||
|             # the system sometimes, possibly dependent on ambient temperature | ||||
|             # in the farm. | ||||
|             if re.search("POWER_GOOD not seen in time", line): | ||||
|                 print("Detected intermittent poweron failure, restarting run...") | ||||
|                 return 2 | ||||
|  | ||||
|         tftp_failures = 0 | ||||
|         for line in self.serial_queue_lines(): | ||||
|             if re.search("---. end Kernel panic", line): | ||||
|                 return 1 | ||||
|  | ||||
|             # The Cheza firmware seems to occasionally get stuck looping in | ||||
|             # this error state during TFTP booting, possibly based on amount of | ||||
|             # network traffic around it, but it'll usually recover after a | ||||
|             # reboot. | ||||
|             if re.search("R8152: Bulk read error 0xffffffbf", line): | ||||
|                 tftp_failures += 1 | ||||
|                 if tftp_failures >= 100: | ||||
|                     print("Detected intermittent tftp failure, restarting run...") | ||||
|                     return 2 | ||||
|  | ||||
|             # There are very infrequent bus errors during power management transitions | ||||
|             # on cheza, which we don't expect to be the case on future boards. | ||||
|             if re.search("Kernel panic - not syncing: Asynchronous SError Interrupt", line): | ||||
|                 print("Detected cheza power management bus error, restarting run...") | ||||
|                 return 2 | ||||
|  | ||||
|             result = re.search("bare-metal result: (\S*)", line) | ||||
|             if result: | ||||
|                 if result.group(1) == "pass": | ||||
|                     return 0 | ||||
|                 else: | ||||
|                     return 1 | ||||
|  | ||||
|         print("Reached the end of the CPU serial log without finding a result") | ||||
|         return 1 | ||||
|  | ||||
|  | ||||
| def main(): | ||||
|     parser = argparse.ArgumentParser() | ||||
|     parser.add_argument('--cpu', type=str, | ||||
|                         help='CPU Serial device', required=True) | ||||
|     parser.add_argument( | ||||
|         '--ec', type=str, help='EC Serial device', required=True) | ||||
|     args = parser.parse_args() | ||||
|  | ||||
|     servo = CrosServoRun(args.cpu, args.ec) | ||||
|  | ||||
|     while True: | ||||
|         retval = servo.run() | ||||
|         if retval != 2: | ||||
|             break | ||||
|  | ||||
|     # power down the CPU on the device | ||||
|     servo.ec_write("power off\n") | ||||
|  | ||||
|     sys.exit(retval) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
| @@ -1,30 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
|  | ||||
| STRINGS=$(mktemp) | ||||
| ERRORS=$(mktemp) | ||||
|  | ||||
| trap "rm $STRINGS; rm $ERRORS;" EXIT | ||||
|  | ||||
| FILE=$1 | ||||
| shift 1 | ||||
|  | ||||
| while getopts "f:e:" opt; do | ||||
|   case $opt in | ||||
|     f) echo "$OPTARG" >> $STRINGS;; | ||||
|     e) echo "$OPTARG" >> $STRINGS ; echo "$OPTARG" >> $ERRORS;; | ||||
|   esac | ||||
| done | ||||
| shift $((OPTIND -1)) | ||||
|  | ||||
| echo "Waiting for $FILE to say one of following strings" | ||||
| cat $STRINGS | ||||
|  | ||||
| while ! egrep -wf $STRINGS $FILE; do | ||||
|   sleep 2 | ||||
| done | ||||
|  | ||||
| if egrep -wf $ERRORS $FILE; then | ||||
|   exit 1 | ||||
| fi | ||||
| @@ -1,133 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| BM=$CI_PROJECT_DIR/install/bare-metal | ||||
|  | ||||
| if [ -z "$BM_SERIAL" -a -z "$BM_SERIAL_SCRIPT" ]; then | ||||
|   echo "Must set BM_SERIAL OR BM_SERIAL_SCRIPT in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "BM_SERIAL:" | ||||
|   echo "  This is the serial device to talk to for waiting for fastboot to be ready and logging from the kernel." | ||||
|   echo "BM_SERIAL_SCRIPT:" | ||||
|   echo "  This is a shell script to talk to for waiting for fastboot to be ready and logging from the kernel." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_POWERUP" ]; then | ||||
|   echo "Must set BM_POWERUP in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is a shell script that should reset the device and begin its boot sequence" | ||||
|   echo "such that it pauses at fastboot." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_POWERDOWN" ]; then | ||||
|   echo "Must set BM_POWERDOWN in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is a shell script that should power off the device." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_FASTBOOT_SERIAL" ]; then | ||||
|   echo "Must set BM_FASTBOOT_SERIAL in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This must be the a stable-across-resets fastboot serial number." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_KERNEL" ]; then | ||||
|   echo "Must set BM_KERNEL to your board's kernel vmlinuz or Image.gz in the job's variables:" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_DTB" ]; then | ||||
|   echo "Must set BM_DTB to your board's DTB file in the job's variables:" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_ROOTFS" ]; then | ||||
|   echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables:" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_WEBDAV_IP" -o -z "$BM_WEBDAV_PORT" ]; then | ||||
|   echo "BM_WEBDAV_IP and/or BM_WEBDAV_PORT is not set - no results will be uploaded from DUT!" | ||||
|   WEBDAV_CMDLINE="" | ||||
| else | ||||
|   WEBDAV_CMDLINE="webdav=http://$BM_WEBDAV_IP:$BM_WEBDAV_PORT" | ||||
| fi | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| # Clear out any previous run's artifacts. | ||||
| rm -rf results/ | ||||
| mkdir -p results | ||||
|  | ||||
| # Create the rootfs in a temp dir | ||||
| rsync -a --delete $BM_ROOTFS/ rootfs/ | ||||
| . $BM/rootfs-setup.sh rootfs | ||||
|  | ||||
| # Finally, pack it up into a cpio rootfs.  Skip the vulkan CTS since none of | ||||
| # these devices use it and it would take up space in the initrd. | ||||
|  | ||||
| if [ -n "$PIGLIT_PROFILES" ]; then | ||||
|   EXCLUDE_FILTER="deqp|arb_gpu_shader5|arb_gpu_shader_fp64|arb_gpu_shader_int64|glsl-4.[0123456]0|arb_tessellation_shader" | ||||
| else | ||||
|   EXCLUDE_FILTER="piglit|python" | ||||
| fi | ||||
|  | ||||
| pushd rootfs | ||||
| find -H | \ | ||||
|   egrep -v "external/(openglcts|vulkancts|amber|glslang|spirv-tools)" | | ||||
|   egrep -v "traces-db|apitrace|renderdoc" | \ | ||||
|   egrep -v $EXCLUDE_FILTER | \ | ||||
|   cpio -H newc -o | \ | ||||
|   xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz | ||||
| popd | ||||
|  | ||||
| # Make the combined kernel image and dtb for passing to fastboot.  For normal | ||||
| # Mesa development, we build the kernel and store it in the docker container | ||||
| # that this script is running in. | ||||
| # | ||||
| # However, container builds are expensive, so when you're hacking on the | ||||
| # kernel, it's nice to be able to skip the half hour container build and plus | ||||
| # moving that container to the runner.  So, if BM_KERNEL+BM_DTB are URLs, | ||||
| # fetch them instead of looking in the container. | ||||
| if echo "$BM_KERNEL $BM_DTB" | grep -q http; then | ||||
|   apt install -y wget | ||||
|  | ||||
|   wget $BM_KERNEL -O kernel | ||||
|   wget $BM_DTB -O dtb | ||||
|  | ||||
|   cat kernel dtb > Image.gz-dtb | ||||
|   rm kernel dtb | ||||
| else | ||||
|   cat $BM_KERNEL $BM_DTB > Image.gz-dtb | ||||
| fi | ||||
|  | ||||
| abootimg \ | ||||
|   --create artifacts/fastboot.img \ | ||||
|   -k Image.gz-dtb \ | ||||
|   -r rootfs.cpio.gz \ | ||||
|   -c cmdline="$BM_CMDLINE $WEBDAV_CMDLINE" | ||||
| rm Image.gz-dtb | ||||
|  | ||||
| # Start nginx to get results from DUT | ||||
| if [ -n "$WEBDAV_CMDLINE" ]; then | ||||
|   ln -s `pwd`/results /results | ||||
|   sed -i s/80/$BM_WEBDAV_PORT/g /etc/nginx/sites-enabled/default | ||||
|   sed -i s/www-data/root/g /etc/nginx/nginx.conf | ||||
|   nginx | ||||
| fi | ||||
|  | ||||
| export PATH=$BM:$PATH | ||||
|  | ||||
| # Start background command for talking to serial if we have one. | ||||
| if [ -n "$BM_SERIAL_SCRIPT" ]; then | ||||
|   $BM_SERIAL_SCRIPT | tee results/serial-output.txt & | ||||
|  | ||||
|   while [ ! -e results/serial-output.txt ]; do | ||||
|     sleep 1 | ||||
|   done | ||||
| fi | ||||
|  | ||||
| $BM/fastboot_run.py \ | ||||
|   --dev="$BM_SERIAL" \ | ||||
|   --fbserial="$BM_FASTBOOT_SERIAL" \ | ||||
|   --powerup="$BM_POWERUP" \ | ||||
|   --powerdown="$BM_POWERDOWN" | ||||
| @@ -1,102 +0,0 @@ | ||||
| #!/usr/bin/env python3 | ||||
| # | ||||
| # Copyright © 2020 Google LLC | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a | ||||
| # copy of this software and associated documentation files (the "Software"), | ||||
| # to deal in the Software without restriction, including without limitation | ||||
| # the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
| # and/or sell copies of the Software, and to permit persons to whom the | ||||
| # Software is furnished to do so, subject to the following conditions: | ||||
| # | ||||
| # The above copyright notice and this permission notice (including the next | ||||
| # paragraph) shall be included in all copies or substantial portions of the | ||||
| # Software. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
| # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||
| # IN THE SOFTWARE. | ||||
|  | ||||
| import argparse | ||||
| import os | ||||
| import re | ||||
| from serial_buffer import SerialBuffer | ||||
| import sys | ||||
| import threading | ||||
|  | ||||
| class FastbootRun: | ||||
|     def __init__(self, args): | ||||
|         self.powerup = args.powerup | ||||
|         self.ser = SerialBuffer(args.dev, "results/serial-output.txt", "R SERIAL> ") | ||||
|         self.fastboot="fastboot boot -s {ser} artifacts/fastboot.img".format(ser=args.fbserial) | ||||
|  | ||||
|     def logged_system(self, cmd): | ||||
|         print("Running '{}'".format(cmd)) | ||||
|         return os.system(cmd) | ||||
|  | ||||
|     def run(self): | ||||
|         if self.logged_system(self.powerup) != 0: | ||||
|             return 1 | ||||
|  | ||||
|         fastboot_ready = False | ||||
|         for line in self.ser.lines(): | ||||
|             if re.search("fastboot: processing commands", line) or \ | ||||
|                 re.search("Listening for fastboot command on", line): | ||||
|                 fastboot_ready = True | ||||
|                 break | ||||
|  | ||||
|             if re.search("data abort", line): | ||||
|                 return 1 | ||||
|  | ||||
|         if not fastboot_ready: | ||||
|             print("Failed to get to fastboot prompt") | ||||
|             return 1 | ||||
|  | ||||
|         if self.logged_system(self.fastboot) != 0: | ||||
|             return 1 | ||||
|  | ||||
|         for line in self.ser.lines(): | ||||
|             if re.search("---. end Kernel panic", line): | ||||
|                 return 1 | ||||
|  | ||||
|             # The db820c boards intermittently reboot.  Just restart the run | ||||
|             # when if we see a reboot after we got past fastboot. | ||||
|             if re.search("PON REASON", line): | ||||
|                 print("Detected spontaneous reboot, restarting run...") | ||||
|                 return 2 | ||||
|  | ||||
|             result = re.search("bare-metal result: (\S*)", line) | ||||
|             if result: | ||||
|                 if result.group(1) == "pass": | ||||
|                     return 0 | ||||
|                 else: | ||||
|                     return 1 | ||||
|  | ||||
|         print("Reached the end of the CPU serial log without finding a result") | ||||
|         return 1 | ||||
|  | ||||
| def main(): | ||||
|     parser = argparse.ArgumentParser() | ||||
|     parser.add_argument('--dev', type=str, help='Serial device (otherwise reading from serial-output.txt)') | ||||
|     parser.add_argument('--powerup', type=str, help='shell command for rebooting', required=True) | ||||
|     parser.add_argument('--powerdown', type=str, help='shell command for powering off', required=True) | ||||
|     parser.add_argument('--fbserial', type=str, help='fastboot serial number of the board', required=True) | ||||
|     args = parser.parse_args() | ||||
|  | ||||
|     fastboot = FastbootRun(args) | ||||
|  | ||||
|     while True: | ||||
|         retval = fastboot.run() | ||||
|         if retval != 2: | ||||
|             break | ||||
|  | ||||
|     fastboot.logged_system(args.powerdown) | ||||
|  | ||||
|     sys.exit(retval) | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
| @@ -1,10 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| relay=$1 | ||||
|  | ||||
| if [ -z "$relay" ]; then | ||||
|     echo "Must supply a relay arg" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| $CI_PROJECT_DIR/install/bare-metal/google-power-relay.py off $relay | ||||
| @@ -1,19 +0,0 @@ | ||||
| #!/usr/bin/python3 | ||||
|  | ||||
| import sys | ||||
| import serial | ||||
|  | ||||
| mode = sys.argv[1] | ||||
| relay = sys.argv[2] | ||||
|  | ||||
| # our relays are "off" means "board is powered". | ||||
| mode_swap = { | ||||
|      "on" : "off", | ||||
|      "off" : "on", | ||||
| } | ||||
| mode = mode_swap[mode] | ||||
|  | ||||
| ser = serial.Serial('/dev/ttyACM0', 115200, timeout=2) | ||||
| command = "relay {} {}\n\r".format(mode, relay) | ||||
| ser.write(command.encode()) | ||||
| ser.close() | ||||
| @@ -1,12 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| relay=$1 | ||||
|  | ||||
| if [ -z "$relay" ]; then | ||||
|     echo "Must supply a relay arg" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| $CI_PROJECT_DIR/install/bare-metal/google-power-relay.py off $relay | ||||
| sleep 5 | ||||
| $CI_PROJECT_DIR/install/bare-metal/google-power-relay.py on $relay | ||||
| @@ -1,48 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| mount -t proc none /proc | ||||
| mount -t sysfs none /sys | ||||
| mount -t devtmpfs none /dev || echo possibly already mounted | ||||
| mkdir -p /dev/pts | ||||
| mount -t devpts devpts /dev/pts | ||||
| mount -t tmpfs tmpfs /tmp | ||||
|  | ||||
| . /set-job-env-vars.sh | ||||
|  | ||||
| [ -z "$BM_KERNEL_MODULES" ] || modprobe "$BM_KERNEL_MODULES" | ||||
|  | ||||
| # Store Mesa's disk cache under /tmp, rather than sending it out over NFS. | ||||
| export XDG_CACHE_HOME=/tmp | ||||
|  | ||||
| echo "nameserver 8.8.8.8" > /etc/resolv.conf | ||||
|  | ||||
| # Not all DUTs have network | ||||
| sntp -sS pool.ntp.org || true | ||||
|  | ||||
| # Start a little daemon to capture the first devcoredump we encounter.  (They | ||||
| # expire after 5 minutes, so we poll for them). | ||||
| ./capture-devcoredump.sh & | ||||
|  | ||||
| if sh $BARE_METAL_TEST_SCRIPT; then | ||||
|   OK=1 | ||||
| else | ||||
|   OK=0 | ||||
| fi | ||||
|  | ||||
| # upload artifacts via webdav | ||||
| WEBDAV=$(cat /proc/cmdline | tr " " "\n" | grep webdav | cut -d '=' -f 2 || true) | ||||
| if [ -n "$WEBDAV" ]; then | ||||
|   find /results -type f -exec curl -T {} $WEBDAV/{} \; | ||||
| fi | ||||
|  | ||||
| if [ $OK -eq 1 ]; then | ||||
|     echo "bare-metal result: pass" | ||||
| else | ||||
|     echo "bare-metal result: fail" | ||||
| fi | ||||
|  | ||||
| # Wait until the job would have timed out anyway, so we don't spew a "init | ||||
| # exited" panic. | ||||
| sleep 6000 | ||||
| @@ -1,20 +0,0 @@ | ||||
| server { | ||||
|     listen 80 default_server; | ||||
|     listen [::]:80 default_server; | ||||
|  | ||||
|     server_name _; | ||||
|  | ||||
|     location / { | ||||
|         dav_methods     PUT; | ||||
|         dav_ext_methods PROPFIND OPTIONS; | ||||
|         dav_access      user:rw group:rw all:r; | ||||
|  | ||||
|         client_body_temp_path   /tmp; | ||||
|         client_max_body_size    0; | ||||
|         create_full_put_path    on; | ||||
|  | ||||
|         root /results; | ||||
|  | ||||
|         autoindex     on; | ||||
|     } | ||||
| } | ||||
| @@ -1,8 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| if [ -z "$BM_POE_INTERFACE" ]; then | ||||
|     echo "Must supply the PoE Interface to power off" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| flock /var/run/poe.lock -c "$CI_PROJECT_DIR/install/bare-metal/poe-set $BM_POE_INTERFACE off" | ||||
| @@ -1,8 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| if [ -z "$BM_POE_INTERFACE" ]; then | ||||
|     echo "Must supply the PoE Interface to power up" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| flock /var/run/poe.lock -c "$CI_PROJECT_DIR/install/bare-metal/poe-set $BM_POE_INTERFACE reset" | ||||
| @@ -1,118 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Boot script for devices attached to a PoE switch, using NFS for the root | ||||
| # filesystem. | ||||
|  | ||||
| # We're run from the root of the repo, make a helper var for our paths | ||||
| BM=$CI_PROJECT_DIR/install/bare-metal | ||||
|  | ||||
| # Runner config checks | ||||
| if [ -z "$BM_SERIAL" ]; then | ||||
|   echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is the serial port to listen the device." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_POE_ADDRESS" ]; then | ||||
|   echo "Must set BM_POE_ADDRESS in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is the PoE switch address to connect for powering up/down devices." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_POE_USERNAME" ]; then | ||||
|   echo "Must set BM_POE_USERNAME in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is the PoE switch username." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_POE_PASSWORD" ]; then | ||||
|   echo "Must set BM_POE_PASSWORD in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is the PoE switch password." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_POE_INTERFACE" ]; then | ||||
|   echo "Must set BM_POE_INTERFACE in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is the PoE switch interface where the device is connected." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_POWERUP" ]; then | ||||
|   echo "Must set BM_POWERUP in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is a shell script that should power up the device and begin its boot sequence." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_POWERDOWN" ]; then | ||||
|   echo "Must set BM_POWERDOWN in your gitlab-runner config.toml [[runners]] environment" | ||||
|   echo "This is a shell script that should power off the device." | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ ! -d /nfs ]; then | ||||
|   echo "NFS rootfs directory needs to be mounted at /nfs by the gitlab runner" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ ! -d /tftp ]; then | ||||
|   echo "TFTP directory for this board needs to be mounted at /tftp by the gitlab runner" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| # job config checks | ||||
| if [ -z "$BM_ROOTFS" ]; then | ||||
|   echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_BOOTFS" ]; then | ||||
|   echo "Must set /boot files for the TFTP boot in the job's variables" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| if [ -z "$BM_CMDLINE" ]; then | ||||
|   echo "Must set BM_CMDLINE to your board's kernel command line arguments" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| # Clear out any previous run's artifacts. | ||||
| rm -rf results/ | ||||
| mkdir -p results | ||||
|  | ||||
| # Create the rootfs in the NFS directory.  rm to make sure it's in a pristine | ||||
| # state, since it's volume-mounted on the host. | ||||
| rsync -a --delete $BM_ROOTFS/ /nfs/ | ||||
|  | ||||
| [ -z $BM_ROOTFS_EXTRA ] || rsync -a $BM_ROOTFS_EXTRA/ /nfs/ | ||||
|  | ||||
| mkdir -p /nfs/results | ||||
| . $BM/rootfs-setup.sh /nfs | ||||
|  | ||||
| rsync -a --delete $BM_BOOTFS/ /tftp/ | ||||
|  | ||||
| echo "$BM_CMDLINE" > /tftp/cmdline.txt | ||||
|  | ||||
| set +e | ||||
| ATTEMPTS=2 | ||||
| while [ $((ATTEMPTS--)) -gt 0 ]; do | ||||
|   python3 $BM/poe_run.py \ | ||||
|           --dev="$BM_SERIAL" \ | ||||
|           --powerup="$BM_POWERUP" \ | ||||
|           --powerdown="$BM_POWERDOWN" | ||||
|   ret=$? | ||||
|  | ||||
|   if [ $ret -eq 2 ]; then | ||||
|     echo "Did not detect boot sequence, retrying..." | ||||
|   else | ||||
|     ATTEMPTS=0 | ||||
|   fi | ||||
| done | ||||
| set -e | ||||
|  | ||||
| # Bring artifacts back from the NFS dir to the build dir where gitlab-runner | ||||
| # will look for them. | ||||
| cp -Rp /nfs/results/. results/ | ||||
|  | ||||
| exit $ret | ||||
| @@ -1,42 +0,0 @@ | ||||
| #!/usr/bin/expect -f | ||||
| set SWITCHSERVER $env(BM_POE_ADDRESS) | ||||
| set USERNAME $env(BM_POE_USERNAME) | ||||
| set PASSWORD $env(BM_POE_PASSWORD) | ||||
|  | ||||
| set PORTNUMBER [lindex $argv 0] | ||||
| set POESTATUS [lindex $argv 1] | ||||
|  | ||||
| log_user 0 | ||||
|  | ||||
| spawn telnet $SWITCHSERVER | ||||
| expect "Login" | ||||
| sleep 1 | ||||
| send "$USERNAME\t$PASSWORD\r" | ||||
| expect "Menu" | ||||
| send "\x01" | ||||
| expect ">" | ||||
| send "lcli\r" | ||||
| expect "Name:" | ||||
| send "$USERNAME\r" | ||||
| expect "Password:" | ||||
| send "$PASSWORD\r" | ||||
| expect "#" | ||||
| send "configure\r" | ||||
| expect "(config)#" | ||||
| send "interface GE $PORTNUMBER\r" | ||||
| expect "(config-if)#" | ||||
| if { "$POESTATUS" == "off" } { | ||||
|    send "power inline never\r" | ||||
| } elseif { "$POESTATUS" == "on" } { | ||||
|    send "power inline auto\r" | ||||
| } elseif { "$POESTATUS" == "reset" } { | ||||
|    send "power inline never\r" | ||||
|    send "power inline auto\r" | ||||
| } | ||||
| expect "(config-if)#" | ||||
| send "exit\r" | ||||
| expect "(config)#" | ||||
| send "exit\r" | ||||
| expect "$#" | ||||
| send "exit\r" | ||||
| expect eof | ||||
| @@ -1,90 +0,0 @@ | ||||
| #!/usr/bin/env python3 | ||||
| # | ||||
| # Copyright © 2020 Igalia, S.L. | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a | ||||
| # copy of this software and associated documentation files (the "Software"), | ||||
| # to deal in the Software without restriction, including without limitation | ||||
| # the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
| # and/or sell copies of the Software, and to permit persons to whom the | ||||
| # Software is furnished to do so, subject to the following conditions: | ||||
| # | ||||
| # The above copyright notice and this permission notice (including the next | ||||
| # paragraph) shall be included in all copies or substantial portions of the | ||||
| # Software. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
| # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||
| # IN THE SOFTWARE. | ||||
|  | ||||
| import argparse | ||||
| import os | ||||
| import re | ||||
| from serial_buffer import SerialBuffer | ||||
| import sys | ||||
| import threading | ||||
|  | ||||
| class PoERun: | ||||
|     def __init__(self, args): | ||||
|         self.powerup = args.powerup | ||||
|         self.powerdown = args.powerdown | ||||
|         self.ser = SerialBuffer(args.dev, "results/serial-output.txt", "", 60) | ||||
|  | ||||
|     def logged_system(self, cmd): | ||||
|         print("Running '{}'".format(cmd)) | ||||
|         return os.system(cmd) | ||||
|  | ||||
|     def run(self): | ||||
|         if self.logged_system(self.powerup) != 0: | ||||
|             return 1 | ||||
|  | ||||
|         boot_detected = False | ||||
|         for line in self.ser.lines(): | ||||
|             if re.search("Booting Linux", line): | ||||
|                 boot_detected = True | ||||
|                 break | ||||
|  | ||||
|         if not boot_detected: | ||||
|             print("Something wrong; couldn't detect the boot start up sequence") | ||||
|             self.logged_system(self.powerdown) | ||||
|             return 2 | ||||
|  | ||||
|         for line in self.ser.lines(): | ||||
|             if re.search("---. end Kernel panic", line): | ||||
|                 return 1 | ||||
|  | ||||
|             # Binning memory problems | ||||
|             if re.search("binner overflow mem", line): | ||||
|                 print("Memory overflow in the binner; GPU hang") | ||||
|                 return 1 | ||||
|  | ||||
|             result = re.search("bare-metal result: (\S*)", line) | ||||
|             if result: | ||||
|                 if result.group(1) == "pass": | ||||
|                     return 0 | ||||
|                 else: | ||||
|                     return 1 | ||||
|  | ||||
|         print("Reached the end of the CPU serial log without finding a result") | ||||
|         return 1 | ||||
|  | ||||
| def main(): | ||||
|     parser = argparse.ArgumentParser() | ||||
|     parser.add_argument('--dev', type=str, help='Serial device to monitor', required=True) | ||||
|     parser.add_argument('--powerup', type=str, help='shell command for rebooting', required=True) | ||||
|     parser.add_argument('--powerdown', type=str, help='shell command for powering off', required=True) | ||||
|     args = parser.parse_args() | ||||
|  | ||||
|     poe = PoERun(args) | ||||
|     retval = poe.run() | ||||
|  | ||||
|     poe.logged_system(args.powerdown) | ||||
|  | ||||
|     sys.exit(retval) | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
| @@ -1,83 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| rootfs_dst=$1 | ||||
|  | ||||
| mkdir -p $rootfs_dst/results | ||||
|  | ||||
| # Set up the init script that brings up the system. | ||||
| cp $BM/init.sh $rootfs_dst/init | ||||
|  | ||||
| cp $BM/capture-devcoredump.sh $rootfs_dst/ | ||||
|  | ||||
| set +x | ||||
| # Pass through relevant env vars from the gitlab job to the baremetal init script | ||||
| touch $rootfs_dst/set-job-env-vars.sh | ||||
| chmod +x $rootfs_dst/set-job-env-vars.sh | ||||
| for var in \ | ||||
|     BARE_METAL_TEST_SCRIPT \ | ||||
|     BM_KERNEL_MODULES \ | ||||
|     CI_COMMIT_BRANCH \ | ||||
|     CI_COMMIT_TITLE \ | ||||
|     CI_JOB_JWT \ | ||||
|     CI_JOB_ID \ | ||||
|     CI_JOB_URL \ | ||||
|     CI_MERGE_REQUEST_SOURCE_BRANCH_NAME \ | ||||
|     CI_MERGE_REQUEST_TITLE \ | ||||
|     CI_NODE_INDEX \ | ||||
|     CI_NODE_TOTAL \ | ||||
|     CI_PIPELINE_ID \ | ||||
|     CI_PROJECT_PATH \ | ||||
|     CI_RUNNER_DESCRIPTION \ | ||||
|     CI_SERVER_URL \ | ||||
|     DEQP_CASELIST_FILTER \ | ||||
|     DEQP_CONFIG \ | ||||
|     DEQP_EXPECTED_RENDERER \ | ||||
|     DEQP_FRACTION \ | ||||
|     DEQP_HEIGHT \ | ||||
|     DEQP_NO_SAVE_RESULTS \ | ||||
|     DEQP_PARALLEL \ | ||||
|     DEQP_RESULTS_DIR \ | ||||
|     DEQP_VARIANT \ | ||||
|     DEQP_VER \ | ||||
|     DEQP_WIDTH \ | ||||
|     DEVICE_NAME \ | ||||
|     DRIVER_NAME \ | ||||
|     EGL_PLATFORM \ | ||||
|     FDO_CI_CONCURRENT \ | ||||
|     FDO_UPSTREAM_REPO \ | ||||
|     FD_MESA_DEBUG \ | ||||
|     FLAKES_CHANNEL \ | ||||
|     GPU_VERSION \ | ||||
|     IR3_SHADER_DEBUG \ | ||||
|     MESA_GL_VERSION_OVERRIDE \ | ||||
|     MESA_GLSL_VERSION_OVERRIDE \ | ||||
|     MESA_GLES_VERSION_OVERRIDE \ | ||||
|     MINIO_HOST \ | ||||
|     NIR_VALIDATE \ | ||||
|     PIGLIT_HTML_SUMMARY \ | ||||
|     PIGLIT_JUNIT_RESULTS \ | ||||
|     PIGLIT_OPTIONS \ | ||||
|     PIGLIT_PLATFORM \ | ||||
|     PIGLIT_PROFILES \ | ||||
|     PIGLIT_REPLAY_ARTIFACTS_BASE_URL \ | ||||
|     PIGLIT_REPLAY_DESCRIPTION_FILE \ | ||||
|     PIGLIT_REPLAY_DEVICE_NAME \ | ||||
|     PIGLIT_REPLAY_EXTRA_ARGS \ | ||||
|     PIGLIT_REPLAY_REFERENCE_IMAGES_BASE_URL \ | ||||
|     PIGLIT_REPLAY_UPLOAD_TO_MINIO \ | ||||
|     PIGLIT_RESULTS \ | ||||
|     TU_DEBUG \ | ||||
|     VK_DRIVER \ | ||||
|     ; do | ||||
|   if [ -n "${!var+x}" ]; then | ||||
|     echo "export $var=${!var@Q}" >> $rootfs_dst/set-job-env-vars.sh | ||||
|   fi | ||||
| done | ||||
| echo "Variables passed through:" | ||||
| cat $rootfs_dst/set-job-env-vars.sh | ||||
| set -x | ||||
|  | ||||
| # Add the Mesa drivers we built, and make a consistent symlink to them. | ||||
| mkdir -p $rootfs_dst/$CI_PROJECT_DIR | ||||
| tar -C $rootfs_dst/$CI_PROJECT_DIR/ -xf $CI_PROJECT_DIR/artifacts/install.tar | ||||
| ln -sf $CI_PROJECT_DIR/install $rootfs_dst/install | ||||
| @@ -1,153 +0,0 @@ | ||||
| #!/usr/bin/env python3 | ||||
| # | ||||
| # Copyright © 2020 Google LLC | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a | ||||
| # copy of this software and associated documentation files (the "Software"), | ||||
| # to deal in the Software without restriction, including without limitation | ||||
| # the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
| # and/or sell copies of the Software, and to permit persons to whom the | ||||
| # Software is furnished to do so, subject to the following conditions: | ||||
| # | ||||
| # The above copyright notice and this permission notice (including the next | ||||
| # paragraph) shall be included in all copies or substantial portions of the | ||||
| # Software. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
| # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||
| # IN THE SOFTWARE. | ||||
|  | ||||
| import argparse | ||||
| from datetime import datetime, timezone | ||||
| import queue | ||||
| import serial | ||||
| import threading | ||||
| import time | ||||
|  | ||||
|  | ||||
| class SerialBuffer: | ||||
|     def __init__(self, dev, filename, prefix, timeout = None): | ||||
|         self.filename = filename | ||||
|         self.dev = dev | ||||
|  | ||||
|         if dev: | ||||
|             self.f = open(filename, "wb+") | ||||
|             self.serial = serial.Serial(dev, 115200, timeout=timeout if timeout else 10) | ||||
|         else: | ||||
|             self.f = open(filename, "rb") | ||||
|  | ||||
|         self.byte_queue = queue.Queue() | ||||
|         self.line_queue = queue.Queue() | ||||
|         self.prefix = prefix | ||||
|         self.timeout = timeout | ||||
|         self.sentinel = object() | ||||
|  | ||||
|         if self.dev: | ||||
|             self.read_thread = threading.Thread( | ||||
|                 target=self.serial_read_thread_loop, daemon=True) | ||||
|         else: | ||||
|             self.read_thread = threading.Thread( | ||||
|                 target=self.serial_file_read_thread_loop, daemon=True) | ||||
|         self.read_thread.start() | ||||
|  | ||||
|         self.lines_thread = threading.Thread( | ||||
|             target=self.serial_lines_thread_loop, daemon=True) | ||||
|         self.lines_thread.start() | ||||
|  | ||||
|     # Thread that just reads the bytes from the serial device to try to keep from | ||||
|     # buffer overflowing it. If nothing is received in 1 minute, it finalizes. | ||||
|     def serial_read_thread_loop(self): | ||||
|         greet = "Serial thread reading from %s\n" % self.dev | ||||
|         self.byte_queue.put(greet.encode()) | ||||
|  | ||||
|         while True: | ||||
|             try: | ||||
|                 b = self.serial.read() | ||||
|                 if len(b) > 0: | ||||
|                     self.byte_queue.put(b) | ||||
|                 elif self.timeout: | ||||
|                     self.byte_queue.put(self.sentinel) | ||||
|                     break | ||||
|             except Exception as err: | ||||
|                 print(self.prefix + str(err)) | ||||
|                 self.byte_queue.put(self.sentinel) | ||||
|                 break | ||||
|  | ||||
|     # Thread that just reads the bytes from the file of serial output that some | ||||
|     # other process is appending to. | ||||
|     def serial_file_read_thread_loop(self): | ||||
|         greet = "Serial thread reading from %s\n" % self.filename | ||||
|         self.byte_queue.put(greet.encode()) | ||||
|  | ||||
|         while True: | ||||
|             line = self.f.readline() | ||||
|             if line: | ||||
|                 self.byte_queue.put(line) | ||||
|             else: | ||||
|                 time.sleep(0.1) | ||||
|  | ||||
|     # Thread that processes the stream of bytes to 1) log to stdout, 2) log to | ||||
|     # file, 3) add to the queue of lines to be read by program logic | ||||
|  | ||||
|     def serial_lines_thread_loop(self): | ||||
|         line = bytearray() | ||||
|         while True: | ||||
|             bytes = self.byte_queue.get(block=True) | ||||
|  | ||||
|             if bytes == self.sentinel: | ||||
|                 self.read_thread.join() | ||||
|                 self.line_queue.put(self.sentinel) | ||||
|                 break | ||||
|  | ||||
|             # Write our data to the output file if we're the ones reading from | ||||
|             # the serial device | ||||
|             if self.dev: | ||||
|                 self.f.write(bytes) | ||||
|                 self.f.flush() | ||||
|  | ||||
|             for b in bytes: | ||||
|                 line.append(b) | ||||
|                 if b == b'\n'[0]: | ||||
|                     line = line.decode(errors="replace") | ||||
|  | ||||
|                     time = datetime.now().strftime('%y-%m-%d %H:%M:%S') | ||||
|                     print("{endc}{time} {prefix}{line}".format( | ||||
|                         time=time, prefix=self.prefix, line=line, endc='\033[0m'), flush=True, end='') | ||||
|  | ||||
|                     self.line_queue.put(line) | ||||
|                     line = bytearray() | ||||
|  | ||||
|     def get_line(self): | ||||
|         line = self.line_queue.get() | ||||
|         if line == self.sentinel: | ||||
|             self.lines_thread.join() | ||||
|         return line | ||||
|  | ||||
|     def lines(self): | ||||
|         return iter(self.get_line, self.sentinel) | ||||
|  | ||||
|  | ||||
| def main(): | ||||
|     parser = argparse.ArgumentParser() | ||||
|  | ||||
|     parser.add_argument('--dev', type=str, help='Serial device') | ||||
|     parser.add_argument('--file', type=str, | ||||
|                         help='Filename for serial output', required=True) | ||||
|     parser.add_argument('--prefix', type=str, | ||||
|                         help='Prefix for logging serial to stdout', nargs='?') | ||||
|  | ||||
|     args = parser.parse_args() | ||||
|  | ||||
|     ser = SerialBuffer(args.dev, args.file, args.prefix or "") | ||||
|     for line in ser.lines(): | ||||
|         # We're just using this as a logger, so eat the produced lines and drop | ||||
|         # them | ||||
|         pass | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
| @@ -1,36 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| # Need an unreleased version of Waffle for surfaceless support in apitrace | ||||
| # Replace this build with the Debian package once that's possible | ||||
|  | ||||
| WAFFLE_VERSION="e3c995d9a2693b687501715b6550619922346089" | ||||
| git clone https://gitlab.freedesktop.org/mesa/waffle.git --single-branch --no-checkout /waffle | ||||
| pushd /waffle | ||||
| git checkout "$WAFFLE_VERSION" | ||||
| cmake -S . -B _build -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release $EXTRA_CMAKE_ARGS | ||||
| make -C _build install | ||||
| mkdir -p build/lib build/bin | ||||
| cp _build/lib/libwaffle-1.so build/lib/libwaffle-1.so.0 | ||||
| cp _build/bin/wflinfo build/bin/wflinfo | ||||
| ${STRIP_CMD:-strip} build/lib/* build/bin/* | ||||
| find . -not -path './build' -not -path './build/*' -delete | ||||
| popd | ||||
|  | ||||
| APITRACE_VERSION="9.0" | ||||
|  | ||||
| git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace | ||||
| pushd /apitrace | ||||
| git checkout "$APITRACE_VERSION" | ||||
| # Note: The cmake stuff for waffle in apitrace fails to use waffle's library | ||||
| # directory.  Just force the issue here. | ||||
| env LDFLAGS="-L/usr/local/lib" \ | ||||
|     cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=False -DENABLE_WAFFLE=on -DWaffle_DIR=/usr/local/lib/cmake/Waffle/ $EXTRA_CMAKE_ARGS | ||||
| ninja -C _build | ||||
| mkdir build | ||||
| cp _build/apitrace build | ||||
| cp _build/eglretrace build | ||||
| ${STRIP_CMD:-strip} build/* | ||||
| find . -not -path './build' -not -path './build/*' -delete | ||||
| popd | ||||
| @@ -1,9 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| cargo install deqp-runner \ | ||||
|   -j ${FDO_CI_CONCURRENT:-4} \ | ||||
|   --version 0.4.0 \ | ||||
|   --root /usr/local \ | ||||
|   $EXTRA_CARGO_ARGS | ||||
| @@ -1,63 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| git config --global user.email "mesa@example.com" | ||||
| git config --global user.name "Mesa CI" | ||||
| git clone \ | ||||
|     https://github.com/KhronosGroup/VK-GL-CTS.git \ | ||||
|     -b vulkan-cts-1.2.5.0 \ | ||||
|     --depth 1 \ | ||||
|     /VK-GL-CTS | ||||
| pushd /VK-GL-CTS | ||||
|  | ||||
| # --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. | ||||
| python3 external/fetch_sources.py --insecure | ||||
|  | ||||
| mkdir -p /deqp | ||||
|  | ||||
| # Save the testlog stylesheets: | ||||
| cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp | ||||
| popd | ||||
|  | ||||
| pushd /deqp | ||||
| cmake -S /VK-GL-CTS -B . -G Ninja \ | ||||
|       -DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \ | ||||
|       -DCMAKE_BUILD_TYPE=Release \ | ||||
|       $EXTRA_CMAKE_ARGS | ||||
| ninja | ||||
|  | ||||
| # Copy out the mustpass lists we want. | ||||
| mkdir /deqp/mustpass | ||||
| cp /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt \ | ||||
|    /deqp/mustpass/vk-master.txt | ||||
|  | ||||
| cp \ | ||||
|     /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \ | ||||
|     /deqp/mustpass/. | ||||
| cp \ | ||||
|     /deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \ | ||||
|     /deqp/mustpass/. | ||||
|  | ||||
| # Save *some* executor utils, but otherwise strip things down | ||||
| # to reduct deqp build size: | ||||
| mkdir /deqp/executor.save | ||||
| cp /deqp/executor/testlog-to-* /deqp/executor.save | ||||
| rm -rf /deqp/executor | ||||
| mv /deqp/executor.save /deqp/executor | ||||
|  | ||||
| rm -rf /deqp/external/openglcts/modules/gl_cts/data/mustpass | ||||
| rm -rf /deqp/external/openglcts/modules/cts-runner | ||||
| rm -rf /deqp/modules/internal | ||||
| rm -rf /deqp/execserver | ||||
| rm -rf /deqp/modules/egl | ||||
| rm -rf /deqp/framework | ||||
| find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf | ||||
| ${STRIP_CMD:-strip} external/vulkancts/modules/vulkan/deqp-vk | ||||
| ${STRIP_CMD:-strip} external/openglcts/modules/glcts | ||||
| ${STRIP_CMD:-strip} modules/*/deqp-* | ||||
| du -sh * | ||||
| rm -rf /VK-GL-CTS | ||||
| popd | ||||
| @@ -1,14 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| git clone https://github.com/ValveSoftware/Fossilize.git | ||||
| cd Fossilize | ||||
| git checkout 6b5b570008c9ab5269e341f04c811fe49a1bb72c | ||||
| git submodule update --init | ||||
| mkdir build | ||||
| cd build | ||||
| cmake -S .. -B . -G Ninja -DCMAKE_BUILD_TYPE=Release | ||||
| ninja -C . install | ||||
| cd ../.. | ||||
| rm -rf Fossilize | ||||
| @@ -1,21 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| GFXRECONSTRUCT_VERSION=57c588c04af631d1d6d381a48e2b9283f9d9d528 | ||||
|  | ||||
| # Using the "dev" branch by now because it solves a crash and will allow us to | ||||
| # use the gfxreconstruct-info tool | ||||
| git clone https://github.com/LunarG/gfxreconstruct.git --single-branch -b dev --no-checkout /gfxreconstruct | ||||
| pushd /gfxreconstruct | ||||
| git checkout "$GFXRECONSTRUCT_VERSION" | ||||
| git submodule update --init | ||||
| git submodule update | ||||
| cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release | ||||
| ninja -C _build gfxrecon-replay gfxrecon-info | ||||
| mkdir -p build/bin | ||||
| install _build/tools/replay/gfxrecon-replay build/bin | ||||
| install _build/tools/info/gfxrecon-info build/bin | ||||
| strip build/bin/* | ||||
| find . -not -path './build' -not -path './build/*' -delete | ||||
| popd | ||||
| @@ -1,37 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| export LLVM_CONFIG="llvm-config-10" | ||||
|  | ||||
| $LLVM_CONFIG --version | ||||
|  | ||||
| git clone https://github.com/KhronosGroup/SPIRV-LLVM-Translator -b llvm_release_100 --depth 1 /SPIRV-LLVM-Translator | ||||
| pushd /SPIRV-LLVM-Translator | ||||
| cmake -S . -B . -G Ninja -DLLVM_BUILD_TOOLS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_INSTALL_PREFIX=`$LLVM_CONFIG --prefix` | ||||
| ninja | ||||
| ninja install | ||||
| popd | ||||
|  | ||||
|  | ||||
| git config --global user.email "mesa@example.com" | ||||
| git config --global user.name "Mesa CI" | ||||
| git clone \ | ||||
|     https://github.com/llvm/llvm-project \ | ||||
|     --depth 1 \ | ||||
|     /llvm-project | ||||
|  | ||||
| mkdir /libclc | ||||
| pushd /libclc | ||||
| cmake -S /llvm-project/libclc -B . -G Ninja -DLLVM_CONFIG=$LLVM_CONFIG -DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr | ||||
| ninja | ||||
| ninja install | ||||
| popd | ||||
|  | ||||
| # workaroud cmake vs debian packaging. | ||||
| mkdir -p /usr/lib/clc | ||||
| ln -s /usr/share/clc/spirv64-mesa3d-.spv /usr/lib/clc/ | ||||
| ln -s /usr/share/clc/spirv-mesa3d-.spv /usr/lib/clc/ | ||||
|  | ||||
| du -sh * | ||||
| rm -rf /libclc /llvm-project /SPIRV-LLVM-Translator | ||||
| @@ -1,14 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| export LIBDRM_VERSION=libdrm-2.4.102 | ||||
|  | ||||
| wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.xz | ||||
| tar -xvf $LIBDRM_VERSION.tar.xz && rm $LIBDRM_VERSION.tar.xz | ||||
| cd $LIBDRM_VERSION | ||||
| meson build -D vc4=false -D freedreno=false -D etnaviv=false $EXTRA_MESON_ARGS | ||||
| ninja -C build install | ||||
| cd .. | ||||
| rm -rf $LIBDRM_VERSION | ||||
|  | ||||
| @@ -1,27 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| if [ -n "$INCLUDE_OPENCL_TESTS" ]; then | ||||
|     PIGLIT_OPTS="-DPIGLIT_BUILD_CL_TESTS=ON" | ||||
| fi | ||||
|  | ||||
| git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit | ||||
| pushd /piglit | ||||
| git checkout c702d2bbf28b01a18ce613f386a4ffef03f6c0c9 | ||||
| patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff | ||||
| cmake -S . -B . -G Ninja -DCMAKE_BUILD_TYPE=Release $PIGLIT_OPTS $EXTRA_CMAKE_ARGS | ||||
| ninja $PIGLIT_BUILD_TARGETS | ||||
| find -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' | xargs rm -rf | ||||
| rm -rf target_api | ||||
| if [ "x$PIGLIT_BUILD_TARGETS" = "xpiglit_replayer" ]; then | ||||
|     find ! -regex "^\.$" \ | ||||
|          ! -regex "^\.\/piglit.*" \ | ||||
|          ! -regex "^\.\/framework.*" \ | ||||
|          ! -regex "^\.\/bin$" \ | ||||
|          ! -regex "^\.\/bin\/replayer\.py" \ | ||||
|          ! -regex "^\.\/templates.*" \ | ||||
|          ! -regex "^\.\/tests$" \ | ||||
|          ! -regex "^\.\/tests\/replay\.py" 2>/dev/null | xargs rm -rf | ||||
| fi | ||||
| popd | ||||
| @@ -1,17 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| RENDERDOC_VERSION=da02e88201dc3b64316fc33ce6ff69cc729689aa | ||||
|  | ||||
| git clone https://github.com/baldurk/renderdoc.git --single-branch --no-checkout /renderdoc | ||||
| pushd /renderdoc | ||||
| git checkout "$RENDERDOC_VERSION" | ||||
| cmake -S . -B _build -G Ninja -DENABLE_QRENDERDOC=false -DCMAKE_BUILD_TYPE=Release $EXTRA_CMAKE_ARGS | ||||
| ninja -C _build | ||||
| mkdir -p build/lib | ||||
| ${STRIP_CMD:-strip} _build/lib/*.so | ||||
| cp _build/lib/renderdoc.so build/lib | ||||
| cp _build/lib/librenderdoc.so build/lib | ||||
| find . -not -path './build' -not -path './build/*' -delete | ||||
| popd | ||||
| @@ -1,31 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Note that this script is not actually "building" rust, but build- is the | ||||
| # convention for the shared helpers for putting stuff in our containers. | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| # cargo (and rustup) wants to store stuff in $HOME/.cargo, and binaries in | ||||
| # $HOME/.cargo/bin.  Make bin a link to a public bin directory so the commands | ||||
| # are just available to all build jobs. | ||||
| mkdir -p $HOME/.cargo | ||||
| ln -s /usr/local/bin $HOME/.cargo/bin | ||||
|  | ||||
| # For rust in Mesa, we use rustup to install.  This lets us pick an arbitrary | ||||
| # version of the compiler, rather than whatever the container's Debian comes | ||||
| # with. | ||||
| # | ||||
| # Pick the rust compiler (1.41) available in Debian stable, and pick a specific | ||||
| # snapshot from rustup so the compiler doesn't drift on us. | ||||
| wget https://sh.rustup.rs -O - | \ | ||||
|     sh -s -- -y --default-toolchain 1.41.1-2020-02-27 | ||||
|  | ||||
| # Set up a config script for cross compiling -- cargo needs your system cc for | ||||
| # linking in cross builds, but doesn't know what you want to use for system cc. | ||||
| cat > /root/.cargo/config <<EOF | ||||
| [target.armv7-unknown-linux-gnueabihf] | ||||
| linker = "arm-linux-gnueabihf-gcc" | ||||
|  | ||||
| [target.aarch64-unknown-linux-gnu] | ||||
| linker = "aarch64-linux-gnu-gcc" | ||||
| EOF | ||||
| @@ -1,14 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| git clone --depth 1 https://github.com/KhronosGroup/SPIRV-Tools SPIRV-Tools | ||||
| pushd SPIRV-Tools | ||||
| pushd external | ||||
| git clone --depth 1 https://github.com/KhronosGroup/SPIRV-Headers | ||||
| popd | ||||
| cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release | ||||
| ninja -C _build | ||||
| ninja -C _build install | ||||
| popd | ||||
| rm -rf SPIRV-Tools | ||||
| @@ -1,20 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| mkdir -p /epoxy | ||||
| pushd /epoxy | ||||
| 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=43148d1115a12219a0560a538c9872d07c28c558 | ||||
| git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git --single-branch --no-checkout /virglrenderer | ||||
| pushd /virglrenderer | ||||
| git checkout "$VIRGLRENDERER_VERSION" | ||||
| meson build/ $EXTRA_MESON_ARGS | ||||
| ninja -C build install | ||||
| popd | ||||
| rm -rf /virglrenderer | ||||
| @@ -1,29 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| VULKANTOOLS_VERSION=1862c6a47b64cd09156205d7f7e6b3bfcea76390 | ||||
|  | ||||
| git clone https://github.com/LunarG/VulkanTools.git --single-branch --no-checkout /VulkanTools | ||||
| pushd /VulkanTools | ||||
| git checkout "$VULKANTOOLS_VERSION" | ||||
| ./update_external_sources.sh | ||||
| mkdir _build | ||||
| ./scripts/update_deps.py --dir=_build --config=release --generator=Ninja | ||||
| cmake -S . -B _build -G Ninja \ | ||||
|       -DCMAKE_BUILD_TYPE=Release \ | ||||
|       -DCMAKE_INSTALL_PREFIX=/VulkanTools/build \ | ||||
|       -DBUILD_TESTS=OFF \ | ||||
|       -DBUILD_VLF=OFF \ | ||||
|       -DBUILD_VKTRACE=OFF \ | ||||
|       -DBUILD_VIA=OFF \ | ||||
|       -DBUILD_VKTRACE_REPLAY=OFF \ | ||||
|       -C_build/helper.cmake | ||||
| ninja -C _build VkLayer_screenshot VkLayer_screenshot-staging-json | ||||
| mkdir -p build/etc/vulkan/explicit_layer.d | ||||
| mkdir build/lib | ||||
| install _build/layersvt/staging-json/VkLayer_screenshot.json build/etc/vulkan/explicit_layer.d | ||||
| install _build/layersvt/libVkLayer_screenshot.so build/lib | ||||
| strip build/lib/* | ||||
| find . -not -path './build' -not -path './build/*' -delete | ||||
| popd | ||||
| @@ -1,60 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| EPHEMERAL="\ | ||||
|          rdfind \ | ||||
|          unzip \ | ||||
|          " | ||||
|  | ||||
| apt-get install -y --no-remove $EPHEMERAL | ||||
|  | ||||
| # Fetch the NDK and extract just the toolchain we want. | ||||
| ndk=android-ndk-r21d | ||||
| wget -O $ndk.zip https://dl.google.com/android/repository/$ndk-linux-x86_64.zip | ||||
| unzip -d / $ndk.zip "$ndk/toolchains/llvm/*" | ||||
| rm $ndk.zip | ||||
| # Since it was packed as a zip file, symlinks/hardlinks got turned into | ||||
| # duplicate files.  Turn them into hardlinks to save on container space. | ||||
| rdfind -makehardlinks true -makeresultsfile false /android-ndk-r21d/ | ||||
| # Drop some large tools we won't use in this build. | ||||
| find /android-ndk-r21d/ -type f | egrep -i "clang-check|clang-tidy|lldb" | xargs rm -f | ||||
|  | ||||
| sh .gitlab-ci/create-android-ndk-pc.sh /$ndk zlib.pc "" "-lz" "1.2.3" | ||||
|  | ||||
| sh .gitlab-ci/create-android-cross-file.sh /$ndk x86_64-linux-android x86_64 x86_64 | ||||
| sh .gitlab-ci/create-android-cross-file.sh /$ndk i686-linux-android x86 x86 | ||||
| sh .gitlab-ci/create-android-cross-file.sh /$ndk aarch64-linux-android arm armv8 | ||||
| sh .gitlab-ci/create-android-cross-file.sh /$ndk arm-linux-androideabi arm armv7hl armv7a-linux-androideabi | ||||
|  | ||||
| # Not using build-libdrm.sh because we don't want its cleanup after building | ||||
| # each arch.  Fetch and extract now. | ||||
| export LIBDRM_VERSION=libdrm-2.4.102 | ||||
| wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.xz | ||||
| tar -xf $LIBDRM_VERSION.tar.xz && rm $LIBDRM_VERSION.tar.xz | ||||
|  | ||||
| for arch in \ | ||||
|         x86_64-linux-android \ | ||||
|         i686-linux-android \ | ||||
|         aarch64-linux-android \ | ||||
|         arm-linux-androideabi ; do | ||||
|  | ||||
|     cd $LIBDRM_VERSION | ||||
|     rm -rf build-$arch | ||||
|     meson build-$arch \ | ||||
|           --cross-file=/cross_file-$arch.txt \ | ||||
|           --libdir=lib/$arch \ | ||||
|           -Dlibkms=false \ | ||||
|           -Dnouveau=false \ | ||||
|           -Dvc4=false \ | ||||
|           -Detnaviv=false \ | ||||
|           -Dfreedreno=false \ | ||||
|           -Dintel=false \ | ||||
|           -Dcairo-tests=false | ||||
|     ninja -C build-$arch install | ||||
|     cd .. | ||||
| done | ||||
|  | ||||
| rm -rf $LIBDRM_VERSION | ||||
|  | ||||
| apt-get purge -y $EPHEMERAL | ||||
| @@ -1,5 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| arch=arm64 | ||||
|  | ||||
| . .gitlab-ci/container/baremetal_build.sh | ||||
| @@ -1,70 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| apt-get -y install ca-certificates | ||||
| sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list | ||||
| echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list | ||||
| apt-get update | ||||
| apt-get -y install \ | ||||
| 	abootimg \ | ||||
| 	android-sdk-ext4-utils \ | ||||
| 	autoconf \ | ||||
| 	automake \ | ||||
| 	bc \ | ||||
| 	bison \ | ||||
| 	ccache \ | ||||
| 	cmake \ | ||||
| 	debootstrap \ | ||||
| 	fastboot \ | ||||
| 	flex \ | ||||
| 	g++ \ | ||||
| 	git \ | ||||
| 	kmod \ | ||||
| 	lavacli \ | ||||
| 	libdrm-dev \ | ||||
| 	libelf-dev \ | ||||
| 	libexpat1-dev \ | ||||
| 	libx11-dev \ | ||||
| 	libx11-xcb-dev \ | ||||
| 	libxcb-dri2-0-dev \ | ||||
| 	libxcb-dri3-dev \ | ||||
| 	libxcb-glx0-dev \ | ||||
| 	libxcb-present-dev \ | ||||
| 	libxcb-randr0-dev \ | ||||
| 	libxcb-shm0-dev \ | ||||
| 	libxcb-xfixes0-dev \ | ||||
| 	libxdamage-dev \ | ||||
| 	libxext-dev \ | ||||
| 	libxrandr-dev \ | ||||
| 	libxshmfence-dev \ | ||||
| 	libxxf86vm-dev \ | ||||
| 	llvm-8-dev \ | ||||
| 	pkg-config \ | ||||
| 	python \ | ||||
| 	python3-mako \ | ||||
| 	python3-pil \ | ||||
| 	python3-pip \ | ||||
| 	python3-requests \ | ||||
| 	python3-setuptools \ | ||||
| 	unzip \ | ||||
| 	wget \ | ||||
| 	xz-utils \ | ||||
| 	zlib1g-dev | ||||
|  | ||||
| pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366 | ||||
|  | ||||
| apt install -y --no-remove -t buster-backports \ | ||||
|     meson | ||||
|  | ||||
| arch=armhf | ||||
| . .gitlab-ci/container/cross_build.sh | ||||
|  | ||||
| . .gitlab-ci/container/container_pre_build.sh | ||||
|  | ||||
| # dependencies where we want a specific version | ||||
| EXTRA_MESON_ARGS= | ||||
| . .gitlab-ci/build-libdrm.sh | ||||
|  | ||||
| . .gitlab-ci/container/container_post_build.sh | ||||
| @@ -1,47 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| ############### Install packages for building | ||||
| apt-get install -y ca-certificates | ||||
| sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list | ||||
| echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list | ||||
| apt-get update | ||||
|  | ||||
| apt-get install -y --no-remove \ | ||||
|         abootimg \ | ||||
|         android-sdk-ext4-utils \ | ||||
|         bc \ | ||||
|         bison \ | ||||
|         bzip2 \ | ||||
|         ccache \ | ||||
|         cmake \ | ||||
|         cpio \ | ||||
|         debootstrap \ | ||||
|         expect \ | ||||
|         fastboot \ | ||||
|         flex \ | ||||
|         g++ \ | ||||
|         git \ | ||||
|         netcat \ | ||||
|         nginx-full \ | ||||
|         pkg-config \ | ||||
|         procps \ | ||||
|         python3-distutils \ | ||||
|         python3-minimal \ | ||||
|         python3-serial \ | ||||
|         python3.7 \ | ||||
|         rsync \ | ||||
|         telnet \ | ||||
|         u-boot-tools \ | ||||
|         unzip | ||||
|  | ||||
| apt install -t buster-backports -y --no-remove \ | ||||
|     meson | ||||
|  | ||||
| # setup nginx | ||||
| sed -i '/gzip_/ s/#\ //g' /etc/nginx/nginx.conf | ||||
| cp .gitlab-ci/bare-metal/nginx-default-site  /etc/nginx/sites-enabled/default | ||||
|  | ||||
| . .gitlab-ci/container/container_post_build.sh | ||||
| @@ -1,7 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| arch=armhf | ||||
|  | ||||
| INCLUDE_PIGLIT=1 | ||||
|  | ||||
| . .gitlab-ci/container/baremetal_build.sh | ||||
| @@ -1,63 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| ROOTFS=/lava-files/rootfs-${arch} | ||||
|  | ||||
| INCLUDE_PIGLIT=1 | ||||
|  | ||||
| dpkg --add-architecture $arch | ||||
| apt-get update | ||||
|  | ||||
| # Cross-build test deps | ||||
| BAREMETAL_EPHEMERAL=" \ | ||||
|         autoconf \ | ||||
|         automake \ | ||||
|         crossbuild-essential-$arch \ | ||||
|         git-lfs \ | ||||
|         libboost-dev:$arch \ | ||||
|         libdrm-dev:$arch \ | ||||
|         libegl1-mesa-dev:$arch \ | ||||
|         libelf-dev:$arch \ | ||||
|         libexpat1-dev:$arch \ | ||||
|         libffi-dev:$arch \ | ||||
|         libgbm-dev:$arch \ | ||||
|         libgles2-mesa-dev:$arch \ | ||||
|         libpciaccess-dev:$arch \ | ||||
|         libpcre3-dev:$arch \ | ||||
|         libpng-dev:$arch \ | ||||
|         libpython3-dev:$arch \ | ||||
|         libstdc++6:$arch \ | ||||
|         libtinfo-dev:$arch \ | ||||
|         libudev-dev:$arch \ | ||||
|         libvulkan-dev:$arch \ | ||||
|         libwaffle-dev:$arch \ | ||||
|         libxcb-keysyms1-dev:$arch \ | ||||
|         libxkbcommon-dev:$arch \ | ||||
|         python3-dev \ | ||||
|         qt5-default \ | ||||
|         qt5-qmake \ | ||||
|         qtbase5-dev:$arch \ | ||||
|         " | ||||
|  | ||||
| apt-get install -y --no-remove $BAREMETAL_EPHEMERAL | ||||
|  | ||||
| mkdir /var/cache/apt/archives/$arch | ||||
|  | ||||
| ############### Create cross-files | ||||
|  | ||||
| . .gitlab-ci/create-cross-file.sh $arch | ||||
|  | ||||
| . .gitlab-ci/container/container_pre_build.sh | ||||
|  | ||||
| ############### Create rootfs | ||||
| KERNEL_URL=https://github.com/anholt/linux/archive/cheza-pagetables-2020-09-04.tar.gz | ||||
|  | ||||
| DEBIAN_ARCH=$arch INCLUDE_VK_CTS=1 . .gitlab-ci/container/lava_build.sh | ||||
|  | ||||
| ############### Uninstall the build software | ||||
|  | ||||
| apt-get purge -y $BAREMETAL_EPHEMERAL | ||||
|  | ||||
| . .gitlab-ci/container/container_post_build.sh | ||||
| @@ -1,8 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| apt-get autoremove -y --purge | ||||
|  | ||||
| # Clean up any build cache for rust. | ||||
| rm -rf /.cargo | ||||
|  | ||||
| ccache --show-stats | ||||
| @@ -1,31 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # Common setup among container builds before we get to building code. | ||||
|  | ||||
| export CCACHE_COMPILERCHECK=content | ||||
| export CCACHE_COMPRESS=true | ||||
| export CCACHE_DIR=/cache/mesa/ccache | ||||
| export PATH=/usr/lib/ccache:$PATH | ||||
|  | ||||
| # CMake ignores $PATH, so we have to force CC/GCC to the ccache versions. | ||||
| # Watch out, you can't have spaces in here because the renderdoc build fails. | ||||
| export CC="/usr/lib/ccache/gcc" | ||||
| export CXX="/usr/lib/ccache/g++" | ||||
|  | ||||
| # Force linkers to gold, since it's so much faster for building.  We can't use | ||||
| # lld because we're on old debian and it's buggy.  ming fails meson builds | ||||
| # with it with "meson.build:21:0: ERROR: Unable to determine dynamic linker" | ||||
| find /usr/bin -name \*-ld -o -name ld | \ | ||||
|     grep -v mingw | \ | ||||
|     xargs -n 1 -I '{}' ln -sf '{}.gold' '{}' | ||||
|  | ||||
| ccache --show-stats | ||||
|  | ||||
| # Make a wrapper script for ninja to always include the -j flags | ||||
| echo '#!/bin/sh -x' > /usr/local/bin/ninja | ||||
| echo '/usr/bin/ninja -j${FDO_CI_CONCURRENT:-4} "$@"' >> /usr/local/bin/ninja | ||||
| chmod +x /usr/local/bin/ninja | ||||
|  | ||||
| # Set MAKEFLAGS so that all make invocations in container builds include the | ||||
| # flags (doesn't apply to non-container builds, but we don't run make there) | ||||
| export MAKEFLAGS="-j${FDO_CI_CONCURRENT:-4}" | ||||
| @@ -1,63 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| export DEBIAN_FRONTEND=noninteractive | ||||
|  | ||||
| # Ephemeral packages (installed for this script and removed again at the end) | ||||
| STABLE_EPHEMERAL=" \ | ||||
|         libpciaccess-dev:$arch | ||||
|         " | ||||
|  | ||||
| dpkg --add-architecture $arch | ||||
| apt-get update | ||||
|  | ||||
| apt-get install -y --no-remove \ | ||||
|         $STABLE_EPHEMERAL \ | ||||
|         crossbuild-essential-$arch \ | ||||
|         libelf-dev:$arch \ | ||||
|         libexpat1-dev:$arch \ | ||||
|         libffi-dev:$arch \ | ||||
|         libstdc++6:$arch \ | ||||
|         libtinfo-dev:$arch \ | ||||
|         libvulkan-dev:$arch \ | ||||
|         libx11-dev:$arch \ | ||||
|         libx11-xcb-dev:$arch \ | ||||
|         libxcb-dri2-0-dev:$arch \ | ||||
|         libxcb-dri3-dev:$arch \ | ||||
|         libxcb-glx0-dev:$arch \ | ||||
|         libxcb-present-dev:$arch \ | ||||
|         libxcb-randr0-dev:$arch \ | ||||
|         libxcb-shm0-dev:$arch \ | ||||
|         libxcb-xfixes0-dev:$arch \ | ||||
|         libxdamage-dev:$arch \ | ||||
|         libxext-dev:$arch \ | ||||
|         libxrandr-dev:$arch \ | ||||
|         libxshmfence-dev:$arch \ | ||||
|         libxxf86vm-dev:$arch \ | ||||
|         wget | ||||
|  | ||||
| if [[ $arch == "armhf" ]]; then | ||||
|         LLVM=llvm-7-dev | ||||
| else | ||||
|         LLVM=llvm-8-dev | ||||
| fi | ||||
|  | ||||
| apt-get install -y --no-remove -t buster-backports \ | ||||
|         $LLVM:$arch | ||||
|  | ||||
| . .gitlab-ci/create-cross-file.sh $arch | ||||
|  | ||||
|  | ||||
| . .gitlab-ci/container/container_pre_build.sh | ||||
|  | ||||
|  | ||||
| # dependencies where we want a specific version | ||||
| EXTRA_MESON_ARGS="--cross-file=/cross_file-${arch}.txt -D libdir=lib/$(dpkg-architecture -A $arch -qDEB_TARGET_MULTIARCH)" | ||||
| . .gitlab-ci/build-libdrm.sh | ||||
|  | ||||
| apt-get purge -y \ | ||||
|         $STABLE_EPHEMERAL | ||||
|  | ||||
| . .gitlab-ci/container/container_post_build.sh | ||||
| @@ -1,5 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| arch=i386 | ||||
|  | ||||
| . .gitlab-ci/container/cross_build.sh | ||||
| @@ -1,303 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| check_minio() | ||||
| { | ||||
|     MINIO_PATH="${MINIO_HOST}/mesa-lava/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}" | ||||
|     if wget -q --method=HEAD "https://${MINIO_PATH}/done"; then | ||||
|         exit | ||||
|     fi | ||||
| } | ||||
|  | ||||
| # If remote files are up-to-date, skip rebuilding them | ||||
| check_minio "${FDO_UPSTREAM_REPO}" | ||||
| check_minio "${CI_PROJECT_PATH}" | ||||
|  | ||||
| . .gitlab-ci/container/container_pre_build.sh | ||||
|  | ||||
| # Install rust, which we'll be using for deqp-runner.  It will be cleaned up at the end. | ||||
| . .gitlab-ci/build-rust.sh | ||||
|  | ||||
| if [[ "$DEBIAN_ARCH" = "arm64" ]]; then | ||||
|     GCC_ARCH="aarch64-linux-gnu" | ||||
|     KERNEL_ARCH="arm64" | ||||
|     DEFCONFIG="arch/arm64/configs/defconfig" | ||||
|     DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb arch/arm64/boot/dts/qcom/apq8016-sbc.dtb arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb" | ||||
|     KERNEL_IMAGE_NAME="Image" | ||||
| elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then | ||||
|     GCC_ARCH="arm-linux-gnueabihf" | ||||
|     KERNEL_ARCH="arm" | ||||
|     DEFCONFIG="arch/arm/configs/multi_v7_defconfig" | ||||
|     DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb" | ||||
|     KERNEL_IMAGE_NAME="zImage" | ||||
|     . .gitlab-ci/create-cross-file.sh armhf | ||||
| else | ||||
|     GCC_ARCH="x86_64-linux-gnu" | ||||
|     KERNEL_ARCH="x86_64" | ||||
|     DEFCONFIG="arch/x86/configs/x86_64_defconfig" | ||||
|     DEVICE_TREES="" | ||||
|     KERNEL_IMAGE_NAME="bzImage" | ||||
| fi | ||||
|  | ||||
| # Determine if we're in a cross build. | ||||
| if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then | ||||
|     EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt" | ||||
|     EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake" | ||||
|  | ||||
|     if [ $DEBIAN_ARCH = arm64 ]; then | ||||
|         RUST_TARGET="aarch64-unknown-linux-gnu" | ||||
|     elif [ $DEBIAN_ARCH = armhf ]; then | ||||
|         RUST_TARGET="armv7-unknown-linux-gnueabihf" | ||||
|     fi | ||||
|     rustup target add $RUST_TARGET | ||||
|     export EXTRA_CARGO_ARGS="--target $RUST_TARGET" | ||||
|  | ||||
|     export ARCH=${KERNEL_ARCH} | ||||
|     export CROSS_COMPILE="${GCC_ARCH}-" | ||||
| fi | ||||
|  | ||||
| apt-get update | ||||
| apt-get install -y automake \ | ||||
|                    bc \ | ||||
|                    cmake \ | ||||
|                    debootstrap \ | ||||
|                    git \ | ||||
|                    libboost-dev \ | ||||
|                    libegl1-mesa-dev \ | ||||
|                    libgbm-dev \ | ||||
|                    libgles2-mesa-dev \ | ||||
|                    libpcre3-dev \ | ||||
|                    libpng-dev \ | ||||
|                    libpython3-dev \ | ||||
|                    libssl-dev \ | ||||
|                    libvulkan-dev \ | ||||
|                    libwaffle-dev \ | ||||
|                    libxcb-keysyms1-dev \ | ||||
|                    libxkbcommon-dev \ | ||||
|                    patch \ | ||||
|                    python3-dev \ | ||||
|                    python3-distutils \ | ||||
|                    python3-mako \ | ||||
|                    python3-numpy \ | ||||
|                    python3-serial \ | ||||
|                    qt5-default \ | ||||
|                    qt5-qmake \ | ||||
|                    qtbase5-dev \ | ||||
|                    wget | ||||
|  | ||||
|  | ||||
| if [[ "$DEBIAN_ARCH" = "armhf" ]]; then | ||||
|     apt-get install -y libboost-dev:armhf \ | ||||
|                        libegl1-mesa-dev:armhf \ | ||||
|                        libelf-dev:armhf \ | ||||
|                        libgbm-dev:armhf \ | ||||
|                        libgles2-mesa-dev:armhf \ | ||||
|                        libpcre3-dev:armhf \ | ||||
|                        libpng-dev:armhf \ | ||||
|                        libpython3-dev:armhf \ | ||||
|                        libvulkan-dev:armhf \ | ||||
|                        libwaffle-dev:armhf \ | ||||
|                        libxcb-keysyms1-dev:armhf \ | ||||
|                        libxkbcommon-dev:armhf \ | ||||
|                        qtbase5-dev:armhf | ||||
| fi | ||||
|  | ||||
|  | ||||
| ############### Building | ||||
| STRIP_CMD="${GCC_ARCH}-strip" | ||||
| mkdir -p /lava-files/rootfs-${DEBIAN_ARCH} | ||||
|  | ||||
|  | ||||
| ############### Build dEQP runner | ||||
| . .gitlab-ci/build-deqp-runner.sh | ||||
| mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin | ||||
| mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/. | ||||
|  | ||||
|  | ||||
| ############### Build dEQP | ||||
| DEQP_TARGET=surfaceless . .gitlab-ci/build-deqp.sh | ||||
|  | ||||
| mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/. | ||||
|  | ||||
|  | ||||
| ############### Build piglit | ||||
| if [ -n "$INCLUDE_PIGLIT" ]; then | ||||
|     . .gitlab-ci/build-piglit.sh | ||||
|     mv /piglit /lava-files/rootfs-${DEBIAN_ARCH}/. | ||||
| fi | ||||
|  | ||||
|  | ||||
| ############### Build apitrace | ||||
| . .gitlab-ci/build-apitrace.sh | ||||
| mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/apitrace | ||||
| mv /apitrace/build /lava-files/rootfs-${DEBIAN_ARCH}/apitrace | ||||
| rm -rf /apitrace | ||||
|  | ||||
| mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/waffle | ||||
| mv /waffle/build /lava-files/rootfs-${DEBIAN_ARCH}/waffle | ||||
| rm -rf /waffle | ||||
|  | ||||
|  | ||||
| ############### Build renderdoc | ||||
| EXTRA_CMAKE_ARGS+=" -DENABLE_XCB=false" | ||||
| . .gitlab-ci/build-renderdoc.sh | ||||
| mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc | ||||
| mv /renderdoc/build /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc | ||||
| rm -rf /renderdoc | ||||
|  | ||||
|  | ||||
| ############### Build libdrm | ||||
| EXTRA_MESON_ARGS+=" -D prefix=/libdrm" | ||||
| . .gitlab-ci/build-libdrm.sh | ||||
|  | ||||
|  | ||||
| ############### Cross-build kernel | ||||
| mkdir -p kernel | ||||
| wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel | ||||
| pushd kernel | ||||
|  | ||||
| # The kernel doesn't like the gold linker (or the old lld in our debians). | ||||
| # Sneak in some override symlinks during kernel build until we can update | ||||
| # debian (they'll get blown away by the rm of the kernel dir at the end). | ||||
| mkdir -p ld-links | ||||
| for i in /usr/bin/*-ld /usr/bin/ld; do | ||||
|     i=`basename $i` | ||||
|     ln -sf /usr/bin/$i.bfd ld-links/$i | ||||
| done | ||||
| export PATH=`pwd`/ld-links:$PATH | ||||
|  | ||||
| if [ -n "$INSTALL_KERNEL_MODULES" ]; then | ||||
|     # Disable all modules in defconfig, so we only build the ones we want | ||||
|     sed -i 's/=m/=n/g' ${DEFCONFIG} | ||||
| fi | ||||
|  | ||||
| # Force db410c to host mode instead of OTG (which is otherwise selected by | ||||
| # default due to our micro cable for fastboot) | ||||
| sed -i 's/dr_mode = "otg"/dr_mode = "host"/' arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | ||||
|  | ||||
| ./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/${KERNEL_ARCH}.config | ||||
| make ${KERNEL_IMAGE_NAME} | ||||
| for image in ${KERNEL_IMAGE_NAME}; do | ||||
|     cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/. | ||||
| done | ||||
|  | ||||
| if [[ -n ${DEVICE_TREES} ]]; then | ||||
|     make dtbs | ||||
|     cp ${DEVICE_TREES} /lava-files/. | ||||
| fi | ||||
|  | ||||
| if [ -n "$INSTALL_KERNEL_MODULES" ]; then | ||||
|     make modules | ||||
|     INSTALL_MOD_PATH=/lava-files/rootfs-${DEBIAN_ARCH}/ make modules_install | ||||
| fi | ||||
|  | ||||
| if [[ ${DEBIAN_ARCH} = "arm64" ]] && which mkimage > /dev/null; then | ||||
|     make Image.lzma | ||||
|     mkimage \ | ||||
|         -f auto \ | ||||
|         -A arm \ | ||||
|         -O linux \ | ||||
|         -d arch/arm64/boot/Image.lzma \ | ||||
|         -C lzma\ | ||||
|         -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \ | ||||
|         /lava-files/cheza-kernel | ||||
| fi | ||||
|  | ||||
| popd | ||||
| rm -rf kernel | ||||
|  | ||||
| ############### Delete rust, since the tests won't be compiling anything. | ||||
| rm -rf /root/.rustup /root/.cargo | ||||
|  | ||||
| ############### Create rootfs | ||||
| set +e | ||||
| debootstrap \ | ||||
|     --variant=minbase \ | ||||
|     --arch=${DEBIAN_ARCH} \ | ||||
|      --components main,contrib,non-free \ | ||||
|     buster \ | ||||
|     /lava-files/rootfs-${DEBIAN_ARCH}/ \ | ||||
|     http://deb.debian.org/debian | ||||
|  | ||||
| cat /lava-files/rootfs-${DEBIAN_ARCH}/debootstrap/debootstrap.log | ||||
| set -e | ||||
|  | ||||
| cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/. | ||||
| cp .gitlab-ci/container/llvm-snapshot.gpg.key /lava-files/rootfs-${DEBIAN_ARCH}/. | ||||
| chroot /lava-files/rootfs-${DEBIAN_ARCH} \ | ||||
|     sh -c "INCLUDE_PIGLIT=$INCLUDE_PIGLIT sh /create-rootfs.sh" | ||||
| rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh | ||||
| rm /lava-files/rootfs-${DEBIAN_ARCH}/llvm-snapshot.gpg.key | ||||
|  | ||||
|  | ||||
| ############### Install the built libdrm | ||||
| # Dependencies pulled during the creation of the rootfs may overwrite | ||||
| # the built libdrm. Hence, we add it after the rootfs has been already | ||||
| # created. | ||||
| mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH | ||||
| find /libdrm/ -name lib\*\.so\* | xargs cp -t /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH/. | ||||
| rm -rf /libdrm | ||||
|  | ||||
|  | ||||
| du -ah /lava-files/rootfs-${DEBIAN_ARCH} | sort -h | tail -100 | ||||
| pushd /lava-files/rootfs-${DEBIAN_ARCH} | ||||
|   tar czf /lava-files/lava-rootfs.tgz . | ||||
| popd | ||||
|  | ||||
| if [ ${DEBIAN_ARCH} = arm64 ]; then | ||||
|     # Pull down a specific build of qcomlt/release/qcomlt-5.4 8c79b3d12355 | ||||
|     # ("Merge tag 'v5.4.23' into release/qcomlt-5.4"), where I used the | ||||
|     # .config from | ||||
|     # http://snapshots.linaro.org/96boards/dragonboard820c/linaro/debian/457/config-5.4.0-qcomlt-arm64 | ||||
|     # with the following merged in: | ||||
|     # | ||||
|     # CONFIG_DRM=y | ||||
|     # CONFIG_DRM_MSM=y | ||||
|     # CONFIG_ATL1C=y | ||||
|     # | ||||
|     # Reason: 5.5 has a big stack of oopses and warns on db820c.  4.14-5.4 | ||||
|     # linaro kernel binaries (see above .config link) have these as modules | ||||
|     # and distributed the modules only in the debian system, not the initrd, | ||||
|     # so they're very hard to extract (involving simg2img and loopback | ||||
|     # mounting).  4.11 is missing d72fea538fe6 ("drm/msm: Fix the check for | ||||
|     # the command size") so it can't actually run fredreno.  qcomlt-4.14 is | ||||
|     # unstable at boot (~10% instaboot rate).  The 5.4 qcomlt kernel with msm | ||||
|     # built in seems like the easiest way to go. | ||||
|     wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/Image.gz -O Image.gz \ | ||||
|          -O /lava-files/db820c-kernel | ||||
|     wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/apq8096-db820c.dtb \ | ||||
|          -O /lava-files/db820c.dtb | ||||
|  | ||||
|     # Make a gzipped copy of the Image for db410c. | ||||
|     gzip -k /lava-files/Image | ||||
|  | ||||
|     # Add missing a630 firmware, added to debian packge in apr 2020 | ||||
|     wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_gmu.bin \ | ||||
|          -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_gmu.bin | ||||
|     wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_sqe.fw \ | ||||
|          -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_sqe.fw | ||||
| fi | ||||
|  | ||||
| . .gitlab-ci/container/container_post_build.sh | ||||
|  | ||||
| ############### Upload the files! | ||||
| if [ -n "$UPLOAD_FOR_LAVA" ]; then | ||||
|     ci-fairy minio login $CI_JOB_JWT | ||||
|     FILES_TO_UPLOAD="lava-rootfs.tgz \ | ||||
|                      $KERNEL_IMAGE_NAME" | ||||
|  | ||||
|     if [[ -n $DEVICE_TREES ]]; then | ||||
|         FILES_TO_UPLOAD="$FILES_TO_UPLOAD $(basename -a $DEVICE_TREES)" | ||||
|     fi | ||||
|  | ||||
|     for f in $FILES_TO_UPLOAD; do | ||||
|         ci-fairy minio cp /lava-files/$f \ | ||||
|             minio://${MINIO_PATH}/$f | ||||
|     done | ||||
|  | ||||
|     touch /lava-files/done | ||||
|     ci-fairy minio cp /lava-files/done minio://${MINIO_PATH}/done | ||||
| fi | ||||
|  | ||||
| @@ -1,52 +0,0 @@ | ||||
| -----BEGIN PGP PUBLIC KEY BLOCK----- | ||||
| Version: GnuPG v1.4.12 (GNU/Linux) | ||||
|  | ||||
| mQINBFE9lCwBEADi0WUAApM/mgHJRU8lVkkw0CHsZNpqaQDNaHefD6Rw3S4LxNmM | ||||
| EZaOTkhP200XZM8lVdbfUW9xSjA3oPldc1HG26NjbqqCmWpdo2fb+r7VmU2dq3NM | ||||
| R18ZlKixiLDE6OUfaXWKamZsXb6ITTYmgTO6orQWYrnW6ckYHSeaAkW0wkDAryl2 | ||||
| B5v8aoFnQ1rFiVEMo4NGzw4UX+MelF7rxaaregmKVTPiqCOSPJ1McC1dHFN533FY | ||||
| Wh/RVLKWo6npu+owtwYFQW+zyQhKzSIMvNujFRzhIxzxR9Gn87MoLAyfgKEzrbbT | ||||
| DhqqNXTxS4UMUKCQaO93TzetX/EBrRpJj+vP640yio80h4Dr5pAd7+LnKwgpTDk1 | ||||
| G88bBXJAcPZnTSKu9I2c6KY4iRNbvRz4i+ZdwwZtdW4nSdl2792L7Sl7Nc44uLL/ | ||||
| ZqkKDXEBF6lsX5XpABwyK89S/SbHOytXv9o4puv+65Ac5/UShspQTMSKGZgvDauU | ||||
| cs8kE1U9dPOqVNCYq9Nfwinkf6RxV1k1+gwtclxQuY7UpKXP0hNAXjAiA5KS5Crq | ||||
| 7aaJg9q2F4bub0mNU6n7UI6vXguF2n4SEtzPRk6RP+4TiT3bZUsmr+1ktogyOJCc | ||||
| Ha8G5VdL+NBIYQthOcieYCBnTeIH7D3Sp6FYQTYtVbKFzmMK+36ERreL/wARAQAB | ||||
| tD1TeWx2ZXN0cmUgTGVkcnUgLSBEZWJpYW4gTExWTSBwYWNrYWdlcyA8c3lsdmVz | ||||
| dHJlQGRlYmlhbi5vcmc+iQI4BBMBAgAiBQJRPZQsAhsDBgsJCAcDAgYVCAIJCgsE | ||||
| FgIDAQIeAQIXgAAKCRAVz00Yr090Ibx+EADArS/hvkDF8juWMXxh17CgR0WZlHCC | ||||
| 9CTBWkg5a0bNN/3bb97cPQt/vIKWjQtkQpav6/5JTVCSx2riL4FHYhH0iuo4iAPR | ||||
| udC7Cvg8g7bSPrKO6tenQZNvQm+tUmBHgFiMBJi92AjZ/Qn1Shg7p9ITivFxpLyX | ||||
| wpmnF1OKyI2Kof2rm4BFwfSWuf8Fvh7kDMRLHv+MlnK/7j/BNpKdozXxLcwoFBmn | ||||
| l0WjpAH3OFF7Pvm1LJdf1DjWKH0Dc3sc6zxtmBR/KHHg6kK4BGQNnFKujcP7TVdv | ||||
| gMYv84kun14pnwjZcqOtN3UJtcx22880DOQzinoMs3Q4w4o05oIF+sSgHViFpc3W | ||||
| R0v+RllnH05vKZo+LDzc83DQVrdwliV12eHxrMQ8UYg88zCbF/cHHnlzZWAJgftg | ||||
| hB08v1BKPgYRUzwJ6VdVqXYcZWEaUJmQAPuAALyZESw94hSo28FAn0/gzEc5uOYx | ||||
| K+xG/lFwgAGYNb3uGM5m0P6LVTfdg6vDwwOeTNIExVk3KVFXeSQef2ZMkhwA7wya | ||||
| KJptkb62wBHFE+o9TUdtMCY6qONxMMdwioRE5BYNwAsS1PnRD2+jtlI0DzvKHt7B | ||||
| MWd8hnoUKhMeZ9TNmo+8CpsAtXZcBho0zPGz/R8NlJhAWpdAZ1CmcPo83EW86Yq7 | ||||
| BxQUKnNHcwj2ebkCDQRRPZQsARAA4jxYmbTHwmMjqSizlMJYNuGOpIidEdx9zQ5g | ||||
| zOr431/VfWq4S+VhMDhs15j9lyml0y4ok215VRFwrAREDg6UPMr7ajLmBQGau0Fc | ||||
| bvZJ90l4NjXp5p0NEE/qOb9UEHT7EGkEhaZ1ekkWFTWCgsy7rRXfZLxB6sk7pzLC | ||||
| DshyW3zjIakWAnpQ5j5obiDy708pReAuGB94NSyb1HoW/xGsGgvvCw4r0w3xPStw | ||||
| F1PhmScE6NTBIfLliea3pl8vhKPlCh54Hk7I8QGjo1ETlRP4Qll1ZxHJ8u25f/ta | ||||
| RES2Aw8Hi7j0EVcZ6MT9JWTI83yUcnUlZPZS2HyeWcUj+8nUC8W4N8An+aNps9l/ | ||||
| 21inIl2TbGo3Yn1JQLnA1YCoGwC34g8QZTJhElEQBN0X29ayWW6OdFx8MDvllbBV | ||||
| ymmKq2lK1U55mQTfDli7S3vfGz9Gp/oQwZ8bQpOeUkc5hbZszYwP4RX+68xDPfn+ | ||||
| M9udl+qW9wu+LyePbW6HX90LmkhNkkY2ZzUPRPDHZANU5btaPXc2H7edX4y4maQa | ||||
| xenqD0lGh9LGz/mps4HEZtCI5CY8o0uCMF3lT0XfXhuLksr7Pxv57yue8LLTItOJ | ||||
| d9Hmzp9G97SRYYeqU+8lyNXtU2PdrLLq7QHkzrsloG78lCpQcalHGACJzrlUWVP/ | ||||
| fN3Ht3kAEQEAAYkCHwQYAQIACQUCUT2ULAIbDAAKCRAVz00Yr090IbhWEADbr50X | ||||
| OEXMIMGRLe+YMjeMX9NG4jxs0jZaWHc/WrGR+CCSUb9r6aPXeLo+45949uEfdSsB | ||||
| pbaEdNWxF5Vr1CSjuO5siIlgDjmT655voXo67xVpEN4HhMrxugDJfCa6z97P0+ML | ||||
| PdDxim57uNqkam9XIq9hKQaurxMAECDPmlEXI4QT3eu5qw5/knMzDMZj4Vi6hovL | ||||
| wvvAeLHO/jsyfIdNmhBGU2RWCEZ9uo/MeerPHtRPfg74g+9PPfP6nyHD2Wes6yGd | ||||
| oVQwtPNAQD6Cj7EaA2xdZYLJ7/jW6yiPu98FFWP74FN2dlyEA2uVziLsfBrgpS4l | ||||
| tVOlrO2YzkkqUGrybzbLpj6eeHx+Cd7wcjI8CalsqtL6cG8cUEjtWQUHyTbQWAgG | ||||
| 5VPEgIAVhJ6RTZ26i/G+4J8neKyRs4vz+57UGwY6zI4AB1ZcWGEE3Bf+CDEDgmnP | ||||
| LSwbnHefK9IljT9XU98PelSryUO/5UPw7leE0akXKB4DtekToO226px1VnGp3Bov | ||||
| 1GBGvpHvL2WizEwdk+nfk8LtrLzej+9FtIcq3uIrYnsac47Pf7p0otcFeTJTjSq3 | ||||
| krCaoG4Hx0zGQG2ZFpHrSrZTVy6lxvIdfi0beMgY6h78p6M9eYZHQHc02DjFkQXN | ||||
| bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw== | ||||
| =j+4q | ||||
| -----END PGP PUBLIC KEY BLOCK----- | ||||
| @@ -1,5 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| arch=ppc64el | ||||
|  | ||||
| . .gitlab-ci/container/cross_build.sh | ||||
| @@ -1,5 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| arch=s390x | ||||
|  | ||||
| . .gitlab-ci/container/cross_build.sh | ||||
| @@ -1,104 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| export DEBIAN_FRONTEND=noninteractive | ||||
|  | ||||
| apt-get install -y \ | ||||
|         ca-certificates \ | ||||
|         gnupg | ||||
|  | ||||
| # Upstream LLVM package repository | ||||
| apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key | ||||
| echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list | ||||
| echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-10 main" >/etc/apt/sources.list.d/llvm10.list | ||||
|  | ||||
| sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list | ||||
| echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list | ||||
|  | ||||
| # Ephemeral packages (installed for this script and removed again at | ||||
| # the end) | ||||
| STABLE_EPHEMERAL=" \ | ||||
|         python3-pip \ | ||||
|         python3-setuptools \ | ||||
|         unzip \ | ||||
|         " | ||||
|  | ||||
| apt-get update | ||||
|  | ||||
| apt-get install -y --no-remove \ | ||||
|         $STABLE_EPHEMERAL \ | ||||
|         bison \ | ||||
|         ccache \ | ||||
|         clang-10 \ | ||||
|         dpkg-cross \ | ||||
|         flex \ | ||||
|         g++ \ | ||||
|         g++-mingw-w64-x86-64 \ | ||||
|         gcc \ | ||||
|         git \ | ||||
|         kmod \ | ||||
|         libclang-10-dev \ | ||||
|         libclang-9-dev \ | ||||
|         libclc-dev \ | ||||
|         libelf-dev \ | ||||
|         libepoxy-dev \ | ||||
|         libexpat1-dev \ | ||||
|         libgtk-3-dev \ | ||||
|         libomxil-bellagio-dev \ | ||||
|         libpciaccess-dev \ | ||||
|         libunwind-dev \ | ||||
|         libva-dev \ | ||||
|         libvdpau-dev \ | ||||
|         libvulkan-dev \ | ||||
|         libx11-dev \ | ||||
|         libx11-xcb-dev \ | ||||
|         libxext-dev \ | ||||
|         libxml2-utils \ | ||||
|         libxrandr-dev \ | ||||
|         libxrender-dev \ | ||||
|         libxshmfence-dev \ | ||||
|         libxvmc-dev \ | ||||
|         libxxf86vm-dev \ | ||||
|         libz-mingw-w64-dev \ | ||||
|         llvm-10-dev \ | ||||
|         llvm-9-dev \ | ||||
|         pkg-config \ | ||||
|         python-mako \ | ||||
|         python3-mako \ | ||||
|         python3-pil \ | ||||
|         python3-requests \ | ||||
|         qemu-user \ | ||||
|         scons \ | ||||
|         valgrind \ | ||||
|         wget \ | ||||
|         wine64-development \ | ||||
|         x11proto-dri2-dev \ | ||||
|         x11proto-gl-dev \ | ||||
|         x11proto-randr-dev \ | ||||
|         xz-utils \ | ||||
|         zlib1g-dev | ||||
|  | ||||
| apt-get install -y --no-remove -t buster-backports \ | ||||
|         libclang-8-dev \ | ||||
|         libllvm8 \ | ||||
|         meson | ||||
|  | ||||
| # Needed for ci-fairy, this revision is able to upload files to MinIO | ||||
| pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366 | ||||
|  | ||||
| # for the vulkan overlay layer and ACO tests | ||||
| wget https://github.com/KhronosGroup/glslang/releases/download/SDK-candidate-26-Jul-2020/glslang-master-linux-Release.zip | ||||
| unzip glslang-master-linux-Release.zip bin/glslangValidator | ||||
| install -m755 bin/glslangValidator /usr/local/bin/ | ||||
| rm bin/glslangValidator glslang-master-linux-Release.zip | ||||
|  | ||||
|  | ||||
| ############### Uninstall ephemeral packages | ||||
|  | ||||
| apt-get purge -y \ | ||||
|         $STABLE_EPHEMERAL \ | ||||
|         gnupg | ||||
|  | ||||
| . .gitlab-ci/container/container_post_build.sh | ||||
| @@ -1,135 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| export DEBIAN_FRONTEND=noninteractive | ||||
|  | ||||
| # Ephemeral packages (installed for this script and removed again at the end) | ||||
| STABLE_EPHEMERAL=" \ | ||||
|       autoconf \ | ||||
|       automake \ | ||||
|       autotools-dev \ | ||||
|       bzip2 \ | ||||
|       cmake \ | ||||
|       gnupg \ | ||||
|       libgbm-dev \ | ||||
|       libtool \ | ||||
|       make \ | ||||
|       unzip \ | ||||
|       wget \ | ||||
|       " | ||||
|  | ||||
| # We need multiarch for Wine | ||||
| dpkg --add-architecture i386 | ||||
| apt-get update | ||||
|  | ||||
| apt-get install -y --no-remove \ | ||||
|       $STABLE_EPHEMERAL \ | ||||
|       libasan5 \ | ||||
|       libarchive-dev \ | ||||
|       libclang-cpp10-dev \ | ||||
|       liblua5.3-dev \ | ||||
|       libxml2-dev \ | ||||
|       ocl-icd-opencl-dev \ | ||||
|       wine-development \ | ||||
|       wine32-development | ||||
|  | ||||
| apt-get install -y --no-remove -t buster-backports \ | ||||
|       llvm-8-dev | ||||
|  | ||||
|  | ||||
| . .gitlab-ci/container/container_pre_build.sh | ||||
|  | ||||
|  | ||||
| # Debian's pkg-config wrapers for mingw are broken, and there's no sign that | ||||
| # they're going to be fixed, so we'll just have to fix it ourselves | ||||
| # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930492 | ||||
| cat >/usr/local/bin/x86_64-w64-mingw32-pkg-config <<EOF | ||||
| #!/bin/sh | ||||
|  | ||||
| PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@ | ||||
| EOF | ||||
| chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config | ||||
|  | ||||
|  | ||||
| # dependencies where we want a specific version | ||||
| export              XORG_RELEASES=https://xorg.freedesktop.org/releases/individual | ||||
| export               XCB_RELEASES=https://xcb.freedesktop.org/dist | ||||
| export           WAYLAND_RELEASES=https://wayland.freedesktop.org/releases | ||||
|  | ||||
| export         XORGMACROS_VERSION=util-macros-1.19.0 | ||||
| export           XCBPROTO_VERSION=xcb-proto-1.13 | ||||
| export             LIBXCB_VERSION=libxcb-1.13 | ||||
| export         LIBWAYLAND_VERSION=wayland-1.18.0 | ||||
| export  WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12 | ||||
|  | ||||
| wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2 | ||||
| tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2 | ||||
| cd $XORGMACROS_VERSION; ./configure; make install; cd .. | ||||
| rm -rf $XORGMACROS_VERSION | ||||
|  | ||||
| wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2 | ||||
| tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2 | ||||
| cd $XCBPROTO_VERSION; ./configure; make install; cd .. | ||||
| rm -rf $XCBPROTO_VERSION | ||||
|  | ||||
| wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2 | ||||
| tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2 | ||||
| cd $LIBXCB_VERSION; ./configure; make install; cd .. | ||||
| rm -rf $LIBXCB_VERSION | ||||
|  | ||||
| . .gitlab-ci/build-libdrm.sh | ||||
|  | ||||
| wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz | ||||
| tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz | ||||
| cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd .. | ||||
| rm -rf $LIBWAYLAND_VERSION | ||||
|  | ||||
| wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz | ||||
| tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz | ||||
| cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd .. | ||||
| rm -rf $WAYLAND_PROTOCOLS_VERSION | ||||
|  | ||||
|  | ||||
| # The version of libglvnd-dev in debian is too old | ||||
| # Check this page to see when this local compilation can be dropped in favour of the package: | ||||
| # https://packages.debian.org/libglvnd-dev | ||||
| GLVND_VERSION=1.3.2 | ||||
| wget https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$GLVND_VERSION/libglvnd-v$GLVND_VERSION.tar.gz | ||||
| tar -xvf libglvnd-v$GLVND_VERSION.tar.gz && rm libglvnd-v$GLVND_VERSION.tar.gz | ||||
| pushd libglvnd-v$GLVND_VERSION; ./autogen.sh; ./configure; make install; popd | ||||
| rm -rf libglvnd-v$GLVND_VERSION | ||||
|  | ||||
| . .gitlab-ci/build-spirv-tools.sh | ||||
|  | ||||
| git clone https://github.com/KhronosGroup/SPIRV-LLVM-Translator -b llvm_release_100 --depth 1 | ||||
| pushd SPIRV-LLVM-Translator | ||||
| cmake -S . -B . -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC | ||||
| ninja | ||||
| ninja install | ||||
| popd | ||||
|  | ||||
| pushd /usr/local | ||||
| git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1 | ||||
| rm -rf shader-db/.git | ||||
| cd shader-db | ||||
| make | ||||
| popd | ||||
|  | ||||
| git clone https://github.com/microsoft/DirectX-Headers -b v1.0.1 --depth 1 | ||||
| pushd DirectX-Headers | ||||
| mkdir build | ||||
| cd build | ||||
| meson .. --backend=ninja --buildtype=release -Dbuild-test=false | ||||
| ninja | ||||
| ninja install | ||||
| popd | ||||
| rm -rf DirectX-Headers | ||||
|  | ||||
| ############### Uninstall the build software | ||||
|  | ||||
| apt-get purge -y \ | ||||
|       $STABLE_EPHEMERAL | ||||
|  | ||||
| . .gitlab-ci/container/container_post_build.sh | ||||
| @@ -1,80 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| export DEBIAN_FRONTEND=noninteractive | ||||
|  | ||||
| apt-get install -y \ | ||||
|       ca-certificates \ | ||||
|       gnupg | ||||
|  | ||||
| # Upstream LLVM package repository | ||||
| apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key | ||||
| echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list | ||||
| echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-10 main" >/etc/apt/sources.list.d/llvm10.list | ||||
|  | ||||
| sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list | ||||
| echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list | ||||
|  | ||||
| # Ephemeral packages (installed for this script and removed again at | ||||
| # the end) | ||||
| STABLE_EPHEMERAL=" \ | ||||
|       python3-dev \ | ||||
|       python3-pip \ | ||||
|       python3-setuptools \ | ||||
|       python3-wheel \ | ||||
|       " | ||||
|  | ||||
| apt-get update | ||||
| apt-get dist-upgrade -y | ||||
|  | ||||
| apt-get install -y --no-remove \ | ||||
|       git \ | ||||
|       git-lfs \ | ||||
|       libexpat1 \ | ||||
|       libllvm10 \ | ||||
|       libllvm9 \ | ||||
|       liblz4-1 \ | ||||
|       libpcre32-3 \ | ||||
|       libpng16-16 \ | ||||
|       libpython3.7 \ | ||||
|       libvulkan1 \ | ||||
|       libwayland-client0 \ | ||||
|       libwayland-server0 \ | ||||
|       libxcb-ewmh2 \ | ||||
|       libxcb-keysyms1 \ | ||||
|       libxcb-randr0 \ | ||||
|       libxcb-xfixes0 \ | ||||
|       libxkbcommon0 \ | ||||
|       libxrandr2 \ | ||||
|       libxrender1 \ | ||||
|       python \ | ||||
|       python3-mako \ | ||||
|       python3-numpy \ | ||||
|       python3-pil \ | ||||
|       python3-pytest \ | ||||
|       python3-requests \ | ||||
|       python3-six \ | ||||
|       python3-yaml \ | ||||
|       python3.7 \ | ||||
|       qt5-default \ | ||||
|       qt5-qmake \ | ||||
|       vulkan-tools \ | ||||
|       waffle-utils \ | ||||
|       xauth \ | ||||
|       xvfb \ | ||||
|       zlib1g | ||||
|  | ||||
| apt-get install -y --no-install-recommends \ | ||||
|       $STABLE_EPHEMERAL | ||||
|  | ||||
| # Needed for ci-fairy, this revision is able to upload files to MinIO | ||||
| # and doesn't depend on git | ||||
| pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@0f1abc24c043e63894085a6bd12f14263e8b29eb | ||||
|  | ||||
| apt-get purge -y \ | ||||
|       $STABLE_EPHEMERAL \ | ||||
|       gnupg | ||||
|  | ||||
| apt-get autoremove -y --purge | ||||
| @@ -1,97 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| export DEBIAN_FRONTEND=noninteractive | ||||
|  | ||||
| # Ephemeral packages (installed for this script and removed again at the end) | ||||
| STABLE_EPHEMERAL=" \ | ||||
|       autoconf \ | ||||
|       automake \ | ||||
|       ccache \ | ||||
|       clang-10 \ | ||||
|       cmake \ | ||||
|       g++ \ | ||||
|       libclang-cpp10-dev \ | ||||
|       libgbm-dev \ | ||||
|       libgles2-mesa-dev \ | ||||
|       libpcre3-dev \ | ||||
|       libpciaccess-dev \ | ||||
|       libpng-dev \ | ||||
|       libvulkan-dev \ | ||||
|       libwaffle-dev \ | ||||
|       libxcb-keysyms1-dev \ | ||||
|       libxkbcommon-dev \ | ||||
|       libxrender-dev \ | ||||
|       llvm-10-dev \ | ||||
|       make \ | ||||
|       meson \ | ||||
|       ocl-icd-opencl-dev \ | ||||
|       patch \ | ||||
|       pkg-config \ | ||||
|       python3-distutils \ | ||||
|       python3.7-dev \ | ||||
|       wget \ | ||||
|       xz-utils \ | ||||
|       " | ||||
|  | ||||
| apt-get install -y --no-remove \ | ||||
|       $STABLE_EPHEMERAL \ | ||||
|       clinfo \ | ||||
|       libclang-common-10-dev \ | ||||
|       libclang-cpp10 \ | ||||
|       libxcb-shm0 \ | ||||
|       ocl-icd-libopencl1 \ | ||||
|       python3-lxml \ | ||||
|       python3-simplejson | ||||
|  | ||||
|  | ||||
| . .gitlab-ci/container/container_pre_build.sh | ||||
|  | ||||
|  | ||||
| ############### Build spirv-tools (debian too old) | ||||
|  | ||||
| . .gitlab-ci/build-spirv-tools.sh | ||||
|  | ||||
| ############### Build libclc | ||||
|  | ||||
| . .gitlab-ci/build-libclc.sh | ||||
|  | ||||
| ############### Build virglrenderer | ||||
|  | ||||
| . .gitlab-ci/build-virglrenderer.sh | ||||
|  | ||||
| ############### Build piglit | ||||
|  | ||||
| INCLUDE_OPENCL_TESTS=1 . .gitlab-ci/build-piglit.sh | ||||
|  | ||||
| ############### Build dEQP runner (and install rust temporarily for it) | ||||
| . .gitlab-ci/build-rust.sh | ||||
| . .gitlab-ci/build-deqp-runner.sh | ||||
| rm -rf /root/.rustup /root/.cargo | ||||
|  | ||||
| ############### Build dEQP GL | ||||
|  | ||||
| DEQP_TARGET=surfaceless . .gitlab-ci/build-deqp.sh | ||||
|  | ||||
| ############### Build apitrace | ||||
|  | ||||
| . .gitlab-ci/build-apitrace.sh | ||||
|  | ||||
| ############### Build renderdoc | ||||
|  | ||||
| . .gitlab-ci/build-renderdoc.sh | ||||
|  | ||||
| ############### Build libdrm | ||||
|  | ||||
| . .gitlab-ci/build-libdrm.sh | ||||
|  | ||||
| ############### Uninstall the build software | ||||
|  | ||||
| ccache --show-stats | ||||
|  | ||||
| apt-get purge -y \ | ||||
|       $STABLE_EPHEMERAL | ||||
|  | ||||
| apt-get autoremove -y --purge | ||||
| @@ -1,146 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
| set -o xtrace | ||||
|  | ||||
| export DEBIAN_FRONTEND=noninteractive | ||||
|  | ||||
| # Ephemeral packages (installed for this script and removed again at the end) | ||||
| STABLE_EPHEMERAL=" \ | ||||
|       ccache \ | ||||
|       cmake \ | ||||
|       g++ \ | ||||
|       libgbm-dev \ | ||||
|       libgles2-mesa-dev \ | ||||
|       liblz4-dev \ | ||||
|       libpng-dev \ | ||||
|       libvulkan-dev \ | ||||
|       libwaffle-dev \ | ||||
|       libxcb-ewmh-dev \ | ||||
|       libxkbcommon-dev \ | ||||
|       libxrandr-dev \ | ||||
|       libxrender-dev \ | ||||
|       libzstd-dev \ | ||||
|       meson \ | ||||
|       p7zip \ | ||||
|       patch \ | ||||
|       pkg-config \ | ||||
|       python3-distutils \ | ||||
|       wget \ | ||||
|       " | ||||
|  | ||||
| # Unfortunately, gfxreconstruct needs the -dev packages: | ||||
| # https://github.com/LunarG/gfxreconstruct/issues/402 | ||||
| apt-get install -y --no-remove \ | ||||
|       $STABLE_EPHEMERAL \ | ||||
|       libwayland-dev \ | ||||
|       libx11-xcb-dev \ | ||||
|       libxcb-keysyms1-dev \ | ||||
|       libxcb-shm0 \ | ||||
|       libxcb1-dev \ | ||||
|       python3-lxml \ | ||||
|       python3-simplejson | ||||
|  | ||||
| # We need multiarch for Wine | ||||
| dpkg --add-architecture i386 | ||||
|  | ||||
| apt-get update | ||||
|  | ||||
| apt-get install -y --no-remove \ | ||||
|       wine \ | ||||
|       wine32 \ | ||||
|       wine64 | ||||
|  | ||||
|  | ||||
| ############### Set up Wine env variables | ||||
|  | ||||
| export WINEDEBUG="-all" | ||||
| export WINEPREFIX="/dxvk-wine64" | ||||
|  | ||||
| ############### Install DXVK | ||||
|  | ||||
| DXVK_VERSION="1.6" | ||||
|  | ||||
| # We don't want crash dialogs | ||||
| cat >crashdialog.reg <<EOF | ||||
| Windows Registry Editor Version 5.00 | ||||
|  | ||||
| [HKEY_CURRENT_USER\Software\Wine\WineDbg] | ||||
| "ShowCrashDialog"=dword:00000000 | ||||
|  | ||||
| EOF | ||||
|  | ||||
| # Set the wine prefix and disable the crash dialog | ||||
| wine regedit crashdialog.reg | ||||
| rm crashdialog.reg | ||||
|  | ||||
| # DXVK's setup often fails with: | ||||
| # "${WINEPREFIX}: Not a valid wine prefix." | ||||
| # and that is just spit because of checking the existance of the | ||||
| # system.reg file, which fails. | ||||
| # Just giving it a bit more of time for it to be created solves the | ||||
| # problem ... | ||||
| test -f  "${WINEPREFIX}/system.reg" || sleep 2 | ||||
|  | ||||
| wget "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz" | ||||
| tar xzpf dxvk-"${DXVK_VERSION}".tar.gz | ||||
| dxvk-"${DXVK_VERSION}"/setup_dxvk.sh install | ||||
| rm -rf dxvk-"${DXVK_VERSION}" | ||||
| rm dxvk-"${DXVK_VERSION}".tar.gz | ||||
|  | ||||
| ############### Install Windows' apitrace binaries | ||||
|  | ||||
| APITRACE_VERSION="9.0" | ||||
| APITRACE_VERSION_DATE="20191126" | ||||
|  | ||||
| wget "https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z" | ||||
| 7zr x "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z" \ | ||||
|       "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64/bin/apitrace.exe" \ | ||||
|       "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64/bin/d3dretrace.exe" | ||||
| mv "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64" /apitrace-msvc-win64 | ||||
| rm "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z" | ||||
|  | ||||
| # Add the apitrace path to the registry | ||||
| wine \ | ||||
|     reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" \ | ||||
|     /v Path \ | ||||
|     /t REG_EXPAND_SZ \ | ||||
|     /d "C:\windows\system32;C:\windows;C:\windows\system32\wbem;Z:\apitrace-msvc-win64\bin" \ | ||||
|     /f | ||||
|  | ||||
| ############### Building ... | ||||
|  | ||||
| . .gitlab-ci/container/container_pre_build.sh | ||||
|  | ||||
| ############### Build piglit | ||||
|  | ||||
| PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/build-piglit.sh | ||||
|  | ||||
| ############### Build dEQP runner (and install rust temporarily for it) | ||||
| . .gitlab-ci/build-rust.sh | ||||
| . .gitlab-ci/build-deqp-runner.sh | ||||
| rm -rf /root/.rustup /root/.cargo | ||||
|  | ||||
| ############### Build Fossilize | ||||
|  | ||||
| . .gitlab-ci/build-fossilize.sh | ||||
|  | ||||
| ############### Build dEQP VK | ||||
| . .gitlab-ci/build-deqp.sh | ||||
|  | ||||
| ############### Build gfxreconstruct | ||||
|  | ||||
| . .gitlab-ci/build-gfxreconstruct.sh | ||||
|  | ||||
| ############### Build VulkanTools | ||||
|  | ||||
| . .gitlab-ci/build-vulkantools.sh | ||||
|  | ||||
| ############### Uninstall the build software | ||||
|  | ||||
| ccache --show-stats | ||||
|  | ||||
| apt-get purge -y \ | ||||
|       $STABLE_EPHEMERAL | ||||
|  | ||||
| apt-get autoremove -y --purge | ||||
| @@ -1,33 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| ndk=$1 | ||||
| arch=$2 | ||||
| cpu_family=$3 | ||||
| cpu=$4 | ||||
| cross_file="/cross_file-$arch.txt" | ||||
|  | ||||
| # armv7 has the toolchain split between two names. | ||||
| arch2=${5:-$2} | ||||
|  | ||||
| # Note that we disable C++ exceptions, because Mesa doesn't use exceptions, | ||||
| # and allowing it in code generation means we get unwind symbols that break | ||||
| # the libEGL and driver symbol tests. | ||||
|  | ||||
| cat >$cross_file <<EOF | ||||
| [binaries] | ||||
| ar = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-ar' | ||||
| c = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang', '-fuse-ld=lld', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables'] | ||||
| cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang++', '-fuse-ld=lld', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables', '-static-libstdc++'] | ||||
| strip = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-strip' | ||||
| pkgconfig = ['/usr/bin/pkg-config'] | ||||
|  | ||||
| [host_machine] | ||||
| system = 'linux' | ||||
| cpu_family = '$cpu_family' | ||||
| cpu = '$cpu' | ||||
| endian = 'little' | ||||
|  | ||||
| [properties] | ||||
| needs_exe_wrapper = true | ||||
|  | ||||
| EOF | ||||
| @@ -1,38 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # Makes a .pc file in the Android NDK for meson to find its libraries. | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| ndk="$1" | ||||
| pc="$2" | ||||
| cflags="$3" | ||||
| libs="$4" | ||||
| version="$5" | ||||
|  | ||||
| sysroot=$ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot | ||||
|  | ||||
| for arch in \ | ||||
|         x86_64-linux-android \ | ||||
|         i686-linux-android \ | ||||
|         aarch64-linux-android \ | ||||
|         arm-linux-androideabi; do | ||||
|     pcdir=$sysroot/usr/lib/$arch/pkgconfig | ||||
|     mkdir -p $pcdir | ||||
|  | ||||
|     cat >$pcdir/$pc <<EOF | ||||
| prefix=$sysroot | ||||
| exec_prefix=$sysroot | ||||
| libdir=$sysroot/usr/lib/$arch/29 | ||||
| sharedlibdir=$sysroot/usr/lib/$arch | ||||
| includedir=$sysroot/usr/include | ||||
|  | ||||
| Name: zlib | ||||
| Description: zlib compression library | ||||
| Version: $version | ||||
|  | ||||
| Requires: | ||||
| Libs: -L$sysroot/usr/lib/$arch/29 $libs | ||||
| Cflags: -I$sysroot/usr/include $cflags | ||||
| EOF | ||||
| done | ||||
| @@ -1,51 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| arch=$1 | ||||
| cross_file="/cross_file-$arch.txt" | ||||
| /usr/share/meson/debcrossgen --arch $arch -o "$cross_file" | ||||
| # Explicitly set ccache path for cross compilers | ||||
| sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file" | ||||
| if [ "$arch" = "i386" ]; then | ||||
|     # Work around a bug in debcrossgen that should be fixed in the next release | ||||
|     sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file" | ||||
| fi | ||||
| # Rely on qemu-user being configured in binfmt_misc on the host | ||||
| sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file" | ||||
|  | ||||
| # Add a line for rustc, which debcrossgen is missing. | ||||
| cc=`sed -n 's|c = .\(.*\).|\1|p' < $cross_file` | ||||
| if [[ "$arch" = "arm64" ]]; then | ||||
|     rust_target=aarch64-unknown-linux-gnu | ||||
| elif [[ "$arch" = "armhf" ]]; then | ||||
|     rust_target=armv7-unknown-linux-gnueabihf | ||||
| elif [[ "$arch" = "i386" ]]; then | ||||
|     rust_target=i686-unknown-linux-gnu | ||||
| elif [[ "$arch" = "ppc64el" ]]; then | ||||
|     rust_target=powerpc64le-unknown-linux-gnu | ||||
| elif [[ "$arch" = "s390x" ]]; then | ||||
|     rust_target=s390x-unknown-linux-gnu | ||||
| else | ||||
|     echo "Needs rustc target mapping" | ||||
| fi | ||||
| sed -i -e '/\[binaries\]/a\' -e "rust = ['rustc', '--target=$rust_target', '-C', 'linker=$cc']" "$cross_file" | ||||
|  | ||||
| # Set up cmake cross compile toolchain file for dEQP builds | ||||
| toolchain_file="/toolchain-$arch.cmake" | ||||
| if [[ "$arch" = "arm64" ]]; then | ||||
|     GCC_ARCH="aarch64-linux-gnu" | ||||
|     DE_CPU="DE_CPU_ARM_64" | ||||
|     CMAKE_ARCH=arm | ||||
| elif [[ "$arch" = "armhf" ]]; then | ||||
|     GCC_ARCH="arm-linux-gnueabihf" | ||||
|     DE_CPU="DE_CPU_ARM" | ||||
|     CMAKE_ARCH=arm | ||||
| fi | ||||
|  | ||||
| if [[ -n "$GCC_ARCH" ]]; then | ||||
|     echo "set(CMAKE_SYSTEM_NAME Linux)" > "$toolchain_file" | ||||
|     echo "set(CMAKE_SYSTEM_PROCESSOR arm)" >> "$toolchain_file" | ||||
|     echo "set(CMAKE_C_COMPILER /usr/lib/ccache/$GCC_ARCH-gcc)" >> "$toolchain_file" | ||||
|     echo "set(CMAKE_CXX_COMPILER /usr/lib/ccache/$GCC_ARCH-g++)" >> "$toolchain_file" | ||||
|     echo "set(ENV{PKG_CONFIG} \"/usr/bin/$GCC_ARCH-pkg-config\")" >> "$toolchain_file" | ||||
|     echo "set(DE_CPU $DE_CPU)" >> "$toolchain_file" | ||||
| fi | ||||
| @@ -1,289 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -ex | ||||
|  | ||||
| if [ $DEBIAN_ARCH = arm64 ]; then | ||||
|     ARCH_PACKAGES="firmware-qcom-media" | ||||
| elif [ $DEBIAN_ARCH = amd64 ]; then | ||||
|     # Upstream LLVM package repository | ||||
|     apt-get -y install --no-install-recommends gnupg ca-certificates | ||||
|     apt-key add /llvm-snapshot.gpg.key | ||||
|     echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-10 main" >/etc/apt/sources.list.d/llvm10.list | ||||
|     apt-get update | ||||
|  | ||||
|     ARCH_PACKAGES="firmware-amd-graphics | ||||
|                    libelf1 | ||||
|                    libllvm10 | ||||
|                   " | ||||
| fi | ||||
|  | ||||
| if [ -n "$INCLUDE_VK_CTS" ]; then | ||||
|     VK_CTS_PACKAGES="libvulkan1" | ||||
| fi | ||||
|  | ||||
| if [ -n "$INCLUDE_PIGLIT" ]; then | ||||
|     PIGLIT_PACKAGES="libwaffle-1-0 | ||||
|                      libxkbcommon0 | ||||
|                      python3-lxml | ||||
|                      python3-mako | ||||
|                      python3-numpy | ||||
|                      python3-simplejson | ||||
|                     " | ||||
|     INSTALL_CI_FAIRY_PACKAGES="git | ||||
|                                python3-dev | ||||
|                                python3-pip | ||||
|                                python3-setuptools | ||||
|                                python3-wheel | ||||
|                               " | ||||
| fi | ||||
|  | ||||
| apt-get -y install --no-install-recommends \ | ||||
|     $ARCH_PACKAGES \ | ||||
|     $CI_FAIRY_PACKAGES \ | ||||
|     $INSTALL_CI_FAIRY_PACKAGES \ | ||||
|     $PIGLIT_PACKAGES \ | ||||
|     $VK_CTS_PACKAGES \ | ||||
|     ca-certificates \ | ||||
|     curl \ | ||||
|     initramfs-tools \ | ||||
|     libexpat1 \ | ||||
|     libpng16-16 \ | ||||
|     libpython3.7 \ | ||||
|     libsensors5 \ | ||||
|     libwaffle-1-0 \ | ||||
|     libx11-6 \ | ||||
|     libx11-xcb1 \ | ||||
|     libxcb-dri2-0 \ | ||||
|     libxcb-dri3-0 \ | ||||
|     libxcb-glx0 \ | ||||
|     libxcb-present0 \ | ||||
|     libxcb-randr0 \ | ||||
|     libxcb-shm0 \ | ||||
|     libxcb-sync1 \ | ||||
|     libxcb-xfixes0 \ | ||||
|     libxdamage1 \ | ||||
|     libxext6 \ | ||||
|     libxfixes3 \ | ||||
|     libxkbcommon0 \ | ||||
|     libxshmfence1 \ | ||||
|     libxxf86vm1 \ | ||||
|     netcat-openbsd \ | ||||
|     python3 \ | ||||
|     python3-pil \ | ||||
|     python3-pytest \ | ||||
|     python3-requests \ | ||||
|     python3-yaml \ | ||||
|     sntp \ | ||||
|     strace \ | ||||
|     wget \ | ||||
|     xz-utils | ||||
|  | ||||
| if [ -n "$INCLUDE_PIGLIT" ]; then | ||||
|     # Needed for ci-fairy, this revision is able to upload files to | ||||
|     # MinIO and doesn't depend on git | ||||
|     pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@0f1abc24c043e63894085a6bd12f14263e8b29eb | ||||
|  | ||||
|     apt-get purge -y \ | ||||
|         $INSTALL_CI_FAIRY_PACKAGES | ||||
| fi | ||||
|  | ||||
| passwd root -d | ||||
| chsh -s /bin/sh | ||||
|  | ||||
| cat > /init <<EOF | ||||
| #!/bin/sh | ||||
| export PS1=lava-shell: | ||||
| exec sh | ||||
| EOF | ||||
| chmod +x  /init | ||||
|  | ||||
| mkdir -p /lib/firmware/rtl_nic | ||||
| wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtl_nic/rtl8153a-3.fw -O /lib/firmware/rtl_nic/rtl8153a-3.fw | ||||
|  | ||||
| ####################################################################### | ||||
| # Strip the image to a small minimal system without removing the debian | ||||
| # toolchain. | ||||
|  | ||||
| # xz compress firmware so it doesn't waste RAM at runtime.  Except db820c's | ||||
| # GPU firmware, due to using a precompiled kernel without compression support. | ||||
| find /lib/firmware -type f -print0 | \ | ||||
|     grep -vz a530 | \ | ||||
|     xargs -0r -P4 -n4 xz -T1 -C crc32 | ||||
| ln -s /lib/firmware/qcom/a530* /lib/firmware/ | ||||
|  | ||||
| # Copy timezone file and remove tzdata package | ||||
| rm -rf /etc/localtime | ||||
| cp /usr/share/zoneinfo/Etc/UTC /etc/localtime | ||||
|  | ||||
| UNNEEDED_PACKAGES="libfdisk1 | ||||
|                    tzdata | ||||
|                    diffutils | ||||
|                    gnupg" | ||||
|  | ||||
| export DEBIAN_FRONTEND=noninteractive | ||||
|  | ||||
| # Removing unused packages | ||||
| for PACKAGE in ${UNNEEDED_PACKAGES} | ||||
| do | ||||
| 	echo ${PACKAGE} | ||||
| 	if ! apt-get remove --purge --yes "${PACKAGE}" | ||||
| 	then | ||||
| 		echo "WARNING: ${PACKAGE} isn't installed" | ||||
| 	fi | ||||
| done | ||||
|  | ||||
| apt-get autoremove --yes || true | ||||
|  | ||||
| # Dropping logs | ||||
| rm -rf /var/log/* | ||||
|  | ||||
| # Dropping documentation, localization, i18n files, etc | ||||
| rm -rf /usr/share/doc/* | ||||
| rm -rf /usr/share/locale/* | ||||
| rm -rf /usr/share/X11/locale/* | ||||
| rm -rf /usr/share/man | ||||
| rm -rf /usr/share/i18n/* | ||||
| rm -rf /usr/share/info/* | ||||
| rm -rf /usr/share/lintian/* | ||||
| rm -rf /usr/share/common-licenses/* | ||||
| rm -rf /usr/share/mime/* | ||||
|  | ||||
| # Dropping reportbug scripts | ||||
| rm -rf /usr/share/bug | ||||
|  | ||||
| # Drop udev hwdb not required on a stripped system | ||||
| rm -rf /lib/udev/hwdb.bin /lib/udev/hwdb.d/* | ||||
|  | ||||
| # Drop all gconv conversions && binaries | ||||
| rm -rf usr/bin/iconv | ||||
| rm -rf usr/sbin/iconvconfig | ||||
| rm -rf usr/lib/*/gconv/ | ||||
|  | ||||
| # Remove libusb database | ||||
| rm -rf usr/sbin/update-usbids | ||||
| rm -rf var/lib/usbutils/usb.ids | ||||
| rm -rf usr/share/misc/usb.ids | ||||
|  | ||||
| ####################################################################### | ||||
| # Crush into a minimal production image to be deployed via some type of image | ||||
| # updating system. | ||||
| # IMPORTANT: The Debian system is not longer functional at this point, | ||||
| # for example, apt and dpkg will stop working | ||||
|  | ||||
| UNNEEDED_PACKAGES="apt libapt-pkg6.0 "\ | ||||
| "ncurses-bin ncurses-base libncursesw6 libncurses6 "\ | ||||
| "perl-base "\ | ||||
| "debconf libdebconfclient0 "\ | ||||
| "e2fsprogs e2fslibs libfdisk1 "\ | ||||
| "insserv "\ | ||||
| "udev "\ | ||||
| "init-system-helpers "\ | ||||
| "bash "\ | ||||
| "cpio "\ | ||||
| "xz-utils "\ | ||||
| "passwd "\ | ||||
| "libsemanage1 libsemanage-common "\ | ||||
| "libsepol1 "\ | ||||
| "gpgv "\ | ||||
| "hostname "\ | ||||
| "adduser "\ | ||||
| "debian-archive-keyring "\ | ||||
| "libegl1-mesa-dev "\ | ||||
| "libegl-mesa0 "\ | ||||
| "libgl1-mesa-dev "\ | ||||
| "libgl1-mesa-dri "\ | ||||
| "libglapi-mesa "\ | ||||
| "libgles2-mesa-dev "\ | ||||
| "libglx-mesa0 "\ | ||||
| "mesa-common-dev "\ | ||||
| "libz3-4 "\ | ||||
|  | ||||
| # Removing unneeded packages | ||||
| for PACKAGE in ${UNNEEDED_PACKAGES} | ||||
| do | ||||
| 	echo "Forcing removal of ${PACKAGE}" | ||||
| 	if ! dpkg --purge --force-remove-essential --force-depends "${PACKAGE}" | ||||
| 	then | ||||
| 		echo "WARNING: ${PACKAGE} isn't installed" | ||||
| 	fi | ||||
| done | ||||
|  | ||||
| # Show what's left package-wise before dropping dpkg itself | ||||
| COLUMNS=300 dpkg-query -W --showformat='${Installed-Size;10}\t${Package}\n' | sort -k1,1n | ||||
|  | ||||
| # Drop dpkg | ||||
| dpkg --purge --force-remove-essential --force-depends  dpkg | ||||
|  | ||||
| # No apt or dpkg, no need for its configuration archives | ||||
| rm -rf etc/apt | ||||
| rm -rf etc/dpkg | ||||
|  | ||||
| # Drop directories not part of ostree | ||||
| # Note that /var needs to exist as ostree bind mounts the deployment /var over | ||||
| # it | ||||
| rm -rf var/* opt srv share | ||||
|  | ||||
| # ca-certificates are in /etc drop the source | ||||
| rm -rf usr/share/ca-certificates | ||||
|  | ||||
| # No bash, no need for completions | ||||
| rm -rf usr/share/bash-completion | ||||
|  | ||||
| # No zsh, no need for comletions | ||||
| rm -rf usr/share/zsh/vendor-completions | ||||
|  | ||||
| # drop gcc-6 python helpers | ||||
| rm -rf usr/share/gcc-6 | ||||
|  | ||||
| # Drop sysvinit leftovers | ||||
| rm -rf etc/init.d | ||||
| rm -rf etc/rc[0-6S].d | ||||
|  | ||||
| # Drop upstart helpers | ||||
| rm -rf etc/init | ||||
|  | ||||
| # Various xtables helpers | ||||
| rm -rf usr/lib/xtables | ||||
|  | ||||
| # Drop all locales | ||||
| # TODO: only remaining locale is actually "C". Should we really remove it? | ||||
| rm -rf usr/lib/locale/* | ||||
|  | ||||
| # partition helpers | ||||
| rm -rf usr/sbin/*fdisk | ||||
|  | ||||
| # local compiler | ||||
| rm -rf usr/bin/localedef | ||||
|  | ||||
| # Systemd dns resolver | ||||
| find usr etc -name '*systemd-resolve*' -prune -exec rm -r {} \; | ||||
|  | ||||
| # Systemd network configuration | ||||
| find usr etc -name '*networkd*' -prune -exec rm -r {} \; | ||||
|  | ||||
| # systemd ntp client | ||||
| find usr etc -name '*timesyncd*' -prune -exec rm -r {} \; | ||||
|  | ||||
| # systemd hw database manager | ||||
| find usr etc -name '*systemd-hwdb*' -prune -exec rm -r {} \; | ||||
|  | ||||
| # No need for fuse | ||||
| find usr etc -name '*fuse*' -prune -exec rm -r {} \; | ||||
|  | ||||
| # lsb init function leftovers | ||||
| rm -rf usr/lib/lsb | ||||
|  | ||||
| # Only needed when adding libraries | ||||
| rm -rf usr/sbin/ldconfig* | ||||
|  | ||||
| # Games, unused | ||||
| rmdir usr/games | ||||
|  | ||||
| # Remove pam module to authenticate against a DB | ||||
| # plus libdb-5.3.so that is only used by this pam module | ||||
| rm -rf usr/lib/*/security/pam_userdb.so | ||||
| rm -rf usr/lib/*/libdb-5.3.so | ||||
|  | ||||
| # remove NSS support for nis, nisplus and hesiod | ||||
| rm -rf usr/lib/*/libnss_hesiod* | ||||
| rm -rf usr/lib/*/libnss_nis* | ||||
| @@ -1 +0,0 @@ | ||||
| u_format_test | ||||
| @@ -1,4 +0,0 @@ | ||||
| lp_test_arit | ||||
| roundeven | ||||
| u_format_test | ||||
| u_half_test | ||||
| @@ -1,4 +0,0 @@ | ||||
| lp_test_arit | ||||
| lp_test_format | ||||
| lp_test_printf | ||||
| u_format_test | ||||
| @@ -1,10 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
| @@ -1,32 +0,0 @@ | ||||
| dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center,Fail | ||||
| dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner,Fail | ||||
| dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_l8_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgb888_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgba4444_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgba8888_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_l8_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgb888_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgba4444_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgba8888_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_l8_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgb888_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgba4444_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgba8888_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_l8_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgb888_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgba4444_npot,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgba8888_npot,Fail | ||||
| dEQP-GLES3.functional.draw.instancing.draw_elements_instanced_grid_100x100,Fail | ||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.srgb8_alpha8,Fail | ||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb5_a1,Fail | ||||
| dEQP-GLES3.functional.occlusion_query.depth_write_depth_clear_stencil_write_stencil_clear,Fail | ||||
| dEQP-GLES3.functional.occlusion_query.stencil_clear,Fail | ||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump,Fail | ||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp,Fail | ||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.8,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.3,Fail | ||||
| @@ -1,15 +0,0 @@ | ||||
| # Note: flakes lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
| dEQP-GLES3.functional.occlusion_query.stencil_write | ||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_.* | ||||
| dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.triangles | ||||
| dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.points | ||||
| dEQP-GLES3.functional.rasterization.flatshading.lines_wide | ||||
| dEQP-GLES3.functional.rasterization.flatshading.triangles | ||||
| dEQP-GLES3.functional.shaders.linkage.varying.interpolation.centroid | ||||
| dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.* | ||||
| dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.* | ||||
| dEQP-GLES3.functional.texture.units.4_units.only_3d.* | ||||
| dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.8 | ||||
| dEQP-GLES3.functional.vertex_arrays.single_attribute.* | ||||
| @@ -1,48 +0,0 @@ | ||||
| dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center,Fail | ||||
| dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner,Fail | ||||
| dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_alpha,Fail | ||||
| dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_luminance,Fail | ||||
| dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgb,Fail | ||||
| dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgba,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_dst_y,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_float,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_int,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_mat3x2,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_mat3x4,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_mat2,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_uint,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_uvec4,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.highp_vec2,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.lowp_ivec3,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.highp_vec4,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.lowp_uint,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_mat2x4,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_uvec3,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_int,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_float,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_ivec3,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_vec3,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_mat4x2,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.position.lines_separate,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.3,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.random.separate.points.3,Fail | ||||
| dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.3,Fail | ||||
| dEQP-GLES31.functional.image_load_store.cube.format_reinterpret.r32i_rgba8,Fail | ||||
| dEQP-GLES31.functional.image_load_store.cube.format_reinterpret.rgba32f_rgba32ui,Fail | ||||
| dEQP-GLES31.functional.image_load_store.cube.format_reinterpret.rgba8_snorm_r32ui,Fail | ||||
| dEQP-GLES31.functional.image_load_store.cube.format_reinterpret.rgba8i_r32f,Fail | ||||
| dEQP-GLES31.functional.image_load_store.cube.load_store.r32f_single_layer,Fail | ||||
| dEQP-GLES31.functional.image_load_store.cube.load_store.rgba32i_single_layer,Fail | ||||
| dEQP-GLES31.functional.image_load_store.cube.load_store.rgba8_snorm_single_layer,Fail | ||||
| dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil_fbo,Crash | ||||
| dEQP-GLES31.functional.separate_shader.random.59,Fail | ||||
| dEQP-GLES31.functional.separate_shader.random.79,Fail | ||||
| dEQP-GLES31.functional.texture.border_clamp.formats.compressed_rgba8_etc2_eac.nearest_size_tile_multiple,Fail | ||||
| dEQP-GLES31.functional.texture.texture_buffer.modify.bufferdata.buffer_size_131071,Fail | ||||
| dEQP-GLES31.functional.texture.texture_buffer.render.as_index_array_as_fragment_texture.offset_7_alignments,Fail | ||||
| dEQP-GLES31.functional.texture.texture_buffer.render.as_vertex_array_as_index_array_as_fragment_texture.offset_1_alignments,Fail | ||||
| dEQP-GLES31.functional.texture.texture_buffer.render.as_vertex_texture_as_fragment_texture.range_size_98304,Fail | ||||
| dEQP-GLES31.functional.texture.texture_buffer.state_query.max_texture_buffer_size_getinteger,Fail | ||||
| @@ -1,23 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
|  | ||||
| # unstable results (probably related to the iommu faults). | ||||
| dEQP-GLES3.functional.texture.filtering.3d.* | ||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.* | ||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil | ||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil | ||||
| dEQP-GLES31.functional.ubo.2_level_struct_array.single_buffer.packed_instance_array_fragment | ||||
|  | ||||
| # These are in the xfails list (they usually do), but the random | ||||
| # behavior occasionally results in UnexpectedPass results. | ||||
| dEQP-GLES31.functional.separate_shader.random.99 | ||||
| dEQP-GLES31.functional.separate_shader.random.69 | ||||
| dEQP-GLES31.functional.separate_shader.random.119 | ||||
| @@ -1,14 +0,0 @@ | ||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.colordodge,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.exclusion,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.multiply,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.colordodge,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.exclusion,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.multiply,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.colordodge,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.exclusion,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.multiply,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.colordodge,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.exclusion,Fail | ||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.multiply,Fail | ||||
| dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_blend_eq_buffer_advanced_blend_eq,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d24_unorm_s8_uint.depth_zero,Fail | ||||
| @@ -1,11 +0,0 @@ | ||||
| # Note: flakes lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # At least some of the separate_channels tests fail on sysmem due to an | ||||
| # interaction of use of a UBWC buffer as both a render target and a | ||||
| # texture.  Stores are done through both paths in separate channels, | ||||
| # and the UBWC updates don't get synced.  The current a650 blob also | ||||
| # fails these tests and qcom apparently noted the failure at one point | ||||
| # https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2017 | ||||
| dEQP-VK.renderpass.*separate_channels.* | ||||
| @@ -1,59 +0,0 @@ | ||||
| KHR-GL33.packed_depth_stencil.verify_get_tex_image.depth24_stencil8,Fail | ||||
| KHR-GL33.packed_depth_stencil.verify_read_pixels.depth24_stencil8,Fail | ||||
| KHR-GL33.transform_feedback.api_errors_test,Fail | ||||
| KHR-GL33.transform_feedback.capture_vertex_interleaved_test,Fail | ||||
| KHR-GL33.transform_feedback.capture_vertex_separate_test,Fail | ||||
| KHR-GL33.transform_feedback.discard_vertex_test,Fail | ||||
| KHR-GL33.transform_feedback.draw_xfb_feedbackk_test,Crash | ||||
| KHR-GL33.transform_feedback.draw_xfb_instanced_test,Crash | ||||
| KHR-GL33.transform_feedback.draw_xfb_stream_instanced_test,Crash | ||||
| KHR-GL33.transform_feedback.draw_xfb_test,Crash | ||||
| KHR-GL33.transform_feedback.query_vertex_interleaved_test,Fail | ||||
| KHR-GL33.transform_feedback.query_vertex_separate_test,Fail | ||||
| KHR-GL33.cull_distance.coverage,Fail | ||||
| dEQP-VK.api.object_management.single_alloc_callbacks.compute_pipeline,Fail | ||||
| dEQP-VK.draw.shader_viewport_index.fragment_shader_12,Fail | ||||
| dEQP-VK.draw.shader_viewport_index.fragment_shader_2,Fail | ||||
| dEQP-VK.draw.shader_viewport_index.vertex_shader_9,Fail | ||||
| dEQP-VK.glsl.atomic_operations.and_unsigned_geometry,Fail | ||||
| dEQP-VK.image.subresource_layout.2d.1_level.r8g8_snorm,Fail | ||||
| dEQP-VK.image.subresource_layout.2d.4_levels.b8g8r8a8_snorm,Fail | ||||
| dEQP-VK.image.subresource_layout.2d_array.2_levels.a8b8g8r8_snorm_pack32,Fail | ||||
| dEQP-VK.image.subresource_layout.2d_array.2_levels.r16g16b16a16_snorm,Fail | ||||
| dEQP-VK.image.subresource_layout.2d_array.4_levels.r16_snorm,Fail | ||||
| dEQP-VK.image.subresource_layout.2d_array.all_levels.r8_snorm,Fail | ||||
| dEQP-VK.image.subresource_layout.3d.2_levels.r16g16_snorm,Fail | ||||
| dEQP-VK.image.subresource_layout.3d.2_levels.r8g8b8a8_snorm,Fail | ||||
| dEQP-VK.image.subresource_layout.3d.4_levels.r8g8_snorm,Fail | ||||
| dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.image.guard_local.image.frag,Crash | ||||
| dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_local.buffer.guard_local.image.comp,Crash | ||||
| dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.buffer.guard_local.image.comp,Crash | ||||
| dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_local.image.guard_local.image.comp,Crash | ||||
| dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_nonlocal.workgroup.guard_local.image.comp,Crash | ||||
| dEQP-VK.multiview.masks.max_multi_view_view_count,Fail | ||||
| dEQP-VK.multiview.renderpass2.masks.max_multi_view_view_count,Fail | ||||
| dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_greater_equal_greater,Fail | ||||
| dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_always_greater,Fail | ||||
| dEQP-VK.pipeline.multisample.alpha_to_coverage_unused_attachment.samples_4.alpha_invisible,Fail | ||||
| dEQP-VK.pipeline.push_descriptor.compute.binding3_numcalls2_sampler,Crash | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d24_unorm_s8_uint.depth_zero,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.x8_d24_unorm_pack32.depth_zero,Fail | ||||
| dEQP-VK.renderpass2.suballocation.attachment_allocation.input_output.7,Fail | ||||
| dEQP-VK.spirv_assembly.instruction.graphics.opquantize.carry_to_exponent_tesse,Fail | ||||
| dEQP-VK.spirv_assembly.instruction.graphics.opquantize.negative_round_up_or_round_down_tesse,Fail | ||||
| dEQP-VK.spirv_assembly.instruction.graphics.opquantize.negative_too_small_tesse,Fail | ||||
| dEQP-VK.spirv_assembly.instruction.graphics.opquantize.round_to_inf_tesse,Fail | ||||
| dEQP-VK.spirv_assembly.instruction.graphics.opquantize.spec_const_carry_to_exponent_tesse,Fail | ||||
| dEQP-VK.spirv_assembly.instruction.graphics.opquantize.spec_const_negative_round_up_or_round_down_tesse,Fail | ||||
| dEQP-VK.tessellation.invariance.inner_triangle_set.triangles_equal_spacing,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_edge_division.triangles_fractional_even_spacing,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_edge_index_independence.triangles_equal_spacing_ccw,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_edge_index_independence.triangles_fractional_even_spacing_cw,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_edge_index_independence.quads_fractional_even_spacing_ccw,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_edge_symmetry.isolines_equal_spacing_cw,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_edge_symmetry.quads_fractional_odd_spacing_ccw,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_edge_symmetry.triangles_fractional_odd_spacing_cw,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_triangle_set.quads_fractional_odd_spacing,Fail | ||||
| dEQP-VK.tessellation.invariance.primitive_set.isolines_fractional_odd_spacing_ccw,Fail | ||||
| dEQP-VK.tessellation.invariance.primitive_set.quads_fractional_odd_spacing_cw,Fail | ||||
| dEQP-VK.tessellation.invariance.primitive_set.triangles_fractional_even_spacing_ccw,Fail | ||||
| @@ -1,43 +0,0 @@ | ||||
| # Note: flakes lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Flakes reported more than once during Jan-Feb 2020 | ||||
| dEQP-GLES31.functional.layout_binding.ssbo.fragment_binding_array | ||||
|  | ||||
| # Started appearing with the new deqp runner.  possibly different test order? | ||||
| dEQP-GLES3.functional.fbo.blit.conversion.rg8i_to_r16i | ||||
|  | ||||
| # We have longstanding intermittent failures with compswap. | ||||
| dEQP-GLES31.functional.compute.shared_var.atomic.compswap.highp_int | ||||
| dEQP-GLES31.functional.compute.shared_var.atomic.compswap.highp_uint | ||||
| dEQP-GLES31.functional.compute.shared_var.atomic.compswap.lowp_int | ||||
| dEQP-GLES31.functional.compute.shared_var.atomic.compswap.lowp_uint | ||||
| dEQP-GLES31.functional.compute.shared_var.atomic.compswap.mediump_int | ||||
| dEQP-GLES31.functional.compute.shared_var.atomic.compswap.mediump_uint | ||||
| dEQP-GLES31.functional.ssbo.atomic.compswap.highp_int | ||||
| dEQP-GLES31.functional.ssbo.atomic.compswap.highp_uint | ||||
| dEQP-GLES31.functional.ssbo.atomic.compswap.lowp_int | ||||
| dEQP-GLES31.functional.ssbo.atomic.compswap.lowp_uint | ||||
| dEQP-GLES31.functional.ssbo.atomic.compswap.mediump_int | ||||
| dEQP-GLES31.functional.ssbo.atomic.compswap.mediump_uint | ||||
|  | ||||
| # Non-sysmem flakes | ||||
| dEQP-VK.pipeline.spec_constant.compute.composite.matrix.mat3x2 | ||||
|  | ||||
| # Fails NIR_VALIDATE so probably flaky | ||||
| dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_nonlocal.workgroup.guard_local.buffer.comp | ||||
|  | ||||
| # Undiagnosed flakes appearing more than once in the last 2 months as | ||||
| # of 2020-08-19, in descending order of frequency. | ||||
| dEQP-GLES3.functional.fragment_out.random.39 | ||||
| dEQP-VK.subgroups.shuffle.framebuffer.subgroupshufflexor_bvec3_tess_eval | ||||
| dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint | ||||
| dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sint.general_optimal_nearest | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_snorm.optimal_optimal_nearest | ||||
| dEQP-GLES31.functional.layout_binding.ssbo.fragment_binding_array | ||||
| dEQP-VK.subgroups.quad.framebuffer.subgroupquadswapvertical_ivec2_tess_eval | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32_sfloat.general_optimal_nearest | ||||
| dEQP-GLES31.functional.tessellation.invariance.primitive_set.quads_equal_spacing_cw | ||||
| dEQP-GLES31.functional.ssbo.layout.3_level_unsized_array.std140.mat2 | ||||
| dEQP-GLES31.functional.draw_indirect.compute_interop.large.drawelements_combined_grid_1200x1200_drawcount_8 | ||||
| @@ -1,28 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
|  | ||||
| # Timeouts, passes otherwise | ||||
| KHR-GL33.texture_swizzle.smoke | ||||
|  | ||||
| # Timeout on what looks like an infinite loop in ir3's mark_kill_path() | ||||
| dEQP-VK.geometry.layered.cube_array.36_36_12.secondary_cmd_buffer_inherit_framebuffer | ||||
| # More timeouts, possibly the same. | ||||
| dEQP-VK.geometry.layered.3d.64_64_8.secondary_cmd_buffer_inherit_framebuffer | ||||
| dEQP-VK.geometry.layered.cube_array.64_64_12.secondary_cmd_buffer_inherit_framebuffer | ||||
| dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tesse | ||||
| dEQP-VK.tessellation.invariance.outer_edge_division.quads_fractional_odd_spacing | ||||
|  | ||||
| # Timeout (VK-GL-CTS 1.2.5.0) | ||||
| dEQP-VK.geometry.layered.cube_array.36_36_12.readback | ||||
| dEQP-VK.geometry.layered.cube_array.64_64_12.readback | ||||
|  | ||||
| # Crashes likely caused by https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2701 | ||||
| dEQP-VK.synchronization.cross_instance.*binary_semaphore_fence_fd | ||||
| @@ -1,66 +0,0 @@ | ||||
| dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center,Fail | ||||
| dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail | ||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_neg_y_pos_z_and_pos_x_pos_y_neg_z,Fail | ||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_pos_y_pos_z_and_pos_x_neg_y_neg_z,Fail | ||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_neg_y_pos_z_and_neg_x_pos_y_neg_z,Fail | ||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_pos_y_pos_z_and_neg_x_neg_y_neg_z,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.0,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.1,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.10,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.11,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.12,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.13,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.14,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.15,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.16,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.17,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.18,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.19,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.2,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.20,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.21,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.22,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.23,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.24,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.3,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.4,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.5,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.6,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.7,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.8,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.random.9,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.stencil,Fail | ||||
| dEQP-GLES2.functional.shaders.loops.do_while_dynamic_iterations.vector_counter_fragment,Fail | ||||
| dEQP-GLES2.functional.shaders.loops.for_dynamic_iterations.vector_counter_fragment,Fail | ||||
| dEQP-GLES2.functional.shaders.loops.while_dynamic_iterations.vector_counter_fragment,Fail | ||||
| dEQP-GLES2.functional.shaders.random.all_features.fragment.37,Fail | ||||
| dEQP-GLES2.functional.shaders.random.exponential.fragment.11,Fail | ||||
| dEQP-GLES2.functional.shaders.random.exponential.fragment.12,Fail | ||||
| dEQP-GLES2.functional.shaders.random.exponential.fragment.14,Fail | ||||
| dEQP-GLES2.functional.shaders.random.exponential.fragment.37,Fail | ||||
| dEQP-GLES2.functional.shaders.random.exponential.fragment.5,Fail | ||||
| dEQP-GLES2.functional.shaders.random.exponential.fragment.74,Fail | ||||
| dEQP-GLES2.functional.shaders.random.texture.fragment.28,Fail | ||||
| dEQP-GLES2.functional.shaders.random.trigonometric.fragment.65,Fail | ||||
| dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias,Fail | ||||
| dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias,Fail | ||||
| dEQP-GLES2.functional.shaders.texture_functions.fragment.texturecube_bias,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest,Fail | ||||
| dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgb,Fail | ||||
| dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgba,Fail | ||||
| dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.cube_rgb,Fail | ||||
| dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.cube_rgba,Fail | ||||
| @@ -1,37 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance | ||||
| dEQP-GLES[0-9]*.stress | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish | ||||
|  | ||||
| # Flaky | ||||
| dEQP-GLES2.functional.default_vertex_attrib.* | ||||
| dEQP-GLES2.functional.fbo.completeness.size.distinct | ||||
| dEQP-GLES2.functional.negative_api.shader.uniform_matrixfv_invalid_transpose | ||||
| dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed | ||||
| dEQP-GLES2.functional.shaders.builtin_variable.frontfacing | ||||
| dEQP-GLES2.functional.shaders.random.exponential.fragment.94 | ||||
| dEQP-GLES2.functional.shaders.random.all_features.fragment.55 | ||||
| dEQP-GLES2.functional.shaders.random.trigonometric.fragment.1 | ||||
| dEQP-GLES2.functional.shaders.random.trigonometric.fragment.69 | ||||
|  | ||||
| # Hangs / OOM | ||||
| dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_static_read | ||||
| dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_dynamic_read | ||||
| dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_static_loop_read | ||||
| dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_dynamic_loop_read | ||||
|  | ||||
| dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_static_read_vertex | ||||
| dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_dynamic_read_vertex | ||||
| dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_static_loop_read_vertex | ||||
| dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_dynamic_loop_read_vertex | ||||
|  | ||||
| dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_read_vertex | ||||
| dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_dynamic_read_vertex | ||||
| dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_loop_read_vertex | ||||
| dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_dynamic_loop_read_vertex | ||||
| @@ -1,78 +0,0 @@ | ||||
| dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center,Fail | ||||
| dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center,Fail | ||||
| dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner,Fail | ||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z,Fail | ||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z,Fail | ||||
| dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4,Fail | ||||
| dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.depth.rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.no_rebind_rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.no_rebind_rbo_rgba4_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgba4_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.polygon_offset.default_displacement_with_units,Fail | ||||
| dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units,Fail | ||||
| dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide,Fail | ||||
| dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide,Fail | ||||
| dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide,Fail | ||||
| dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide,Fail | ||||
| dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide,Fail | ||||
| dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_etc1,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_repeat_etc1,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_repeat_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_etc1,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_etc1,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_l8,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgb888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgba4444,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_clamp_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_mirror_etc1,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_mirror_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_repeat_etc1,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_repeat_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_clamp_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_mirror_etc1,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_mirror_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_etc1,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_l8,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgb888,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgba4444,Fail | ||||
| dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgba8888,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.affine.linear_linear_repeat,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_clamp,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_mirror,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_repeat,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_repeat,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_repeat_non_square,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp_non_square,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_mirror,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_mirror_non_square,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat_non_square,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.projected.linear_linear_repeat,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_clamp,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_mirror,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_repeat,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear,Fail | ||||
| dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest,Fail | ||||
| @@ -1,62 +0,0 @@ | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.a8b8g8r8_unorm_pack32.r16g16b16a16_unorm.general_optimal_linear,Fail | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.b8g8r8a8_unorm.r16g16b16a16_unorm.general_optimal_linear,Fail | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.r8g8_unorm.r16g16b16a16_unorm.general_optimal_linear,Fail | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.r8g8b8a8_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_linear,Fail | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.r8g8b8a8_unorm.r16g16_unorm.general_optimal_linear,Fail | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.r8g8b8a8_unorm.r16g16b16a16_unorm.linear_general_linear,Fail | ||||
| dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.r8_unorm.r16g16b16a16_unorm.general_optimal_linear,Fail | ||||
| dEQP-VK.glsl.builtin.precision.pow.highp.vec3,Fail | ||||
| dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler1d_fixed_fragment,Fail | ||||
| dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler2darray_fixed_fragment,Fail | ||||
| dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler2dshadow_fragment,Fail | ||||
| dEQP-VK.tessellation.invariance.outer_triangle_set.quads_fractional_odd_spacing,Timeout | ||||
| dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.linear.clamp_to_edge.repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.linear.mirror_clamp_to_edge.repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.linear.repeat.repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.nearest.mirrored_repeat.repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.linear.mirrored_repeat.repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.nearest.clamp_to_edge.repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.nearest.mirror_clamp_to_edge.repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.nearest.repeat.repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm.linear_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm.nearest_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear.linear.mirrored_repeat.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear.nearest.clamp_to_edge.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear.nearest.mirror_clamp_to_edge.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear.nearest.repeat.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear.linear.mirrored_repeat.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear.nearest.clamp_to_edge.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear.nearest.mirror_clamp_to_edge.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear.nearest.repeat.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat.r16g16b16a16_sfloat_nearest_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm.r5g6b5_unorm_nearest_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.2d_array.sizes.32x64x16.linear_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat.b10g11r11_ufloat_linear_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.3d.sizes.63x63x63.nearest_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear.linear.clamp_to_edge.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear.linear.mirror_clamp_to_edge.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear.linear.repeat.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear.nearest.clamp_to_border.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear.nearest.mirrored_repeat.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear.linear.clamp_to_edge.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear.linear.mirror_clamp_to_edge.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear.linear.repeat.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear.nearest.clamp_to_border.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear.nearest.mirrored_repeat.mirrored_repeat,Fail | ||||
| dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm.linear_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm.linear_mipmap_linear,Fail | ||||
| dEQP-VK.texture.filtering.cube.sizes.128x128.nearest_mipmap_linear,Fail | ||||
| dEQP-VK.texture.mipmap.2d.basic.linear_linear_clamp_npot,Fail | ||||
| dEQP-VK.texture.mipmap.2d.basic.nearest_linear_clamp,Fail | ||||
| dEQP-VK.texture.mipmap.2d.max_level.nearest_linear,Fail | ||||
| dEQP-VK.texture.mipmap.2d.projected.linear_linear_repeat,Fail | ||||
| dEQP-VK.texture.mipmap.3d.affine.nearest_linear_clamp,Fail | ||||
| dEQP-VK.texture.mipmap.3d.basic.linear_linear_repeat,Fail | ||||
| dEQP-VK.texture.mipmap.cubemap.basic.linear_linear_nearest_clamp,Fail | ||||
| dEQP-VK.texture.mipmap.cubemap.basic.linear_nearest_nearest_mirror,Fail | ||||
| dEQP-VK.texture.mipmap.cubemap.bias.linear_linear_nearest_mirror,Fail | ||||
| dEQP-VK.texture.mipmap.cubemap.bias.linear_nearest_linear_repeat,Fail | ||||
| dEQP-VK.texture.mipmap.cubemap.bias.nearest_nearest_nearest_clamp,Fail | ||||
| dEQP-VK.texture.mipmap.cubemap.max_lod.nearest_linear,Fail | ||||
| dEQP-VK.texture.mipmap.cubemap.projected.nearest_linear_nearest_mirror,Fail | ||||
| dEQP-VK.texture.mipmap.cubemap.projected.nearest_nearest_linear_repeat,Fail | ||||
| @@ -1 +0,0 @@ | ||||
| dEQP-VK.tessellation.invariance.outer_edge_division.quads_fractional_odd_spacing | ||||
| @@ -1,9 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # TODO: fix me | ||||
| dEQP-VK.texture.filtering.3d.sizes.3x7x5.linear_mipmap_linear | ||||
|  | ||||
| # Timeout (VK-GL-CTS 1.2.5.0) | ||||
| dEQP-VK.tessellation.invariance.outer_triangle_set.quads_fractional_odd_spacing | ||||
| @@ -1,6 +0,0 @@ | ||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_clamp | ||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_mirror | ||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_repeat | ||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_nearest_linear_clamp | ||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_nearest_linear_mirror | ||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_nearest_linear_repeat | ||||
| @@ -1,15 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
|  | ||||
| # Currently exactly 4096 bytes, which causes INSTR_INVALID_ENC for unknown | ||||
| # reasons. This needs to be sorted out asap to avoid creating flakes in the near | ||||
| # future, which would be a Very Bad Thing. | ||||
| dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_const_write_dynamic_loop_read_vertex | ||||
| @@ -1,49 +0,0 @@ | ||||
| dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_color_one_minus_dst_alpha,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_dst_alpha_one_minus_src_alpha,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_dst_color_one_minus_src_alpha,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_alpha_one_minus_constant_color,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_color_dst_color,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_alpha_dst_color,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_alpha_one_minus_dst_alpha,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.src_color_one_minus_src_color,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.src_color_zero,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_alpha_constant_alpha,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_alpha_constant_alpha,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_constant_color,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_one_minus_constant_alpha,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_saturate_one_minus_src_color,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.18,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.4,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.62,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.73,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.81,Fail | ||||
| dEQP-GLES2.functional.fragment_ops.random.43,Fail | ||||
| @@ -1,4 +0,0 @@ | ||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.* | ||||
| dEQP-GLES2.functional.fragment_ops.random.* | ||||
| dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.* | ||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.* | ||||
| @@ -1,14 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
|  | ||||
| # Needs investigation | ||||
| dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16 | ||||
| dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16 | ||||
| @@ -1,11 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
|  | ||||
| @@ -1,10 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
| @@ -1,16 +0,0 @@ | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_dst_x,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_dst_y,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_src_dst_x,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_src_dst_y,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_src_x,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_src_y,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_dst_x,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_dst_y,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_x,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_y,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_x,Fail | ||||
| dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_y,Fail | ||||
| dEQP-GLES3.functional.shaders.matrix.inverse.dynamic.lowp_mat2_float_vertex,Fail | ||||
| dEQP-GLES3.functional.shaders.matrix.inverse.dynamic.mediump_mat2_float_vertex,Fail | ||||
| @@ -1,10 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
| @@ -1,11 +0,0 @@ | ||||
| # Note: skips lists for CI are just a list of lines that, when | ||||
| # non-zero-length and not starting with '#', will regex match to | ||||
| # delete lines from the test list.  Be careful. | ||||
|  | ||||
| # Skip the perf/stress tests to keep runtime manageable | ||||
| dEQP-GLES[0-9]*.performance.* | ||||
| dEQP-GLES[0-9]*.stress.* | ||||
|  | ||||
| # These are really slow on tiling architectures (including llvmpipe). | ||||
| dEQP-GLES[0-9]*.functional.flush_finish.* | ||||
|  | ||||
| @@ -1,9 +0,0 @@ | ||||
| # Exclude this test which might fail when a new extension is implemented. | ||||
| dEQP-VK.info.device_extensions | ||||
|  | ||||
| # Exclude WSI related tests. | ||||
| dEQP-VK.image.swapchain_mutable.* | ||||
| dEQP-VK.wsi.* | ||||
|  | ||||
| # Exclude this test which timeout most of the time. | ||||
| dEQP-VK.memory.pipeline_barrier.transfer_src_transfer_dst.1048576 | ||||
| @@ -1,18 +0,0 @@ | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint.stencil_max,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint.stencil_min,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint.stencil_zero,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint_separate_layouts.stencil_max,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint_separate_layouts.stencil_min,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint_separate_layouts.stencil_zero,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint.stencil_max,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint.stencil_min,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint.stencil_zero,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint_separate_layouts.stencil_max,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint_separate_layouts.stencil_min,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint_separate_layouts.stencil_zero,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint.stencil_max,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint.stencil_min,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint.stencil_zero,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint_separate_layouts.stencil_max,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint_separate_layouts.stencil_min,Fail | ||||
| dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint_separate_layouts.stencil_zero,Fail | ||||
| @@ -1,109 +0,0 @@ | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rg32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32f.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.dontunroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_12.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_20.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_252.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_260.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_31.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_36.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_39.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_4.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_41.samples_1.1d.vert,Fail | ||||
| dEQP-VK.robustness.robustness2.bind.notemplate.rgba32ui.unroll.nonvolatile.vertex_attribute_fetch.no_fmt_qual.len_8.samples_1.1d.vert,Fail | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user