Compare commits
	
		
			154 Commits
		
	
	
		
			mesa-20.3.
			...
			mesa_7_4_r
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 20d34b50b5 | ||
|  | 9cff0acb36 | ||
|  | 791b59493f | ||
|  | 7dff7029fa | ||
|  | f8fd9bc46b | ||
|  | 53f0e141c0 | ||
|  | 14a794300e | ||
|  | 912ec292c1 | ||
|  | e814b5ae2f | ||
|  | 0fea05915a | ||
|  | dfa44f0ff9 | ||
|  | f850ff2bcc | ||
|  | 66f972ab55 | ||
|  | 17db2db9dc | ||
|  | dba79af9bc | ||
|  | b009a32bf4 | ||
|  | 7122490982 | ||
|  | 6ada1d47d9 | ||
|  | 55865335f4 | ||
|  | 918e5221ef | ||
|  | 9feb26584a | ||
|  | a8528a2e86 | ||
|  | 119360cccd | ||
|  | ac2216542d | ||
|  | 37e5c057f1 | ||
|  | 4d9b8e0f93 | ||
|  | c1b71f46b5 | ||
|  | 4a25ac9564 | ||
|  | 35d965b39b | ||
|  | d0aab00609 | ||
|  | ef33d0f103 | ||
|  | 349b819768 | ||
|  | 50443db882 | ||
|  | c503cacb53 | ||
|  | e862b4e38f | ||
|  | e9dfc858fb | ||
|  | 5efbca1e21 | ||
|  | d6d8663a88 | ||
|  | 13990bd98a | ||
|  | def630d0a2 | ||
|  | ca2564f1e6 | ||
|  | 711a57f7c7 | ||
|  | 058cf2fff1 | ||
|  | 715f509c5d | ||
|  | e704e6c6f3 | ||
|  | 01f34e667a | ||
|  | 4d0a7b33c5 | ||
|  | fb1d2ed34c | ||
|  | 9395fedf98 | ||
|  | 9abc0d80af | ||
|  | 90e89c01df | ||
|  | 790d93e362 | ||
|  | e9f3783169 | ||
|  | e41780fedc | ||
|  | d0edbbb3f3 | ||
|  | e10119c23e | ||
|  | 208c087f39 | ||
|  | 0c8b40b42b | ||
|  | 5199f451bb | ||
|  | dd7cde5230 | ||
|  | ab5746e5d8 | ||
|  | 3bd446c0ab | ||
|  | 9b78402ee4 | ||
|  | cf1ef0f308 | ||
|  | fd1f65ba61 | ||
|  | 967345b497 | ||
|  | 41ad853a6a | ||
|  | 842baa29cb | ||
|  | 9556d870a1 | ||
|  | 42ce790086 | ||
|  | b17769af42 | ||
|  | 9030277b0d | ||
|  | a37a9bf769 | ||
|  | 8afb8a8145 | ||
|  | 801f933694 | ||
|  | 75ecd6ebbf | ||
|  | 1cd7317fdb | ||
|  | 1865291701 | ||
|  | 3edbcce7d5 | ||
|  | b1fb34d0ac | ||
|  | 606099f545 | ||
|  | 32e3142071 | ||
|  | 66eea4e104 | ||
|  | e428cf3afd | ||
|  | 842b5164d2 | ||
|  | a6f7e909a7 | ||
|  | ca87e5a7bd | ||
|  | 45c4b4dfbd | ||
|  | 2adaec1226 | ||
|  | 549586c319 | ||
|  | 463ac421a5 | ||
|  | 6801240205 | ||
|  | a22088b7d5 | ||
|  | e89c49147f | ||
|  | 67634240d1 | ||
|  | 819b028a8e | ||
|  | a43c30ef41 | ||
|  | b65bfde84d | ||
|  | c39e6917ac | ||
|  | c79079895f | ||
|  | 4480e631cd | ||
|  | c32661c3ce | ||
|  | d5c06bb812 | ||
|  | 9d5aa36239 | ||
|  | e3050c1777 | ||
|  | 06295ddbdd | ||
|  | e2092bb23c | ||
|  | 528836d0ad | ||
|  | 3511442e43 | ||
|  | d20c53b511 | ||
|  | 091cc122ad | ||
|  | c983abbb9e | ||
|  | a0a81204c2 | ||
|  | 409d4f839c | ||
|  | 0ab36958ea | ||
|  | c2445f43a3 | ||
|  | f3d1c136b7 | ||
|  | dd10a8b09d | ||
|  | dd312366da | ||
|  | d2fe466ef3 | ||
|  | fe5328bfad | ||
|  | c0891dde07 | ||
|  | 0e6d9c1a55 | ||
|  | 5f74a66132 | ||
|  | 46f8b62d5f | ||
|  | 3e3e80c431 | ||
|  | 0486d117e4 | ||
|  | 29981c14da | ||
|  | 98d5efb2c5 | ||
|  | 77a44aafaf | ||
|  | 8278c70716 | ||
|  | ac0955f5e2 | ||
|  | 4130c35ca8 | ||
|  | d440647eb8 | ||
|  | 7e8f2c56c0 | ||
|  | a0880a152f | ||
|  | 4608a9172f | ||
|  | d0e38f7ec0 | ||
|  | a69bdbbbdd | ||
|  | 88c97a2662 | ||
|  | ce9c69ddbc | ||
|  | e430fcb716 | ||
|  | 11a363e632 | ||
|  | 41e63fbdb2 | ||
|  | b543401a5c | ||
|  | 8c4f08fbad | ||
|  | f3081a34d2 | ||
|  | 7b1d3cf392 | ||
|  | 25515b557e | ||
|  | 51625ff86e | ||
|  | 4d8f661726 | ||
|  | efa69a2f66 | ||
|  | 30a6dd78d5 | ||
|  | 9f75836308 | 
| @@ -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
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | *.dsp -crlf | ||||||
|  | *.dsw -crlf | ||||||
|  | *.sln -crlf | ||||||
|  | *.vcproj -crlf | ||||||
							
								
								
									
										20
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,16 @@ | |||||||
| *.pyc | *.a | ||||||
| *.pyo | *.o | ||||||
| *.out | *.so | ||||||
| build | *.sw[a-z] | ||||||
|  | *.pc | ||||||
|  | *~ | ||||||
|  | depend | ||||||
|  | depend.bak | ||||||
|  | lib | ||||||
|  | lib64 | ||||||
|  | configure | ||||||
|  | autom4te.cache | ||||||
|  | aclocal.m4 | ||||||
|  | config.log | ||||||
|  | config.status | ||||||
|  | cscope* | ||||||
|   | |||||||
							
								
								
									
										1564
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										1564
									
								
								.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,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,150 +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 |  | ||||||
