Upgrade to Mesa 18.3.3
This seems to resolve the leak in libxcb, but introduces a new leak in
VkTestUtils.
Bug: skia:8710
Change-Id: I71482d8f1c5eebfffd211a4124bd2db01283741b
Reviewed-on: https://skia-review.googlesource.com/c/186862
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
diff --git a/infra/bots/assets/mesa_intel_driver_linux/VERSION b/infra/bots/assets/mesa_intel_driver_linux/VERSION
index c227083..7813681 100644
--- a/infra/bots/assets/mesa_intel_driver_linux/VERSION
+++ b/infra/bots/assets/mesa_intel_driver_linux/VERSION
@@ -1 +1 @@
-0
\ No newline at end of file
+5
\ No newline at end of file
diff --git a/infra/bots/assets/mesa_intel_driver_linux/create.py b/infra/bots/assets/mesa_intel_driver_linux/create.py
index 519baf7..279360f 100755
--- a/infra/bots/assets/mesa_intel_driver_linux/create.py
+++ b/infra/bots/assets/mesa_intel_driver_linux/create.py
@@ -13,9 +13,13 @@
import argparse
import subprocess
-DOCKER_IMAGE='gcr.io/skia-public/mesa-driver-builder:v1'
-BUILD_SCRIPT='/opt/build_mesa.sh'
-MESA_VERSION='18.1.7'
+# TODO(dogben): In the future, it might be simpler to build the docker image as
+# part of this script so that we don't need to push it to the container repo.
+# Doing so would make this script more repeatable, since someone could
+# accidentally change the Docker image that "v2" points to.
+DOCKER_IMAGE = 'gcr.io/skia-public/mesa-driver-builder:v2'
+BUILD_SCRIPT = '/opt/build_mesa.sh'
+MESA_VERSION = '18.3.3'
def create_asset(target_dir):
diff --git a/infra/bots/assets/mesa_intel_driver_linux/mesa-driver-builder/Dockerfile b/infra/bots/assets/mesa_intel_driver_linux/mesa-driver-builder/Dockerfile
index 6134c5b..cf75031 100644
--- a/infra/bots/assets/mesa_intel_driver_linux/mesa-driver-builder/Dockerfile
+++ b/infra/bots/assets/mesa_intel_driver_linux/mesa-driver-builder/Dockerfile
@@ -1,6 +1,9 @@
-FROM debian:9.4
+FROM debian:9.6
-# Enabling backports gives us access to clang-6 and new versions of libdrm2 package.
+ENV DEBIAN_FRONTEND noninteractive
+
+# Enabling backports gives us access to clang-6 and makes it more likely that
+# 'apt-get build-dep' will install the correct dependencies.
# Mesa builds newer than 17.0.4 or so require libdrm > 2.4.75, but the
# default one in stretch is 2.4.74.
# Note that the hosts that use these drivers will also need the newer version of libdrm2
@@ -8,61 +11,19 @@
# symbol lookup error: ./mesa_intel_driver/libGL.so.1: undefined symbol: drmGetDevice2
#
# Hosts can install this by adding the stretch-backports debian source (see next RUN)
-# and the performing `sudo apt-get update && sudo apt-get install libdrm2=2.4.91-2~bpo9+1`
-RUN echo "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list
-
-RUN apt-get update && apt-get upgrade -y
-
-ENV DEBIAN_FRONTEND noninteractive
-
-RUN apt-get install -y \
- autoconf \
- bison \
- build-essential \
- clang-6.0 \
- flex \
- libdrm-amdgpu1=2.4.91-2~bpo9+1 \
- libdrm-dev=2.4.91-2~bpo9+1 \
- libdrm-intel1=2.4.91-2~bpo9+1 \
- libdrm-nouveau2=2.4.91-2~bpo9+1 \
- libdrm-radeon1=2.4.91-2~bpo9+1 \
- libdrm2=2.4.91-2~bpo9+1 \
- libomxil-bellagio-dev \
- libpthread-stubs0-dev \
- libtool \
- libva-dev \
- libx11-xcb-dev \
- libxcb-dri2-0-dev \
- libxcb-dri3-dev \
- libxcb-glx0-dev \
- libxcb-present-dev \
- libxcb1-dev \
- libxdamage-dev \
- libxext-dev \
- libxshmfence-dev \
- llvm-dev \
- pkg-config \
- python-pip \
- python2.7 \
- scons \
- software-properties-common \
- wget \
- x11proto-dri2-dev \
- x11proto-dri3-dev \
- x11proto-gl-dev \
- x11proto-present-dev \
- x11proto-xext-dev \
- xserver-xorg-core \
- xserver-xorg-dev
-
-RUN pip install mako
+# and then performing `sudo apt-get update && sudo apt-get install libdrm2=2.4.95-1~bpo9+1`
+RUN echo "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list && \
+ echo "deb-src http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list && \
+ apt-get update && apt-get upgrade -y && \
+ apt-get install -y wget clang-6.0 && \
+ apt-get -t stretch-backports build-dep -y mesa && \
+ rm -rf /var/lib/apt/lists/*
ENV CC="/usr/lib/llvm-6.0/bin/clang" \
CXX="/usr/lib/llvm-6.0/bin/clang++" \
- PATH=/usr/lib/llvm-6.0/bin:$PATH
+ PATH=/usr/lib/llvm-6.0/bin:$PATH \
+ # Default to this version of MESA, but it can be overridden with
+ # -e MESA_VERSION=X.Y.Z when running the docker container
+ MESA_VERSION=18.3.2
-# Default to this version of MESA, but it can be overridden with
-# -e MESA_VERSION=X.Y.Z when running the docker container
-ENV MESA_VERSION=18.1.7
-
-COPY ./build_mesa.sh /opt/build_mesa.sh
\ No newline at end of file
+COPY ./build_mesa.sh /opt/build_mesa.sh
diff --git a/infra/bots/assets/mesa_intel_driver_linux/mesa-driver-builder/build_mesa.sh b/infra/bots/assets/mesa_intel_driver_linux/mesa-driver-builder/build_mesa.sh
index ad9eeec..37a5aa5 100755
--- a/infra/bots/assets/mesa_intel_driver_linux/mesa-driver-builder/build_mesa.sh
+++ b/infra/bots/assets/mesa_intel_driver_linux/mesa-driver-builder/build_mesa.sh
@@ -13,16 +13,13 @@
pushd /tmp
-wget ftp://ftp.freedesktop.org/pub/mesa/mesa-$MESA_VERSION.tar.gz
+wget https://mesa.freedesktop.org/archive/mesa-$MESA_VERSION.tar.gz
tar --gunzip --extract --file mesa-$MESA_VERSION.tar.gz
cd mesa-$MESA_VERSION/
./configure --with-dri-drivers=i965 --with-gallium-drivers= --with-vulkan-drivers=intel
make -j 50
-rm -rf lib/gallium
-rm -f lib/nouveau_vieux_dri.so lib/r200_dri.so lib/radeon_dri.so
-
cp lib/* /OUT
cp src/intel/vulkan/intel_icd.x86_64.json /OUT
diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json
index 9c0869e..04a1a25 100755
--- a/infra/bots/tasks.json
+++ b/infra/bots/tasks.json
@@ -29724,7 +29724,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -29845,7 +29845,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -29961,7 +29961,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -30082,7 +30082,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -30198,7 +30198,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -30319,7 +30319,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -30435,7 +30435,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -30551,7 +30551,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -30667,7 +30667,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -30783,7 +30783,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -54634,7 +54634,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -54755,7 +54755,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -54871,7 +54871,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -54992,7 +54992,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -55221,7 +55221,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -55337,7 +55337,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -55458,7 +55458,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -55574,7 +55574,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -55695,7 +55695,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -55821,7 +55821,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -55942,7 +55942,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -56058,7 +56058,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
},
{
"name": "skia/bots/opencl_ocl_icd_linux",
@@ -56189,7 +56189,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -56305,7 +56305,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -56426,7 +56426,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -56552,7 +56552,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -56673,7 +56673,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -56799,7 +56799,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -56920,7 +56920,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -57041,7 +57041,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -57157,7 +57157,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -57273,7 +57273,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -57389,7 +57389,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
@@ -57505,7 +57505,7 @@
{
"name": "skia/bots/mesa_intel_driver_linux",
"path": "mesa_intel_driver_linux",
- "version": "version:0"
+ "version": "version:5"
}
],
"command": [
diff --git a/tools/LsanSuppressions.cpp b/tools/LsanSuppressions.cpp
index 4839942..6dcb214 100644
--- a/tools/LsanSuppressions.cpp
+++ b/tools/LsanSuppressions.cpp
@@ -21,7 +21,6 @@
"leak:libGLX_nvidia.so\n" // For NVidia driver.
"leak:libnvidia-glcore.so\n" // For NVidia driver.
"leak:libnvidia-tls.so\n" // For NVidia driver.
- "leak:libxcb.so\n" // For Mesa Intel driver. skia:8710
;
}
diff --git a/tools/gpu/vk/VkTestUtils.cpp b/tools/gpu/vk/VkTestUtils.cpp
index ed6549c..b7148fa 100644
--- a/tools/gpu/vk/VkTestUtils.cpp
+++ b/tools/gpu/vk/VkTestUtils.cpp
@@ -14,6 +14,10 @@
#include "vk/GrVkExtensions.h"
#include "../ports/SkOSLibrary.h"
+#if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS)
+#include <sanitizer/lsan_interface.h>
+#endif
+
namespace sk_gpu_test {
bool LoadVkLibraryAndGetProcAddrFuncs(PFN_vkGetInstanceProcAddr* instProc,
@@ -661,7 +665,13 @@
pointerToFeatures ? nullptr : deviceFeatures // ppEnabledFeatures
};
- err = grVkCreateDevice(physDev, &deviceInfo, nullptr, &device);
+ {
+#if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS)
+ // skia:8712
+ __lsan::ScopedDisabler lsanDisabler;
+#endif
+ err = grVkCreateDevice(physDev, &deviceInfo, nullptr, &device);
+ }
if (err) {
SkDebugf("CreateDevice failed: %d\n", err);
destroy_instance(getProc, inst, debugCallback, hasDebugExtension);