diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3f6b90115af4ccf67f51a58d015b32b49d7d836e..09022b941b520e43671b68dc4e7976d62610e987 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,7 +3,7 @@ stages:
     - test
 
 build-ubuntu:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200415100119
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: build
     tags:
         - docker
@@ -18,7 +18,7 @@ build-ubuntu:
         - cd build && meson test -t 5 -v
 
 build-ubuntu-static:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200415100119
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: build
     tags:
         - docker
@@ -34,7 +34,7 @@ build-ubuntu-static:
         - cd build && meson test -t 5 -v
 
 build-win32:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200415100119
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: build
     tags:
         - docker
@@ -49,7 +49,7 @@ build-win32:
         - cd build && meson test -t 5 -v
 
 build-win64:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200415100119
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: build
     tags:
         - docker
@@ -87,7 +87,7 @@ build-macos:
         - cd build && meson test -t 5 -v
 
 test-ubuntu-scan:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200415100119
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: test
     tags:
         - docker
@@ -102,7 +102,7 @@ test-ubuntu-scan:
         - ninja -C build scan-build
 
 test-gpu:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20190922173609
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: test
     tags:
         - gpu
@@ -110,8 +110,8 @@ test-gpu:
         - meson build --buildtype release
                       --werror
                       -Dtests=true
-                      -Dshaderc=enabled
-                      -Dglslang=enabled
+                      -Dc_args='-DCI_BLACKLIST_COMPUTE'
+                      -Dshaderc=disabled
                       -Db_coverage=true
         - ninja -C build
         - vulkaninfo
@@ -121,19 +121,23 @@ test-gpu:
           grep -Eo '[0-9.]+' | awk '{ print "coverage:", $1 * 100 } '
 
 test-gpu-asan:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20190922173609
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: test
     tags:
         - gpu
     variables:
         ASAN_OPTIONS: 'detect_leaks=0'
     script:
-        - meson build --buildtype debugoptimized -Dtests=true -Db_sanitize=address
+        - meson build --buildtype debugoptimized
+                      -Dtests=true
+                      -Dc_args='-DCI_BLACKLIST_COMPUTE'
+                      -Dshaderc=disabled
+                      -Db_sanitize=address
         - ninja -C build
         - cd build && time meson test -t 5 -v
 
 test-gpu-msan:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20190922173609
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: test
     tags:
         - gpu
@@ -142,14 +146,15 @@ test-gpu-msan:
     script:
         - env CC=clang meson build --buildtype debugoptimized
                                    -Dtests=true
+                                   -Dc_args='-DCI_BLACKLIST_COMPUTE -DMSAN'
+                                   -Dglslang=disabled
                                    -Db_sanitize=memory
                                    -Db_lundef=false
-                                   -Dc_args='-DMSAN'
         - ninja -C build
         - cd build && time meson test -t 5 -v
 
 test-gpu-ubsan:
-    image: registry.videolan.org/libplacebo-ubuntu-eoan:20190922173609
+    image: registry.videolan.org/libplacebo-ubuntu-eoan:20200521131745
     stage: test
     tags:
         - gpu
@@ -158,6 +163,8 @@ test-gpu-ubsan:
     script:
         - env CC=clang meson build --buildtype debugoptimized
                                    -Dtests=true
+                                   -Dc_args='-DCI_BLACKLIST_COMPUTE -fPIE'
+                                   -Dshaderc=disabled
                                    -Db_sanitize=undefined
                                    -Db_lundef=false
         - ninja -C build
diff --git a/src/tests/opengl_surfaceless.c b/src/tests/opengl_surfaceless.c
index c754d8006e334b0a6af0be52021a182726c69e02..89c1db2b9232730ecec5d04ea394de0b4f56d14a 100644
--- a/src/tests/opengl_surfaceless.c
+++ b/src/tests/opengl_surfaceless.c
@@ -101,6 +101,10 @@ int main()
         params.max_glsl_version = egl_vers[i].glsl_ver;
         params.debug = true;
 
+#ifdef CI_BLACKLIST_COMPUTE
+        params.blacklist_caps = PL_GPU_CAP_COMPUTE;
+#endif
+
         const struct pl_opengl *gl = pl_opengl_create(ctx, &params);
         REQUIRE(gl);
 
diff --git a/src/tests/vulkan.c b/src/tests/vulkan.c
index bfd73d2ab157312f633062fba7c799eeefe594e0..8da1501f168935f6964598bf9c797cca13ef7dbf 100644
--- a/src/tests/vulkan.c
+++ b/src/tests/vulkan.c
@@ -213,13 +213,9 @@ int main()
         params.queue_count = 8; // test inter-queue stuff
         params.surface = surf;
 
-        if (props.vendorID == 0x8086 &&
-            props.deviceID == 0x3185 &&
-            props.driverVersion <= 79695878)
-        {
-            // Blacklist compute shaders for the CI's old intel iGPU..
-            params.blacklist_caps = PL_GPU_CAP_COMPUTE;
-        }
+#ifdef CI_BLACKLIST_COMPUTE
+        params.blacklist_caps = PL_GPU_CAP_COMPUTE;
+#endif
 
         const struct pl_vulkan *vk = pl_vulkan_create(ctx, &params);
         if (!vk)