|  |  | ||||||
|             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,125 +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. |  | ||||||
| pushd rootfs |  | ||||||
| find -H | \ |  | ||||||
|   egrep -v "external/(openglcts|vulkancts|amber|glslang|spirv-tools)" | |  | ||||||
|   egrep -v "traces-db|apitrace|renderdoc|python" | \ |  | ||||||
|   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,46 +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 |  | ||||||
|  |  | ||||||
| # 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,68 +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 \ |  | ||||||
|     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 \ |  | ||||||
|     DEQP_CASELIST_FILTER \ |  | ||||||
|     DEQP_CONFIG \ |  | ||||||
|     DEQP_EXPECTED_FAILS \ |  | ||||||
|     DEQP_EXPECTED_RENDERER \ |  | ||||||
|     DEQP_HEIGHT \ |  | ||||||
|     DEQP_NO_SAVE_RESULTS \ |  | ||||||
|     DEQP_FLAKES \ |  | ||||||
|     DEQP_PARALLEL \ |  | ||||||
|     DEQP_RESULTS_DIR \ |  | ||||||
|     DEQP_SKIPS \ |  | ||||||
|     DEQP_VARIANT \ |  | ||||||
|     DEQP_VER \ |  | ||||||
|     DEQP_WIDTH \ |  | ||||||
|     DEVICE_NAME \ |  | ||||||
|     DRIVER_NAME \ |  | ||||||
|     FD_MESA_DEBUG \ |  | ||||||
|     FLAKES_CHANNEL \ |  | ||||||
|     IR3_SHADER_DEBUG \ |  | ||||||
|     MESA_GL_VERSION_OVERRIDE \ |  | ||||||
|     MESA_GLSL_VERSION_OVERRIDE \ |  | ||||||
|     MESA_GLES_VERSION_OVERRIDE \ |  | ||||||
|     NIR_VALIDATE \ |  | ||||||
|     TRACIE_NO_UNIT_TESTS \ |  | ||||||
|     TRACIE_UPLOAD_TO_MINIO \ |  | ||||||
|     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,147 +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): |  | ||||||
|         self.filename = filename |  | ||||||
|         self.dev = dev |  | ||||||
|  |  | ||||||
|         if dev: |  | ||||||
|             self.f = open(filename, "wb+") |  | ||||||
|             self.serial = serial.Serial(dev, 115200, timeout=10) |  | ||||||
|         else: |  | ||||||
|             self.f = open(filename, "rb") |  | ||||||
|  |  | ||||||
|         self.byte_queue = queue.Queue() |  | ||||||
|         self.line_queue = queue.Queue() |  | ||||||
|         self.prefix = prefix |  | ||||||
|         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. |  | ||||||
|     def serial_read_thread_loop(self): |  | ||||||
|         greet = "Serial thread reading from %s\n" % self.dev |  | ||||||
|         self.byte_queue.put(greet.encode()) |  | ||||||
|  |  | ||||||
|         while True: |  | ||||||
|             try: |  | ||||||
|                 self.byte_queue.put(self.serial.read()) |  | ||||||
|             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 -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 -G Ninja -B_build -H. -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.1.5 \ |  | ||||||
|   --root /usr/local \ |  | ||||||
|   $EXTRA_CARGO_ARGS |  | ||||||
| @@ -1,67 +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.3.2 \ |  | ||||||
|     /VK-GL-CTS |  | ||||||
| pushd /VK-GL-CTS |  | ||||||
|  |  | ||||||
| # cherry-pick fix for surfaceless config choosing: |  | ||||||
| git cherry-pick -x 8f3bfc6c7def0c0cb452d5dadf31aa7fef242365 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # --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 -G Ninja \ |  | ||||||
|       -DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \ |  | ||||||
|       -DCMAKE_BUILD_TYPE=Release \ |  | ||||||
|       $EXTRA_CMAKE_ARGS \ |  | ||||||
|       /VK-GL-CTS |  | ||||||
| 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 .. -DCMAKE_BUILD_TYPE=Release -G Ninja |  | ||||||
| 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 -G Ninja -B_build -H. -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 -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 -G Ninja -DLLVM_CONFIG=$LLVM_CONFIG -DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr /llvm-project/libclc |  | ||||||
| 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,17 +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 404862743cf8a7b37a4e3a93b4ba1858d59cd4ab |  | ||||||
| patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff |  | ||||||
| cmake -G Ninja -DCMAKE_BUILD_TYPE=Release $PIGLIT_OPTS |  | ||||||
| ninja |  | ||||||
| find -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' | xargs rm -rf |  | ||||||
| rm -rf target_api |  | ||||||
| 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 -G Ninja -B_build -H. -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 -G Ninja -B_build -H. -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 -G Ninja -B_build -H. \ |  | ||||||
|       -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,56 +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 \ |  | ||||||
| 	llvm-8-dev \ |  | ||||||
| 	pkg-config \ |  | ||||||
| 	python \ |  | ||||||
| 	python3-mako \ |  | ||||||
| 	python3-pil \ |  | ||||||
| 	python3-requests \ |  | ||||||
| 	python3-pip \ |  | ||||||
| 	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,45 +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 \ |  | ||||||
|         g++ \ |  | ||||||
|         debootstrap \ |  | ||||||
|         fastboot \ |  | ||||||
|         flex \ |  | ||||||
|         git \ |  | ||||||
|         netcat \ |  | ||||||
|         nginx-full \ |  | ||||||
|         python3-distutils \ |  | ||||||
|         python3-minimal \ |  | ||||||
|         python3-serial \ |  | ||||||
|         python3.7 \ |  | ||||||
|         pkg-config \ |  | ||||||
|         procps \ |  | ||||||
|         rsync \ |  | ||||||
|         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,60 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| set -e |  | ||||||
| set -o xtrace |  | ||||||
|  |  | ||||||
| ROOTFS=/lava-files/rootfs-${arch} |  | ||||||
|  |  | ||||||
| dpkg --add-architecture $arch |  | ||||||
| apt-get update |  | ||||||
|  |  | ||||||
| # Cross-build test deps |  | ||||||
| BAREMETAL_EPHEMERAL=" \ |  | ||||||
|         autoconf \ |  | ||||||
|         automake \ |  | ||||||
|         crossbuild-essential-$arch \ |  | ||||||
|         git-lfs \ |  | ||||||
|         libdrm-dev:$arch \ |  | ||||||
|         libboost-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 \ |  | ||||||
|         libegl1-mesa-dev:$arch \ |  | ||||||
|         libvulkan-dev:$arch \ |  | ||||||
|         libxcb-keysyms1-dev:$arch \ |  | ||||||
|         libpython3-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,48 +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 \ |  | ||||||
|         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,272 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| set -e |  | ||||||
| set -o xtrace |  | ||||||
|  |  | ||||||
| check_minio() |  | ||||||
| { |  | ||||||
|     MINIO_PATH="minio-packet.freedesktop.org/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 "mesa/mesa" |  | ||||||
| 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 \ |  | ||||||
|                    git \ |  | ||||||
|                    bc \ |  | ||||||
|                    cmake \ |  | ||||||
|                    wget \ |  | ||||||
|                    debootstrap \ |  | ||||||
|                    libboost-dev \ |  | ||||||
|                    libegl1-mesa-dev \ |  | ||||||
|                    libgbm-dev \ |  | ||||||
|                    libgles2-mesa-dev \ |  | ||||||
|                    libpcre3-dev \ |  | ||||||
|                    libpng-dev \ |  | ||||||
|                    libpython3-dev \ |  | ||||||
|                    libssl-dev \ |  | ||||||
|                    libvulkan-dev \ |  | ||||||
|                    libxcb-keysyms1-dev \ |  | ||||||
|                    python3-dev \ |  | ||||||
|                    python3-distutils \ |  | ||||||
|                    python3-serial \ |  | ||||||
|                    qt5-default \ |  | ||||||
|                    qt5-qmake \ |  | ||||||
|                    qtbase5-dev |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 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 \ |  | ||||||
| 		libxcb-keysyms1-dev:armhf \ |  | ||||||
|                qtbase5-dev:armhf |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| ############### 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 |  | ||||||
| STRIP_CMD="${GCC_ARCH}-strip" |  | ||||||
| DEQP_TARGET=surfaceless . .gitlab-ci/build-deqp.sh |  | ||||||
|  |  | ||||||
| mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ############### 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 |  | ||||||
| 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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ############### Cross-build kernel |  | ||||||
| mkdir -p kernel |  | ||||||
| wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel |  | ||||||
| pushd kernel |  | ||||||
|  |  | ||||||
| ############### Delete rust, since the tests won't be compiling anything. |  | ||||||
| rm -rf /root/.rustup /root/.cargo |  | ||||||
|  |  | ||||||
| # 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 |  | ||||||
|  |  | ||||||
| ./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 |  | ||||||
|  |  | ||||||
| ############### 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 /create-rootfs.sh |  | ||||||
| rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh |  | ||||||
| rm /lava-files/rootfs-${DEBIAN_ARCH}/llvm-snapshot.gpg.key |  | ||||||
| du -ah /lava-files/rootfs-${DEBIAN_ARCH} | sort -h | tail -100 |  | ||||||
| pushd /lava-files/rootfs-${DEBIAN_ARCH} |  | ||||||
|   tar cvzf /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,8 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| arch=ppc64el |  | ||||||
|  |  | ||||||
| . .gitlab-ci/container/cross_build.sh |  | ||||||
|  |  | ||||||
| apt-get install -y --no-remove \ |  | ||||||
|         libvulkan-dev:$arch |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| arch=s390x |  | ||||||
|  |  | ||||||
| . .gitlab-ci/container/cross_build.sh |  | ||||||
| @@ -1,101 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| set -e |  | ||||||
| set -o xtrace |  | ||||||
|  |  | ||||||
| export DEBIAN_FRONTEND=noninteractive |  | ||||||
|  |  | ||||||
| apt-get install -y \ |  | ||||||
|         ca-certificates \ |  | ||||||
|         gnupg \ |  | ||||||
|         python3-pip \ |  | ||||||
|         python3-setuptools \ |  | ||||||
|         unzip \ |  | ||||||
|         wget |  | ||||||
|  |  | ||||||
| # 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 |  | ||||||
|  |  | ||||||
| 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-9-dev \ |  | ||||||
|         libclang-10-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 \ |  | ||||||
|         libxdamage-dev \ |  | ||||||
|         libxext-dev \ |  | ||||||
|         libxml2-utils \ |  | ||||||
|         libxrandr-dev \ |  | ||||||
|         libxrender-dev \ |  | ||||||
|         libxshmfence-dev \ |  | ||||||
|         libxvmc-dev \ |  | ||||||
|         libxxf86vm-dev \ |  | ||||||
|         libz-mingw-w64-dev \ |  | ||||||
|         llvm-9-dev \ |  | ||||||
|         llvm-10-dev \ |  | ||||||
|         pkg-config \ |  | ||||||
|         python-mako \ |  | ||||||
|         python3-mako \ |  | ||||||
|         python3-pil \ |  | ||||||
|         python3-pip \ |  | ||||||
|         python3-requests \ |  | ||||||
|         python3-setuptools \ |  | ||||||
|         qemu-user \ |  | ||||||
|         scons \ |  | ||||||
|         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 \ |  | ||||||
|         gnupg \ |  | ||||||
|         unzip |  | ||||||
|  |  | ||||||
| . .gitlab-ci/container/container_post_build.sh |  | ||||||
| @@ -1,125 +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 \ |  | ||||||
|       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.17.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 -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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ############### Uninstall the build software |  | ||||||
|  |  | ||||||
| apt-get purge -y \ |  | ||||||
|       $STABLE_EPHEMERAL |  | ||||||
|  |  | ||||||
| . .gitlab-ci/container/container_post_build.sh |  | ||||||
| @@ -1,63 +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 |  | ||||||
|  |  | ||||||
| apt-get update |  | ||||||
| apt-get dist-upgrade -y |  | ||||||
|  |  | ||||||
| apt-get install -y --no-remove \ |  | ||||||
|       git \ |  | ||||||
|       git-lfs \ |  | ||||||
|       libexpat1 \ |  | ||||||
|       libllvm9 \ |  | ||||||
|       libllvm10 \ |  | ||||||
|       liblz4-1 \ |  | ||||||
|       libpcre32-3 \ |  | ||||||
|       libpng16-16 \ |  | ||||||
|       libpython3.7 \ |  | ||||||
|       libvulkan1 \ |  | ||||||
|       libwayland-client0 \ |  | ||||||
|       libwayland-server0 \ |  | ||||||
|       libxcb-ewmh2 \ |  | ||||||
|       libxcb-randr0 \ |  | ||||||
|       libxcb-keysyms1 \ |  | ||||||
|       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 purge -y \ |  | ||||||
|       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 \ |  | ||||||
|       clinfo \ |  | ||||||
|       libclang-common-10-dev \ |  | ||||||
|       libclang-cpp10 \ |  | ||||||
|       libxcb-shm0 \ |  | ||||||
|       ocl-icd-libopencl1 \ |  | ||||||
|       python3-lxml \ |  | ||||||
|       python3-simplejson \ |  | ||||||
|       $STABLE_EPHEMERAL |  | ||||||
|  |  | ||||||
|  |  | ||||||
| . .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,137 +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 \ |  | ||||||
|       libxcb-ewmh-dev \ |  | ||||||
|       libxkbcommon-dev \ |  | ||||||
|       libxrandr-dev \ |  | ||||||
|       libxrender-dev \ |  | ||||||
|       libzstd-dev \ |  | ||||||
|       meson \ |  | ||||||
|       p7zip \ |  | ||||||
|       pkg-config \ |  | ||||||
|       python3-distutils \ |  | ||||||
|       wget \ |  | ||||||
|       " |  | ||||||
|  |  | ||||||
| # Unfortunately, gfxreconstruct needs the -dev packages: |  | ||||||
| # https://github.com/LunarG/gfxreconstruct/issues/402 |  | ||||||
| apt-get install -y --no-remove \ |  | ||||||
|       libwayland-dev \ |  | ||||||
|       libx11-xcb-dev \ |  | ||||||
|       libxcb-keysyms1-dev \ |  | ||||||
|       libxcb1-dev \ |  | ||||||
|       $STABLE_EPHEMERAL |  | ||||||
|  |  | ||||||
| # 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 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,251 +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="libelf1 |  | ||||||
|                    libllvm10 |  | ||||||
|                    libxcb-dri2-0 |  | ||||||
|                    libxcb-dri3-0 |  | ||||||
|                    libxcb-present0 |  | ||||||
|                    libxcb-sync1 |  | ||||||
|                    libxcb-xfixes0 |  | ||||||
|                    libxshmfence1 |  | ||||||
|                    firmware-amd-graphics |  | ||||||
|                   " |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| apt-get -y install --no-install-recommends \ |  | ||||||
|     ca-certificates \ |  | ||||||
|     curl \ |  | ||||||
|     initramfs-tools \ |  | ||||||
|     libpng16-16 \ |  | ||||||
|     strace \ |  | ||||||
|     libsensors5 \ |  | ||||||
|     libexpat1 \ |  | ||||||
|     libx11-6 \ |  | ||||||
|     libx11-xcb1 \ |  | ||||||
|     $ARCH_PACKAGES \ |  | ||||||
|     netcat-openbsd \ |  | ||||||
|     python3 \ |  | ||||||
|     libpython3.7 \ |  | ||||||
|     python3-pil \ |  | ||||||
|     python3-pytest \ |  | ||||||
|     python3-requests \ |  | ||||||
|     python3-yaml \ |  | ||||||
|     sntp \ |  | ||||||
|     wget \ |  | ||||||
|     xz-utils |  | ||||||
|  |  | ||||||
| if [ -n "$INCLUDE_VK_CTS" ]; then |  | ||||||
|     apt-get install -y libvulkan1 |  | ||||||
| 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,481 +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_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z,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.clipping.line.wide_line_clip_viewport_center,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.point.wide_point_clip,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner,Fail |  | ||||||
| dEQP-GLES3.functional.draw.instancing.draw_arrays_instanced_grid_100x100,Fail |  | ||||||
| dEQP-GLES3.functional.draw.instancing.draw_arrays_instanced_grid_32x32,Fail |  | ||||||
| dEQP-GLES3.functional.draw.instancing.draw_elements_instanced_grid_100x100,Fail |  | ||||||
| dEQP-GLES3.functional.draw.instancing.draw_elements_instanced_grid_32x32,Fail |  | ||||||
| dEQP-GLES3.functional.draw.random.124,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_basic,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_scale,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_stencil_only,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.blit.depth_stencil.depth32f_stencil8_basic,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.blit.depth_stencil.depth32f_stencil8_scale,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.blit.depth_stencil.depth32f_stencil8_stencil_only,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_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.fbo.color.blend.r8_src_over,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.basic.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.basic.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.basic.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.basic.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.basic.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_color,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_depth,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_color,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_color,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_depth,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_color,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.r11f_g11f_b10f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.r16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.r8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rg16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rg8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgb10_a2,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgb565,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgb5_a1,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgb8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgba4,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgba8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.srgb8_alpha8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.r11f_g11f_b10f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.r16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.r8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rg16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rg8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb10_a2,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb565,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb5_a1,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgba4,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgba8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.srgb8_alpha8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.stencil_index8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_rbo_depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_rbo_depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_stencil_rbo_depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_stencil_rbo_depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_stencil_tex2d_depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_stencil_tex2d_depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_tex2d_depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_tex2d_depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_depth_tex2d_depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.tex2d_rgba8_stencil_rbo_stencil_index8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.shared_colorbuffer.rbo_r8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.shared_colorbuffer.rbo_r8_depth_rbo_depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.shared_colorbuffer.rbo_r8_depth_stencil_rbo_depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.shared_colorbuffer.tex2d_r8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.shared_colorbuffer.tex2d_r8_depth_rbo_depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.render.shared_colorbuffer.tex2d_r8_depth_stencil_rbo_depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.lifetime.attach.deleted_input.buffer_vertex_array,Fail |  | ||||||
| dEQP-GLES3.functional.lifetime.attach.deleted_output.buffer_transform_feedback,Fail |  | ||||||
| dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_alpha_to_coverage,Fail |  | ||||||
| dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage,Fail |  | ||||||
| dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage_inverted,Fail |  | ||||||
| dEQP-GLES3.functional.multisample.fbo_max_samples.sample_coverage_invert,Fail |  | ||||||
| dEQP-GLES3.functional.negative_api.buffer.blit_framebuffer_multisample,Fail |  | ||||||
| dEQP-GLES3.functional.negative_api.buffer.read_pixels_fbo_format_mismatch,Fail |  | ||||||
| dEQP-GLES3.functional.negative_api.vertex_array.draw_elements_instanced,Fail |  | ||||||
| dEQP-GLES3.functional.negative_api.vertex_array.draw_range_elements,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_clear_stencil_write,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_clear_stencil_write_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_write,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_write_depth_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_write_depth_clear_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_write_depth_clear_stencil_write,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_write_depth_clear_stencil_write_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_write_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_write_stencil_write,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.depth_write_stencil_write_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.scissor,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.scissor_depth_clear_stencil_write,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.scissor_depth_clear_stencil_write_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.scissor_depth_write_depth_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.scissor_depth_write_stencil_write,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.scissor_depth_write_stencil_write_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.scissor_stencil_write,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.scissor_stencil_write_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.stencil_write,Fail |  | ||||||
| dEQP-GLES3.functional.occlusion_query.stencil_write_stencil_clear,Fail |  | ||||||
| dEQP-GLES3.functional.polygon_offset.fixed16_displacement_with_units,Fail |  | ||||||
| dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.triangles,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.points,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.triangles,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.points,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.triangles,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.points,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.flatshading.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.flatshading.triangles,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.linkage.varying.rules.differing_interpolation_2,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.isampler2d_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.isampler3d_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2darray_fixed_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2darrayshadow_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler3d_fixed_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler2dshadow_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler3d_float_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.usampler3d_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.sampler2dshadow_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler2dshadow_vertex,Fail |  | ||||||
| dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_component_type,Fail |  | ||||||
| dEQP-GLES3.functional.state_query.integers.max_samples_getfloat,Fail |  | ||||||
| dEQP-GLES3.functional.state_query.integers.max_samples_getinteger64,Fail |  | ||||||
| dEQP-GLES3.functional.state_query.rbo.renderbuffer_component_size_color,Fail |  | ||||||
| dEQP-GLES3.functional.texture.mipmap.cube.max_level.linear_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.specification.random_teximage2d.cube_3,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.2_units.mixed.1,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.2_units.mixed.9,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.2_units.only_3d.5,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.2_units.only_3d.9,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.2_units.only_cube.2,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.mixed.1,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.mixed.9,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.only_2d.0,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.only_2d_array.0,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.only_3d.0,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.only_3d.1,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.only_3d.5,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.only_3d.7,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.only_3d.9,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.4_units.only_cube.2,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.mixed.6,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.mixed.7,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.mixed.8,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.only_2d.0,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.only_2d.6,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.only_2d_array.0,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.only_2d_array.6,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.only_3d.6,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.only_3d.8,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.only_cube.1,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.8_units.only_cube.2,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.mixed.0,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.mixed.5,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.mixed.6,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.mixed.8,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.mixed.9,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_2d.0,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_2d.6,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_2d_array.0,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_2d_array.5,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_2d_array.6,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_3d.5,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_3d.6,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_cube.1,Fail |  | ||||||
| dEQP-GLES3.functional.texture.units.all_units.only_cube.2,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_lines_interleaved,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_lines_separate,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_triangles_interleaved,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_triangles_separate,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_lines_interleaved,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_lines_separate,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_triangles_interleaved,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_triangles_separate,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_lines_interleaved,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_lines_separate,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_triangles_interleaved,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_triangles_separate,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.10,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.4,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.8,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.9,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.1,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.3,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.lines.10,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.lines.2,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.lines.4,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.lines.7,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.triangles.10,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.triangles.3,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.triangles.4,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.triangles.5,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.triangles.6,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.triangles.7,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.triangles.8,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.random.separate.triangles.9,Fail |  | ||||||
| dEQP-GLES3.functional.vertex_arrays.single_attribute.first.byte.first6_offset16_stride32_quads5,Fail |  | ||||||
| dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads256,Fail |  | ||||||
| dEQP-GLES3.functional.vertex_arrays.single_attribute.usages.static_copy.stride4_short_quads256,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,64 +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_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z,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.interleaved.triangles.highp_mat2x3,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.array.interleaved.triangles.lowp_uvec3,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.separate.triangles.lowp_vec3,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.array.separate.triangles.mediump_ivec3,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.interleaved.triangles.lowp_int,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.interleaved.triangles.highp_mat4x3,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.basic_types.separate.triangles.lowp_mat3,Fail |  | ||||||
| dEQP-GLES3.functional.transform_feedback.interpolation.smooth.highp_vec4_triangles_separate,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-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.layout_binding.image.image2d.fragment_binding_single,Fail |  | ||||||
| dEQP-GLES31.functional.layout_binding.image.image3d.fragment_binding_single,Fail |  | ||||||
| dEQP-GLES31.functional.program_interface_query.program_input.location.interface_blocks.in.named_block.var_struct_explicit_location,Fail |  | ||||||
| dEQP-GLES31.functional.program_interface_query.program_input.resource_list.interface_blocks.in.named_block_explicit_location.var_struct,Fail |  | ||||||
| dEQP-GLES31.functional.program_interface_query.program_input.type.interface_blocks.in.named_block_explicit_location.struct.uint,Fail |  | ||||||
| dEQP-GLES31.functional.separate_shader.random.119,Fail |  | ||||||
| dEQP-GLES31.functional.separate_shader.random.59,Fail |  | ||||||
| dEQP-GLES31.functional.separate_shader.random.69,Fail |  | ||||||
| dEQP-GLES31.functional.separate_shader.random.79,Fail |  | ||||||
| dEQP-GLES31.functional.separate_shader.random.99,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,87 +0,0 @@ | |||||||
|  |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.colorburn,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.colordodge,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.darken,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.difference,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.exclusion,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.hardlight,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_color,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_hue,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_luminosity,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_saturation,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.lighten,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.multiply,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.overlay,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.screen,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.barrier.softlight,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.colorburn,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.colordodge,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.darken,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.difference,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.exclusion,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.hardlight,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_color,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_hue,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_luminosity,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_saturation,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.lighten,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.multiply,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.overlay,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.screen,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.basic.softlight,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.colorburn,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.colordodge,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.darken,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.difference,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.exclusion,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.hardlight,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_color,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_hue,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_luminosity,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_saturation,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.lighten,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.multiply,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.overlay,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.screen,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.msaa.softlight,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.colorburn,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.colordodge,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.darken,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.difference,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.exclusion,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.hardlight,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_color,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_hue,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_luminosity,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_saturation,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.lighten,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.multiply,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.overlay,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.screen,Fail |  | ||||||
| dEQP-GLES31.functional.blend_equation_advanced.srgb.softlight,Fail |  | ||||||
| dEQP-GLES31.functional.compute.basic.shared_var_single_group,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_advanced_blend_eq_buffer_advanced_blend_eq,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_blend_eq_buffer_advanced_blend_eq,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_separate_blend_eq_buffer_advanced_blend_eq,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_advanced_blend_eq,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_blend_eq,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_separate_blend_eq,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_separate_blend_eq_buffer_blend_eq,Fail |  | ||||||
| dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_depth_fbo,Fail |  | ||||||
| dEQP-GLES31.functional.ssbo.layout.3_level_array.std140.column_major_mat4x2,Fail |  | ||||||
| dEQP-GLES31.functional.ssbo.layout.3_level_unsized_array.std430.mat3,Fail |  | ||||||
| dEQP-GLES31.functional.ssbo.layout.random.arrays_of_arrays.6,Fail |  | ||||||
| dEQP-GLES31.functional.ssbo.layout.unsized_struct_array.per_block_buffer.shared_instance_array,Fail |  | ||||||
| dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw,Fail |  | ||||||
| dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_clear,Fail |  | ||||||
| dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_draw,Fail |  | ||||||
| dEQP-GLES31.functional.tessellation.invariance.inner_triangle_set.quads_fractional_even_spacing,Fail |  | ||||||
| dEQP-GLES31.functional.tessellation.invariance.tess_coord_component_range.triangles_fractional_odd_spacing_cw,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_depth_2d,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_depth_2d_array,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_2.use_texture_depth_2d,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_2.use_texture_depth_2d_array,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d_array,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d_array,Fail |  | ||||||
| @@ -1,24 +0,0 @@ | |||||||
| # Possibly https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2035 related,Fail |  | ||||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z,Fail |  | ||||||
|  |  | ||||||
| dEQP-VK.compute.indirect_dispatch.upload_buffer.multi_dispatch,Fail |  | ||||||
| dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint,Fail |  | ||||||
| dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.image.guard_nonlocal.workgroup.comp,Fail |  | ||||||
| dEQP-VK.spirv_assembly.instruction.graphics.opquantize.round_to_negative_inf_geom,Fail |  | ||||||
| dEQP-VK.spirv_assembly.instruction.graphics.opquantize.spec_const_positive_round_up_or_round_down_geom,Fail |  | ||||||
|  |  | ||||||
| # not sure what's wrong here,Fail |  | ||||||
| dEQP-VK.tessellation.invariance.outer_edge_index_independence.quads_fractional_even_spacing_ccw_point_mode,Fail |  | ||||||
| dEQP-VK.tessellation.invariance.outer_edge_symmetry.triangles_fractional_odd_spacing_cw_point_mode,Fail |  | ||||||
|  |  | ||||||
| KHR-GL30.transform_feedback.api_errors_test,Fail |  | ||||||
| KHR-GL30.transform_feedback.capture_vertex_interleaved_test,Fail |  | ||||||
| KHR-GL30.transform_feedback.capture_vertex_separate_test,Fail |  | ||||||
| KHR-GL30.transform_feedback.discard_vertex_test,Fail |  | ||||||
| KHR-GL30.transform_feedback.draw_xfb_feedbackk_test,Crash |  | ||||||
| KHR-GL30.transform_feedback.draw_xfb_instanced_test,Crash |  | ||||||
| KHR-GL30.transform_feedback.draw_xfb_stream_instanced_test,Crash |  | ||||||
| KHR-GL30.transform_feedback.draw_xfb_test,Crash |  | ||||||
| KHR-GL30.transform_feedback.get_xfb_varying,Fail |  | ||||||
| KHR-GL30.transform_feedback.query_vertex_interleaved_test,Fail |  | ||||||
| KHR-GL30.transform_feedback.query_vertex_separate_test,Fail |  | ||||||
| @@ -1,60 +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 |  | ||||||
|  |  | ||||||
| # Sysmem flakes |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d_array |  | ||||||
| dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw |  | ||||||
|  |  | ||||||
| # 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 |  | ||||||
|  |  | ||||||
| # 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.* |  | ||||||
|  |  | ||||||
| # These tests are broken (does not respect our minStorageBufferOffsetAlignment of 64) |  | ||||||
| dEQP-VK.pipeline.push_descriptor.compute.* |  | ||||||
|  |  | ||||||
| # Undiagnosed flakes appearing more than once in the last 2 months as |  | ||||||
| # of 2020-08-19, in descending order of frequency. |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8 |  | ||||||
| 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,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,38 +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.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z |  | ||||||
| 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,42 +0,0 @@ | |||||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.r16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.rg16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.rgba16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.depth.r16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.depth.rg16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.depth.rgba16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.stencil.r16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.stencil.rg16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.stencil.rgba16f,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.r8,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rg8,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rgb10_a2,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rgb_half_float_oes,Fail |  | ||||||
| dEQP-GLES2.functional.fbo.completeness.size.distinct,Fail |  | ||||||
| dEQP-GLES2.functional.negative_api.shader.uniform_matrixfv_invalid_transpose,Fail |  | ||||||
| dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed,Fail |  | ||||||
| dEQP-GLES2.functional.shaders.random.all_features.fragment.88,Fail |  | ||||||
| dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod,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.vertex.cube.filtering.linear_mipmap_linear_linear_clamp,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_mirror,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_clamp,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_mirror,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_clamp,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_mirror,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_repeat,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_nearest_linear_clamp,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_nearest_linear_mirror,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_nearest_linear_repeat,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_clamp,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_mirror,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_repeat,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_clamp,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_mirror,Fail |  | ||||||
| dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_repeat,Fail |  | ||||||
| dEQP-GLES2.functional.uniform_api.random.79,Fail |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z |  | ||||||
| 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,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,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,15 +0,0 @@ | |||||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.4 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.11 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.18 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.39 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.40 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.56 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.80 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.81 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.random.17 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.random.24 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.random.54 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.random.59 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.random.71 |  | ||||||
| dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.* |  | ||||||
| dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.* |  | ||||||
| @@ -1,17 +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.* |  | ||||||
|  |  | ||||||
| # XXX: Why does this flake? |  | ||||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z |  | ||||||
|  |  | ||||||
| # 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,13 +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.* |  | ||||||
|  |  | ||||||
| # XXX: Why does this flake? |  | ||||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z |  | ||||||
| @@ -1,41 +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.fbo.invalidate.sub.unbind_blit_msaa_color,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_color,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.r16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rg16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgba16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.r16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.r32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rg16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rg32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgba16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgba32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.stencil_index8,Fail |  | ||||||
| @@ -1,13 +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.* |  | ||||||
|  |  | ||||||
| # XXX: Why does this flake? |  | ||||||
| dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z |  | ||||||
| @@ -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,6 +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.* |  | ||||||
| @@ -1,29 +0,0 @@ | |||||||
| # Interesting failures...,Fail |  | ||||||
| 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 |  | ||||||
|  |  | ||||||
| dEQP-VK.rasterization.flatshading.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_lines_wide,Fail |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| dEQP-VK.rasterization.flatshading.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_lines_wide,Fail |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| dEQP-VK.rasterization.flatshading.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_lines_wide,Fail |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| dEQP-VK.pipeline.depth.format.d16_unorm.compare_ops.never_zerodepthbounds_depthdisabled_stencilenabled,Fail |  | ||||||
| dEQP-VK.pipeline.depth.format.d32_sfloat.compare_ops.never_zerodepthbounds_depthdisabled_stencilenabled,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_lines_wide,Fail |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| dEQP-VK.rasterization.flatshading.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_lines_wide,Fail |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| # Disable a TON of tests to keep the run around 5-10 minutes because my runner is |  | ||||||
| # slow. |  | ||||||
| dEQP-VK.api.* |  | ||||||
| dEQP-VK.binding_model.* |  | ||||||
| dEQP-VK.clipping.* |  | ||||||
| dEQP-VK.compute.* |  | ||||||
| dEQP-VK.conditional_rendering.* |  | ||||||
| dEQP-VK.descriptor_indexing.* |  | ||||||
| dEQP-VK.device_group.* |  | ||||||
| dEQP-VK.fragment_operations.* |  | ||||||
| dEQP-VK.fragment_shader_interlock.* |  | ||||||
| dEQP-VK.graphicsfuzz.* |  | ||||||
| dEQP-VK.image.* |  | ||||||
| dEQP-VK.imageless_framebuffer.* |  | ||||||
| dEQP-VK.info.* |  | ||||||
| dEQP-VK.memory.* |  | ||||||
| dEQP-VK.memory_model.* |  | ||||||
| dEQP-VK.multiview.* |  | ||||||
| dEQP-VK.pipeline.* |  | ||||||
| dEQP-VK.protected_memory.* |  | ||||||
| dEQP-VK.query_pool.* |  | ||||||
| dEQP-VK.robustness.* |  | ||||||
| dEQP-VK.sparse_resources.* |  | ||||||
| dEQP-VK.spirv_assembly.* |  | ||||||
| dEQP-VK.subgroups.* |  | ||||||
| dEQP-VK.synchronization.* |  | ||||||
| dEQP-VK.texture.* |  | ||||||
| dEQP-VK.transform_feedback.* |  | ||||||
| dEQP-VK.ubo.* |  | ||||||
| dEQP-VK.wsi.* |  | ||||||
| dEQP-VK.ycbcr.* |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| dEQP-VK.rasterization.flatshading.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_lines_wide,Fail |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| # This subset of CTS seems to randomly hangs on RAVEN only. |  | ||||||
| # This needs to be investigated and fixed! |  | ||||||
| dEQP-VK.synchronization.* |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| dEQP-VK.rasterization.flatshading.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.flatshading.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.basic.non_strict_lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.lines_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip_wide,Fail |  | ||||||
| dEQP-VK.rasterization.interpolation.projected.non_strict_lines_wide,Fail |  | ||||||
| @@ -1,285 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
|  |  | ||||||
| set -ex |  | ||||||
|  |  | ||||||
| DEQP_WIDTH=${DEQP_WIDTH:-256} |  | ||||||
| DEQP_HEIGHT=${DEQP_HEIGHT:-256} |  | ||||||
| DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0} |  | ||||||
| DEQP_VARIANT=${DEQP_VARIANT:-master} |  | ||||||
|  |  | ||||||
| DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT" |  | ||||||
| DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=pbuffer" |  | ||||||
| DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=$DEQP_CONFIG" |  | ||||||
| DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden" |  | ||||||
|  |  | ||||||
| if [ -z "$DEQP_VER" ]; then |  | ||||||
|    echo 'DEQP_VER must be set to something like "gles2", "gles31" or "vk" for the test run' |  | ||||||
|    exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ "$DEQP_VER" = "vk" ]; then |  | ||||||
|    if [ -z "$VK_DRIVER" ]; then |  | ||||||
|       echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run' |  | ||||||
|       exit 1 |  | ||||||
|    fi |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ -z "$DEQP_SKIPS" ]; then |  | ||||||
|    echo 'DEQP_SKIPS must be set to something like "deqp-default-skips.txt"' |  | ||||||
|    exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| INSTALL=`pwd`/install |  | ||||||
|  |  | ||||||
| # Set up the driver environment. |  | ||||||
| export LD_LIBRARY_PATH=`pwd`/install/lib/ |  | ||||||
| export EGL_PLATFORM=surfaceless |  | ||||||
| export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.`uname -m`.json |  | ||||||
|  |  | ||||||
| # the runner was failing to look for libkms in /usr/local/lib for some reason |  | ||||||
| # I never figured out. |  | ||||||
| export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib |  | ||||||
|  |  | ||||||
| RESULTS=`pwd`/${DEQP_RESULTS_DIR:-results} |  | ||||||
| mkdir -p $RESULTS |  | ||||||
|  |  | ||||||
| # Generate test case list file. |  | ||||||
| if [ "$DEQP_VER" = "vk" ]; then |  | ||||||
|    cp /deqp/mustpass/vk-$DEQP_VARIANT.txt /tmp/case-list.txt |  | ||||||
|    DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk |  | ||||||
| elif [ "$DEQP_VER" = "gles2" -o "$DEQP_VER" = "gles3" -o "$DEQP_VER" = "gles31" ]; then |  | ||||||
|    cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt |  | ||||||
|    DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER |  | ||||||
|    SUITE=dEQP |  | ||||||
| else |  | ||||||
|    cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt |  | ||||||
|    DEQP=/deqp/external/openglcts/modules/glcts |  | ||||||
|    SUITE=KHR |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # If the job is parallel, take the corresponding fraction of the caselist. |  | ||||||
| # Note: N~M is a gnu sed extension to match every nth line (first line is #1). |  | ||||||
| if [ -n "$CI_NODE_INDEX" ]; then |  | ||||||
|    sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ -n "$DEQP_CASELIST_FILTER" ]; then |  | ||||||
|     sed -ni "/$DEQP_CASELIST_FILTER/p" /tmp/case-list.txt |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ ! -s /tmp/case-list.txt ]; then |  | ||||||
|     echo "Caselist generation failed" |  | ||||||
|     exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ -n "$DEQP_EXPECTED_FAILS" ]; then |  | ||||||
|     BASELINE="--baseline $INSTALL/$DEQP_EXPECTED_FAILS" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ -n "$DEQP_FLAKES" ]; then |  | ||||||
|     FLAKES="--flakes $INSTALL/$DEQP_FLAKES" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| set +e |  | ||||||
|  |  | ||||||
| if [ -n "$DEQP_PARALLEL" ]; then |  | ||||||
|    JOB="--jobs $DEQP_PARALLEL" |  | ||||||
| elif [ -n "$FDO_CI_CONCURRENT" ]; then |  | ||||||
|    JOB="--jobs $FDO_CI_CONCURRENT" |  | ||||||
| else |  | ||||||
|    JOB="--jobs 4" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # If this CI lab lacks artifacts support, print the whole list of failures/flakes. |  | ||||||
| if [ -z "$DEQP_NO_SAVE_RESULTS" ]; then |  | ||||||
|    SUMMARY_LIMIT="--summary-limit 0" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Silence the debug output for apps triggering GL errors, since dEQP will do a lot of that. |  | ||||||
| export MESA_DEBUG=silent |  | ||||||
|  |  | ||||||
| run_cts() { |  | ||||||
|     deqp=$1 |  | ||||||
|     caselist=$2 |  | ||||||
|     output=$3 |  | ||||||
|     deqp-runner \ |  | ||||||
|         run \ |  | ||||||
|         --deqp $deqp \ |  | ||||||
|         --output $RESULTS \ |  | ||||||
|         --caselist $caselist \ |  | ||||||
|         --skips $INSTALL/$DEQP_SKIPS \ |  | ||||||
|         $BASELINE \ |  | ||||||
|         $FLAKES \ |  | ||||||
|         $JOB \ |  | ||||||
|         $SUMMARY_LIMIT \ |  | ||||||
| 	$DEQP_RUNNER_OPTIONS \ |  | ||||||
|         -- \ |  | ||||||
|         $DEQP_OPTIONS |  | ||||||
| } |  | ||||||
|  |  | ||||||
| report_flakes() { |  | ||||||
|     flakes=`grep ",Flake" $1 | sed 's|,Flake.*||g'` |  | ||||||
|     if [ -z "$flakes" ]; then |  | ||||||
|         return 0 |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     if [ -z "$FLAKES_CHANNEL" ]; then |  | ||||||
|         return 0 |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     # The nick needs to be something unique so that multiple runners |  | ||||||
|     # connecting at the same time don't race for one nick and get blocked. |  | ||||||
|     # freenode has a 16-char limit on nicks (9 is the IETF standard, but |  | ||||||
|     # various servers extend that).  So, trim off the common prefixes of the |  | ||||||
|     # runner name, and append the job ID so that software runners with more |  | ||||||
|     # than one concurrent job (think swrast) don't collide.  For freedreno, |  | ||||||
|     # that gives us a nick as long as db410c-N-JJJJJJJJ, and it'll be a while |  | ||||||
|     # before we make it to 9-digit jobs (we're at 7 so far). |  | ||||||
|     runner=`echo $CI_RUNNER_DESCRIPTION | sed 's|mesa-||' | sed 's|google-freedreno-||g'` |  | ||||||
|     bot="$runner-$CI_JOB_ID" |  | ||||||
|     channel="$FLAKES_CHANNEL" |  | ||||||
|     ( |  | ||||||
|     echo NICK $bot |  | ||||||
|     echo USER $bot unused unused :Gitlab CI Notifier |  | ||||||
|     sleep 10 |  | ||||||
|     echo "JOIN $channel" |  | ||||||
|     sleep 1 |  | ||||||
|     desc="Flakes detected in job: $CI_JOB_URL on $CI_RUNNER_DESCRIPTION" |  | ||||||
|     if [ -n "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ]; then |  | ||||||
|         desc="$desc on branch $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME ($CI_MERGE_REQUEST_TITLE)" |  | ||||||
|     elif [ -n "$CI_COMMIT_BRANCH" ]; then |  | ||||||
|         desc="$desc on branch $CI_COMMIT_BRANCH ($CI_COMMIT_TITLE)" |  | ||||||
|     fi |  | ||||||
|     echo "PRIVMSG $channel :$desc" |  | ||||||
|     for flake in $flakes; do |  | ||||||
|         echo "PRIVMSG $channel :$flake" |  | ||||||
|     done |  | ||||||
|     echo "PRIVMSG $channel :See $CI_JOB_URL/artifacts/browse/results/" |  | ||||||
|     echo "QUIT" |  | ||||||
|     ) | nc irc.freenode.net 6667 > /dev/null |  | ||||||
|  |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # Generate junit results |  | ||||||
| generate_junit() { |  | ||||||
|     results=$1 |  | ||||||
|     echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" |  | ||||||
|     echo "<testsuites>" |  | ||||||
|     echo "<testsuite name=\"$DEQP_VER-$CI_NODE_INDEX\">" |  | ||||||
|     while read line; do |  | ||||||
|         testcase=${line%,*} |  | ||||||
|         result=${line#*,} |  | ||||||
|         # avoid counting Skip's in the # of tests: |  | ||||||
|         if [ "$result" = "Skip" ]; then |  | ||||||
|             continue; |  | ||||||
|         fi |  | ||||||
|         echo "<testcase name=\"$testcase\">" |  | ||||||
|         if [ "$result" != "Pass" ]; then |  | ||||||
|             echo "<failure type=\"$result\">" |  | ||||||
|             echo "$result: See $CI_JOB_URL/artifacts/results/$testcase.xml" |  | ||||||
|             echo "</failure>" |  | ||||||
|         fi |  | ||||||
|         echo "</testcase>" |  | ||||||
|     done < $results |  | ||||||
|     echo "</testsuite>" |  | ||||||
|     echo "</testsuites>" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| parse_renderer() { |  | ||||||
|     RENDERER=`grep -A1 TestCaseResult.\*info.renderer $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'` |  | ||||||
|     VERSION=`grep -A1 TestCaseResult.\*info.version $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'` |  | ||||||
|     echo "Renderer: $RENDERER" |  | ||||||
|     echo "Version: $VERSION " |  | ||||||
|  |  | ||||||
|     if ! echo $RENDERER | grep -q $DEQP_EXPECTED_RENDERER; then |  | ||||||
|         echo "Expected GL_RENDERER $DEQP_EXPECTED_RENDERER" |  | ||||||
|         exit 1 |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| check_renderer() { |  | ||||||
|     echo "Capturing renderer info for GLES driver sanity checks" |  | ||||||
|     # If you're having trouble loading your driver, uncommenting this may help |  | ||||||
|     # debug. |  | ||||||
|     # export EGL_LOG_LEVEL=debug |  | ||||||
|     VERSION=`echo $DEQP_VER | tr '[a-z]' '[A-Z]'` |  | ||||||
|     $DEQP $DEQP_OPTIONS --deqp-case=$SUITE-$VERSION.info.\* --deqp-log-filename=$RESULTS/deqp-info.qpa |  | ||||||
|     parse_renderer |  | ||||||
| } |  | ||||||
|  |  | ||||||
| check_vk_device_name() { |  | ||||||
|     echo "Capturing device info for VK driver sanity checks" |  | ||||||
|     $DEQP $DEQP_OPTIONS --deqp-case=dEQP-VK.info.device --deqp-log-filename=$RESULTS/deqp-info.qpa |  | ||||||
|     DEVICENAME=`grep deviceName $RESULTS/deqp-info.qpa | sed 's|deviceName: ||g'` |  | ||||||
|     echo "deviceName: $DEVICENAME" |  | ||||||
|     if [ -n "$DEQP_EXPECTED_RENDERER" -a "x$DEVICENAME" != "x$DEQP_EXPECTED_RENDERER" ]; then |  | ||||||
|         echo "Expected deviceName $DEQP_EXPECTED_RENDERER" |  | ||||||
|         exit 1 |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # wrapper to supress +x to avoid spamming the log |  | ||||||
| quiet() { |  | ||||||
|     set +x |  | ||||||
|     "$@" |  | ||||||
|     set -x |  | ||||||
| } |  | ||||||
|  |  | ||||||
| if [ "$GALLIUM_DRIVER" = "virpipe" ]; then |  | ||||||
|     # deqp is to use virpipe, and virgl_test_server llvmpipe |  | ||||||
|     export GALLIUM_DRIVER="$GALLIUM_DRIVER" |  | ||||||
|  |  | ||||||
|     VTEST_ARGS="--use-egl-surfaceless" |  | ||||||
|     if [ "$VIRGL_HOST_API" = "GLES" ]; then |  | ||||||
|         VTEST_ARGS="$VTEST_ARGS --use-gles" |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     GALLIUM_DRIVER=llvmpipe \ |  | ||||||
|     GALLIVM_PERF="nopt,no_filter_hacks" \ |  | ||||||
|     virgl_test_server $VTEST_ARGS >$RESULTS/vtest-log.txt 2>&1 & |  | ||||||
|  |  | ||||||
|     sleep 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ $DEQP_VER = vk ]; then |  | ||||||
|     quiet check_vk_device_name |  | ||||||
| else |  | ||||||
|     quiet check_renderer |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| RESULTS_CSV=$RESULTS/results.csv |  | ||||||
| FAILURES_CSV=$RESULTS/failures.csv |  | ||||||
|  |  | ||||||
| run_cts $DEQP /tmp/case-list.txt $RESULTS_CSV |  | ||||||
| DEQP_EXITCODE=$? |  | ||||||
|  |  | ||||||
| echo "System load: $(cut -d' ' -f1-3 < /proc/loadavg)" |  | ||||||
| echo "# of CPU cores: $(cat /proc/cpuinfo | grep processor | wc -l)" |  | ||||||
|  |  | ||||||
| # Remove the shader cache, no need to include in the artifacts. |  | ||||||
| find $RESULTS -name \*.shader_cache | xargs rm -f |  | ||||||
|  |  | ||||||
| # junit is disabled, because it overloads gitlab.freedesktop.org to parse it. |  | ||||||
| # quiet generate_junit $RESULTS_CSV > $RESULTS/results.xml |  | ||||||
|  |  | ||||||
| # Turn up to the first 50 individual test QPA files from failures or flakes into |  | ||||||
| # XML results you can view from the browser. |  | ||||||
| qpas=`find $RESULTS -name \*.qpa -a ! -name deqp-info.qpa` |  | ||||||
| if [ -n "$qpas" ]; then |  | ||||||
|     shard_qpas=`echo "$qpas" | grep dEQP- | head -n 50` |  | ||||||
|     for qpa in $shard_qpas; do |  | ||||||
|         xml=`echo $qpa | sed 's|\.qpa|.xml|'` |  | ||||||
|         /deqp/executor/testlog-to-xml $qpa $xml |  | ||||||
|     done |  | ||||||
|  |  | ||||||
|     cp /deqp/testlog.css "$RESULTS/" |  | ||||||
|     cp /deqp/testlog.xsl "$RESULTS/" |  | ||||||
|  |  | ||||||
|     # Remove all the QPA files (extracted or not) now that we have the XML we want. |  | ||||||
|     echo $qpas | xargs rm -f |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Report the flakes to the IRC channel for monitoring (if configured): |  | ||||||
| quiet report_flakes $RESULTS_CSV |  | ||||||
|  |  | ||||||
| exit $DEQP_EXITCODE |  | ||||||
| @@ -1,802 +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.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.rasterization.limits.points,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_center,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.point.wide_point_clip,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z,Fail |  | ||||||
| dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z,Fail |  | ||||||
| dEQP-GLES3.functional.draw.random.124,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_color,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_color,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.r11f_g11f_b10f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.r16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.r8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rg16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rg8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgb10_a2,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgb565,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgb5_a1,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgb8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgba4,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.rgba8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.srgb8_alpha8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth24_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth32f_stencil8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component16,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component24,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component32f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.r11f_g11f_b10f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.r16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.r8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rg16f,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rg8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb10_a2,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb565,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb5_a1,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgb8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgba4,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.rgba8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.srgb8_alpha8,Fail |  | ||||||
| dEQP-GLES3.functional.fbo.msaa.4_samples.stencil_index8,Fail |  | ||||||
| dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_alpha_to_coverage,Fail |  | ||||||
| dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage,Fail |  | ||||||
| dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage_inverted,Fail |  | ||||||
| dEQP-GLES3.functional.multisample.fbo_max_samples.sample_coverage_invert,Fail |  | ||||||
| dEQP-GLES3.functional.negative_api.buffer.blit_framebuffer_multisample,Fail |  | ||||||
| dEQP-GLES3.functional.negative_api.buffer.read_pixels_fbo_format_mismatch,Fail |  | ||||||
| dEQP-GLES3.functional.polygon_offset.default_displacement_with_units,Fail |  | ||||||
| dEQP-GLES3.functional.polygon_offset.fixed16_displacement_with_units,Fail |  | ||||||
| dEQP-GLES3.functional.polygon_offset.fixed24_displacement_with_units,Fail |  | ||||||
| dEQP-GLES3.functional.polygon_offset.float32_displacement_with_units,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide,Fail |  | ||||||
| dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec2_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec2_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_highp,Fail |  | ||||||
| dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_mediump,Fail |  | ||||||
| dEQP-GLES3.functional.state_query.integers.max_samples_getfloat,Fail |  | ||||||
| dEQP-GLES3.functional.state_query.integers.max_samples_getinteger64,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_nearest_linear_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_linear_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_mipmap_linear_linear_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_mipmap_nearest_linear_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_clamp,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_mirror,Fail |  | ||||||
| dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_repeat,Fail |  | ||||||
| dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_linear_divisible,Fail |  | ||||||
| dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_linear_not_divisible,Fail |  | ||||||
| dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_linear_divisible,Fail |  | ||||||
| dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_linear_not_divisible,Fail |  | ||||||
| dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads1,Fail |  | ||||||
| dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads256,Fail |  | ||||||
| dEQP-GLES31.functional.debug.error_filters.case_29,Fail |  | ||||||
| dEQP-GLES31.functional.debug.negative_coverage.callbacks.buffer.read_pixels_fbo_format_mismatch,Fail |  | ||||||
| dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.blit_framebuffer_multisample,Fail |  | ||||||
| dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.read_pixels_fbo_format_mismatch,Fail |  | ||||||
| dEQP-GLES31.functional.debug.negative_coverage.log.buffer.read_pixels_fbo_format_mismatch,Fail |  | ||||||
| dEQP-GLES31.functional.draw_base_vertex.draw_elements_instanced_base_vertex.line_loop.instanced_attributes,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.0,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.1,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.10,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.11,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.12,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.14,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.16,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.17,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.19,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.2,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.3,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.4,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.5,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.6,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.7,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.8,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.9,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.0,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.1,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.14,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.15,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.16,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.17,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.19,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.2,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.4,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.5,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.7,Fail |  | ||||||
| dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.9,Fail |  | ||||||
| dEQP-GLES31.functional.draw_indirect.draw_arrays_indirect.line_strip.multiple_attributes,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.interaction.17x512ms4_default_16x16ms2,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.interaction.1x1ms0_default_2048x2048ms4,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.interaction.2048x2048ms4_default_1x1ms0,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.interaction.256x256ms0_default_512x512ms2,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.interaction.256x256ms2_default_128x512ms0,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.multisample.samples2,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.multisample.samples3,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.multisample.samples4,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.random.1,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.random.11,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.random.14,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.random.15,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.random.4,Fail |  | ||||||
| dEQP-GLES31.functional.fbo.no_attachments.random.9,Fail |  | ||||||
| dEQP-GLES31.functional.geometry_shading.query.primitives_generated_amplification,Fail |  | ||||||
| dEQP-GLES31.functional.geometry_shading.query.primitives_generated_instanced,Fail |  | ||||||
| dEQP-GLES31.functional.geometry_shading.query.primitives_generated_no_amplification,Fail |  | ||||||
| dEQP-GLES31.functional.geometry_shading.query.primitives_generated_no_geometry,Fail |  | ||||||
| dEQP-GLES31.functional.geometry_shading.query.primitives_generated_partial_primitives,Fail |  | ||||||
| dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil,Fail |  | ||||||
| dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil_fbo,Fail |  | ||||||
| dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_depth,Fail |  | ||||||
| dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_depth_fbo,Fail |  | ||||||
| dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.dynamically_uniform_geometry,Crash |  | ||||||
| dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples_getfloat,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples_getinteger,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples_getinteger64,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_float,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_integer,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_pure_int,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_pure_uint,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_float,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_integer,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_pure_int,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_pure_uint,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_format_float,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_format_integer,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_format_pure_int,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_format_pure_uint,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_float,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_integer,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_pure_int,Fail |  | ||||||
| dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_pure_uint,Fail |  | ||||||
| dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.linear_size_npot,Fail |  | ||||||
| dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.linear_size_pot,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_clamp_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_mirror_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_clamp,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_mirror,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_clamp_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_mirror_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_repeat_clamp,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_repeat_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_clamp_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_mirror_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_repeat_clamp,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_repeat_mirror,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_clamp_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_mirror_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_repeat_clamp,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_repeat_mirror,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_clamp,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_mirror,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_nearest_repeat_mirror,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb565_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb565_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb5_a1_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb5_a1_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb9_e5_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb9_e5_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba16f_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba16f_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba4_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba4_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_snorm_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_snorm_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.sr8_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.srgb8_alpha8_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.formats.srgb8_alpha8_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.63x63x18_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.64x64x12_nearest_mipmap_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.64x64x12_nearest_mipmap_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.filtering.cube_array.sizes.8x8x6_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.no_corners.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.no_corners.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.no_corners.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.no_corners.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.no_corners.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.no_corners.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.base_level.level_1,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.base_level.level_2,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_greater.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_greater.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_less.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_less.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_greater.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_greater.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_less.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_less.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.base_level.level_1,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.base_level.level_2,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_linear_mipmap_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_linear_mipmap_nearest_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_nearest_mipmap_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_nearest_mipmap_nearest_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.alpha_zero_one_red,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.blue_alpha_zero_one,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.green_blue_alpha_zero,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.one_red_green_blue,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.red_green_blue_alpha,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.zero_one_red_green,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.base_level.level_1,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.base_level.level_2,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.filter_mode.min_nearest_mipmap_nearest_mag_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.alpha_zero_one_red,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.blue_alpha_zero_one,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.green_blue_alpha_zero,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.one_red_green_blue,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.red_green_blue_alpha,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.zero_one_red_green,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.base_level.level_1,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.base_level.level_2,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.filter_mode.min_nearest_mipmap_nearest_mag_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.alpha_zero_one_red,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.blue_alpha_zero_one,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.green_blue_alpha_zero,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.one_red_green_blue,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.red_green_blue_alpha,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.zero_one_red_green,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.base_level.level_1,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.base_level.level_2,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_greater.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_greater.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_less.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_less.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_greater.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_greater.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_less.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_less.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.base_level.level_1,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.base_level.level_2,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_linear_mipmap_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_linear_mipmap_nearest_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_nearest_mipmap_linear_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_nearest_mipmap_nearest_mag_linear,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.alpha_zero_one_red,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.blue_alpha_zero_one,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.green_blue_alpha_zero,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.one_red_green_blue,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.red_green_blue_alpha,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.zero_one_red_green,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.base_level.level_1,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.base_level.level_2,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.filter_mode.min_nearest_mipmap_nearest_mag_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.alpha_zero_one_red,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.blue_alpha_zero_one,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.green_blue_alpha_zero,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.one_red_green_blue,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.red_green_blue_alpha,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.zero_one_red_green,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.base_level.level_1,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.base_level.level_2,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.filter_mode.min_nearest_mipmap_nearest_mag_nearest,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.alpha_zero_one_red,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.blue_alpha_zero_one,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.green_blue_alpha_zero,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.one_red_green_blue,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.red_green_blue_alpha,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.zero_one_red_green,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_greater.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_greater.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_less.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_less.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_greater.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_greater.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_less.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_less.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_greater.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_greater.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_less.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_less.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_greater.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_greater.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_less.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_less.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_npot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_npot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_pot.clamp_to_edge_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge,Fail |  | ||||||
| dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_pot.repeat_mirrored_repeat,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_and_alpha_to_coverage,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_and_sample_coverage,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_and_sample_coverage_and_alpha_to_coverage,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_non_effective_bits,Fail |  | ||||||
| dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_only,Fail |  | ||||||
| KHR-GL33.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue,Fail |  | ||||||
| KHR-GL33.clip_distance.functional,Fail |  | ||||||
| KHR-GL33.cull_distance.functional,Fail |  | ||||||
| KHR-GL33.pipeline_statistics_query_tests_ARB.functional_compute_shader_invocations,Fail |  | ||||||
| KHR-GL33.pipeline_statistics_query_tests_ARB.functional_fragment_shader_invocations,Fail |  | ||||||
| KHR-GL33.pipeline_statistics_query_tests_ARB.functional_primitives_vertices_submitted_and_clipping_input_output_primitives,Fail |  | ||||||
| KHR-GL33.texture_size_promotion.functional,Fail |  | ||||||
| KHR-GL33.transform_feedback.capture_geometry_interleaved_test,Fail |  | ||||||
| KHR-GL33.transform_feedback.capture_geometry_separate_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_instanced_test,Crash |  | ||||||
| KHR-GL33.transform_feedback.draw_xfb_stream_instanced_test,Crash |  | ||||||
| KHR-GL33.transform_feedback.draw_xfb_stream_test,Fail |  | ||||||
| KHR-GL33.transform_feedback.query_geometry_interleaved_test,Fail |  | ||||||
| KHR-GL33.transform_feedback.query_geometry_separate_test,Fail |  | ||||||
| KHR-GL33.transform_feedback.query_vertex_interleaved_test,Fail |  | ||||||
| KHR-GL33.transform_feedback.query_vertex_separate_test,Fail |  | ||||||
| KHR-GL33.transform_feedback_overflow_query_ARB.advanced-single-stream-interleaved-attribs,Fail |  | ||||||
| KHR-GL33.transform_feedback_overflow_query_ARB.advanced-single-stream-separate-attribs,Fail |  | ||||||
| KHR-GL33.transform_feedback_overflow_query_ARB.basic-single-stream-interleaved-attribs,Fail |  | ||||||
| KHR-GL33.transform_feedback_overflow_query_ARB.basic-single-stream-separate-attribs,Fail |  | ||||||
| KHR-GL33.transform_feedback_overflow_query_ARB.multiple-streams-multiple-buffers-per-stream,Fail |  | ||||||
| KHR-GL33.transform_feedback_overflow_query_ARB.multiple-streams-one-buffer-per-stream,Fail |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user