Snap for 8445529 from 8e1a154b0024d01af5ae0f61ee06ed6062920054 to tm-qpr1-release

Change-Id: I841a31195263aa4ca155f89a74a2c6e8ce5e410e
diff --git a/src/Device/Blitter.cpp b/src/Device/Blitter.cpp
index 871f43d..1c18a23 100644
--- a/src/Device/Blitter.cpp
+++ b/src/Device/Blitter.cpp
@@ -30,17 +30,15 @@
 #	include <emmintrin.h>
 #endif
 
-namespace {
-rr::RValue<rr::Int> PackFields(rr::Int4 const &ints, const sw::int4 shifts)
+namespace sw {
+
+static rr::RValue<rr::Int> PackFields(rr::Int4 const &ints, const sw::int4 shifts)
 {
 	return (rr::Int(ints.x) << shifts[0]) |
 	       (rr::Int(ints.y) << shifts[1]) |
 	       (rr::Int(ints.z) << shifts[2]) |
 	       (rr::Int(ints.w) << shifts[3]);
 }
-}  // namespace
-
-namespace sw {
 
 Blitter::Blitter()
     : blitMutex()
@@ -1450,7 +1448,7 @@
 	{
 		value *= preScaled ? Float4(1.0f / scale.x, 1.0f / scale.y, 1.0f / scale.z, 1.0f / scale.w) :  // Unapply scale
 		             Float4(1.0f / unscale.x, 1.0f / unscale.y, 1.0f / unscale.z, 1.0f / unscale.w);   // Apply unscale
-		value = (srcSRGB && !preScaled) ? sRGBtoLinear(value) : LinearToSRGB(value);
+		value.xyz = (srcSRGB && !preScaled) ? sRGBtoLinear(value) : linearToSRGB(value);
 		value *= Float4(scale.x, scale.y, scale.z, scale.w);  // Apply scale
 	}
 	else if(unscale != scale)
@@ -1484,30 +1482,6 @@
 	return z * sliceB + y * pitchB + x * bytes;
 }
 
-Float4 Blitter::LinearToSRGB(const Float4 &c)
-{
-	Float4 lc = Min(c, 0.0031308f) * 12.92f;
-	Float4 ec = Float4(1.055f) * Pow<Mediump>(c, (1.0f / 2.4f)) - 0.055f;  // TODO(b/149574741): Use a custom approximation.
-
-	Float4 s = c;
-	s.xyz = Max(lc, ec);
-
-	return s;
-}
-
-Float4 Blitter::sRGBtoLinear(const Float4 &c)
-{
-	Float4 lc = c * (1.0f / 12.92f);
-	Float4 ec = Pow<Mediump>((c + 0.055f) * (1.0f / 1.055f), 2.4f);  // TODO(b/149574741): Use a custom approximation.
-
-	Int4 linear = CmpLT(c, 0.04045f);
-
-	Float4 s = c;
-	s.xyz = As<Float4>((linear & As<Int4>(lc)) | (~linear & As<Int4>(ec)));  // TODO: IfThenElse()
-
-	return s;
-}
-
 Float4 Blitter::sample(Pointer<Byte> &source, Float &x, Float &y, Float &z,
                        Int &sWidth, Int &sHeight, Int &sDepth,
                        Int &sSliceB, Int &sPitchB, const State &state)
diff --git a/src/Device/Blitter.hpp b/src/Device/Blitter.hpp
index 65a9cf6..c7a9108 100644
--- a/src/Device/Blitter.hpp
+++ b/src/Device/Blitter.hpp
@@ -169,8 +169,6 @@
 	static void ApplyScaleAndClamp(Float4 &value, const State &state, bool preScaled = false);
 	static Int ComputeOffset(Int &x, Int &y, Int &pitchB, int bytes);
 	static Int ComputeOffset(Int &x, Int &y, Int &z, Int &sliceB, Int &pitchB, int bytes);
-	static Float4 LinearToSRGB(const Float4 &color);
-	static Float4 sRGBtoLinear(const Float4 &color);
 
 	using BlitFunction = FunctionT<void(const BlitData *)>;
 	using BlitRoutineType = BlitFunction::RoutineType;
diff --git a/src/Pipeline/ShaderCore.cpp b/src/Pipeline/ShaderCore.cpp
index a3bc666..507767c 100644
--- a/src/Pipeline/ShaderCore.cpp
+++ b/src/Pipeline/ShaderCore.cpp
@@ -699,6 +699,23 @@
 	return (UInt(truncBits.x) >> 20) | (UInt(truncBits.y) >> 9) | (UInt(truncBits.z) << 1);
 }
 
+Float4 linearToSRGB(const Float4 &c)
+{
+	Float4 lc = Min(c, 0.0031308f) * 12.92f;
+	Float4 ec = MulAdd(1.055f, Pow<Mediump>(c, (1.0f / 2.4f)), -0.055f);  // TODO(b/149574741): Use a custom approximation.
+
+	return Max(lc, ec);
+}
+
+Float4 sRGBtoLinear(const Float4 &c)
+{
+	Float4 lc = c * (1.0f / 12.92f);
+	Float4 ec = Pow<Mediump>(MulAdd(c, 1.0f / 1.055f, 0.055f / 1.055f), 2.4f);  // TODO(b/149574741): Use a custom approximation.
+
+	Int4 linear = CmpLT(c, 0.04045f);
+	return As<Float4>((linear & As<Int4>(lc)) | (~linear & As<Int4>(ec)));  // TODO: IfThenElse()
+}
+
 RValue<Bool> AnyTrue(const RValue<SIMD::Int> &bools)
 {
 	return SignMask(bools) != 0;
diff --git a/src/Pipeline/ShaderCore.hpp b/src/Pipeline/ShaderCore.hpp
index c9bc3e1..68d9da4 100644
--- a/src/Pipeline/ShaderCore.hpp
+++ b/src/Pipeline/ShaderCore.hpp
@@ -241,6 +241,8 @@
 sw::SIMD::UInt floatToHalfBits(sw::SIMD::UInt floatBits, bool storeInUpperBits);
 Float4 r11g11b10Unpack(UInt r11g11b10bits);
 UInt r11g11b10Pack(const Float4 &value);
+Float4 linearToSRGB(const Float4 &c);
+Float4 sRGBtoLinear(const Float4 &c);
 
 RValue<Bool> AnyTrue(const RValue<SIMD::Int> &bools);
 RValue<Bool> AnyFalse(const RValue<SIMD::Int> &bools);
diff --git a/src/Pipeline/SpirvShaderImage.cpp b/src/Pipeline/SpirvShaderImage.cpp
index 57f96e6..7adf2c7 100644
--- a/src/Pipeline/SpirvShaderImage.cpp
+++ b/src/Pipeline/SpirvShaderImage.cpp
@@ -21,11 +21,9 @@
 
 #include <spirv/unified1/spirv.hpp>
 
-namespace {
+namespace sw {
 
-using namespace sw;
-
-vk::Format SpirvFormatToVulkanFormat(spv::ImageFormat format)
+static vk::Format SpirvFormatToVulkanFormat(spv::ImageFormat format)
 {
 	switch(format)
 	{
@@ -76,20 +74,6 @@
 	}
 }
 
-SIMD::Float sRGBtoLinear(SIMD::Float c)
-{
-	SIMD::Float lc = c * (1.0f / 12.92f);
-	SIMD::Float ec = Pow<Mediump>((c + 0.055f) * (1.0f / 1.055f), 2.4f);  // TODO(b/149574741): Use a custom approximation.
-
-	SIMD::Int linear = CmpLT(c, 0.04045f);
-
-	return rr::As<SIMD::Float>((linear & rr::As<SIMD::Int>(lc)) | (~linear & rr::As<SIMD::Int>(ec)));  // TODO: IfThenElse()
-}
-
-}  // anonymous namespace
-
-namespace sw {
-
 SpirvShader::ImageInstruction::ImageInstruction(InsnIterator insn, const SpirvShader &spirv)
     : ImageInstructionSignature(parseVariantAndMethod(insn))
     , position(insn.distanceFrom(spirv.begin()))
@@ -909,9 +893,9 @@
 		break;
 	case VK_FORMAT_R8G8B8A8_SRGB:
 	case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
-		dst.move(0, ::sRGBtoLinear(SIMD::Float(packed[0] & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
-		dst.move(1, ::sRGBtoLinear(SIMD::Float((packed[0] >> 8) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
-		dst.move(2, ::sRGBtoLinear(SIMD::Float((packed[0] >> 16) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
+		dst.move(0, sRGBtoLinear(SIMD::Float(packed[0] & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
+		dst.move(1, sRGBtoLinear(SIMD::Float((packed[0] >> 8) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
+		dst.move(2, sRGBtoLinear(SIMD::Float((packed[0] >> 16) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
 		dst.move(3, SIMD::Float((packed[0] >> 24) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF));
 		break;
 	case VK_FORMAT_B8G8R8A8_UNORM:
@@ -921,9 +905,9 @@
 		dst.move(3, SIMD::Float((packed[0] >> 24) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF));
 		break;
 	case VK_FORMAT_B8G8R8A8_SRGB:
-		dst.move(0, ::sRGBtoLinear(SIMD::Float((packed[0] >> 16) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
-		dst.move(1, ::sRGBtoLinear(SIMD::Float((packed[0] >> 8) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
-		dst.move(2, ::sRGBtoLinear(SIMD::Float(packed[0] & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
+		dst.move(0, sRGBtoLinear(SIMD::Float((packed[0] >> 16) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
+		dst.move(1, sRGBtoLinear(SIMD::Float((packed[0] >> 8) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
+		dst.move(2, sRGBtoLinear(SIMD::Float(packed[0] & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF)));
 		dst.move(3, SIMD::Float((packed[0] >> 24) & SIMD::Int(0xFF)) * SIMD::Float(1.0f / 0xFF));
 		break;
 	case VK_FORMAT_R8G8B8A8_UINT:
@@ -1243,6 +1227,12 @@
 		            ((SIMD::UInt(Round(Min(Max(As<SIMD::Float>(texel[0]), SIMD::Float(0.0f)), SIMD::Float(1.0f)) * SIMD::Float(255.0f)))) << 16) |
 		            ((SIMD::UInt(Round(Min(Max(As<SIMD::Float>(texel[3]), SIMD::Float(0.0f)), SIMD::Float(1.0f)) * SIMD::Float(255.0f)))) << 24);
 		break;
+	case VK_FORMAT_B8G8R8A8_SRGB:
+		packed[0] = (SIMD::UInt(Round(Min(Max(linearToSRGB(As<SIMD::Float>(texel[2])), SIMD::Float(0.0f)), SIMD::Float(1.0f)) * SIMD::Float(255.0f)))) |
+		            ((SIMD::UInt(Round(Min(Max(linearToSRGB(As<SIMD::Float>(texel[1])), SIMD::Float(0.0f)), SIMD::Float(1.0f)) * SIMD::Float(255.0f)))) << 8) |
+		            ((SIMD::UInt(Round(Min(Max(linearToSRGB(As<SIMD::Float>(texel[0])), SIMD::Float(0.0f)), SIMD::Float(1.0f)) * SIMD::Float(255.0f)))) << 16) |
+		            ((SIMD::UInt(Round(Min(Max(linearToSRGB(As<SIMD::Float>(texel[3])), SIMD::Float(0.0f)), SIMD::Float(1.0f)) * SIMD::Float(255.0f)))) << 24);
+		break;
 	case VK_FORMAT_R8G8B8A8_SNORM:
 	case VK_FORMAT_A8B8G8R8_SNORM_PACK32:
 		packed[0] = (SIMD::Int(Round(Min(Max(As<SIMD::Float>(texel[0]), SIMD::Float(-1.0f)), SIMD::Float(1.0f)) * SIMD::Float(127.0f))) &
diff --git a/src/Reactor/Routine.hpp b/src/Reactor/Routine.hpp
index 24c5198..f9994ab 100644
--- a/src/Reactor/Routine.hpp
+++ b/src/Reactor/Routine.hpp
@@ -15,6 +15,16 @@
 #ifndef rr_Routine_hpp
 #define rr_Routine_hpp
 
+// A Clang extension to determine compiler features.
+// We use it to detect Sanitizer builds (e.g. -fsanitize=memory).
+#ifndef __has_feature
+#	define __has_feature(x) 0
+#endif
+
+#if __has_feature(memory_sanitizer)
+#	include "sanitizer/msan_interface.h"
+#endif
+
 #include <memory>
 
 namespace rr {
@@ -55,9 +65,14 @@
 	}
 
 	template<typename... Args>
-	Return operator()(Args &&...args) const
+	Return operator()(Args... args) const
 	{
-		return function(std::forward<Args>(args)...);
+#if __has_feature(memory_sanitizer)
+		// TODO(b/228253151): Fix support for detecting uninitialized parameters.
+		__msan_unpoison_param(sizeof...(args));
+#endif
+
+		return function(args...);
 	}
 
 	const FunctionType getEntry() const
diff --git a/src/Vulkan/VkPhysicalDevice.cpp b/src/Vulkan/VkPhysicalDevice.cpp
index 1881234..5369175 100644
--- a/src/Vulkan/VkPhysicalDevice.cpp
+++ b/src/Vulkan/VkPhysicalDevice.cpp
@@ -1779,7 +1779,7 @@
 	case VK_FORMAT_B8G8R8A8_SRGB:
 		pFormatProperties->optimalTilingFeatures |=
 		    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT |
-		    VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR;
+		    VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT;
 		pFormatProperties->bufferFeatures |=
 		    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT;
 		break;
diff --git a/tests/regres/deqp.json b/tests/regres/deqp.json
index dff972c..227d327 100644
--- a/tests/regres/deqp.json
+++ b/tests/regres/deqp.json
@@ -1,7 +1,7 @@
 {
     "remote": "https://github.com/KhronosGroup/VK-GL-CTS.git",
     "branch": "",
-    "sha": "6f8a7182bd26c6c410d0a0976fec70d5cf1a87d5",
+    "sha": "20a474e64382e8f5144122b30b3d7cab182421b8",
     "patches": [
         "tests/regres/deqp-patches/deqp-x11.patch"
     ]
diff --git a/tests/regres/testlists/vk-default/api.txt b/tests/regres/testlists/vk-default/api.txt
index 78f78d2..03f82dc 100644
--- a/tests/regres/testlists/vk-default/api.txt
+++ b/tests/regres/testlists/vk-default/api.txt
@@ -3756,8 +3756,14 @@
 dEQP-VK.api.device_init.create_device_features2
 dEQP-VK.api.device_init.create_device_unsupported_features
 dEQP-VK.api.device_init.create_device_queue2
-dEQP-VK.api.device_init.create_device_queue2_unmatched_flags
 dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail
+dEQP-VK.api.device_init.create_device_queue2_two_queues
+dEQP-VK.api.device_init.create_device_queue2_all_protected
+dEQP-VK.api.device_init.create_device_queue2_all_unprotected
+dEQP-VK.api.device_init.create_device_queue2_split
+dEQP-VK.api.device_init.create_device_queue2_all_families
+dEQP-VK.api.device_init.create_device_queue2_all_families_protected
+dEQP-VK.api.device_init.create_device_queue2_all_combinations
 dEQP-VK.api.object_management.single.instance
 dEQP-VK.api.object_management.single.device
 dEQP-VK.api.object_management.single.device_group
diff --git a/tests/regres/testlists/vk-default/conditional-rendering.txt b/tests/regres/testlists/vk-default/conditional-rendering.txt
index 5ed374a..9ac2d5c 100644
--- a/tests/regres/testlists/vk-default/conditional-rendering.txt
+++ b/tests/regres/testlists/vk-default/conditional-rendering.txt
@@ -324,6 +324,22 @@
 dEQP-VK.conditional_rendering.dispatch.condition_size.secondary_inherited.third_byte
 dEQP-VK.conditional_rendering.dispatch.condition_size.secondary_inherited.fourth_byte
 dEQP-VK.conditional_rendering.dispatch.condition_size.secondary_inherited.padded_zero
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.primary.zero.device_local
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.primary.zero.host_visible
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.primary.nonzero.device_local
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.primary.nonzero.host_visible
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.inherited.zero.device_local
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.inherited.zero.host_visible
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.inherited.nonzero.device_local
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.inherited.nonzero.host_visible
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.secondary.zero.device_local
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.secondary.zero.host_visible
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.secondary.nonzero.device_local
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.secondary.nonzero.host_visible
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.secondary_inherited.zero.device_local
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.secondary_inherited.zero.host_visible
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.secondary_inherited.nonzero.device_local
+dEQP-VK.conditional_rendering.dispatch.alloc_offset.secondary_inherited.nonzero.host_visible
 dEQP-VK.conditional_rendering.clear_attachments.condition_host_memory_expect_execution.clear_attachments
 dEQP-VK.conditional_rendering.clear_attachments.condition_host_memory_expect_noop.clear_attachments
 dEQP-VK.conditional_rendering.clear_attachments.condition_host_memory_expect_execution_inverted.clear_attachments
diff --git a/tests/regres/testlists/vk-default/draw.txt b/tests/regres/testlists/vk-default/draw.txt
index bbb8270..65a4b95 100644
--- a/tests/regres/testlists/vk-default/draw.txt
+++ b/tests/regres/testlists/vk-default/draw.txt
@@ -1038,6 +1038,27 @@
 dEQP-VK.draw.renderpass.multiple_interpolation.structured.with_sample_decoration.16_samples
 dEQP-VK.draw.renderpass.multiple_interpolation.structured.with_sample_decoration.32_samples
 dEQP-VK.draw.renderpass.multiple_interpolation.structured.with_sample_decoration.64_samples
+dEQP-VK.draw.renderpass.linear_interpolation.no_offset_1_sample
+dEQP-VK.draw.renderpass.linear_interpolation.no_offset_2_samples
+dEQP-VK.draw.renderpass.linear_interpolation.no_offset_4_samples
+dEQP-VK.draw.renderpass.linear_interpolation.no_offset_8_samples
+dEQP-VK.draw.renderpass.linear_interpolation.no_offset_16_samples
+dEQP-VK.draw.renderpass.linear_interpolation.no_offset_32_samples
+dEQP-VK.draw.renderpass.linear_interpolation.no_offset_64_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_min_1_sample
+dEQP-VK.draw.renderpass.linear_interpolation.offset_min_2_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_min_4_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_min_8_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_min_16_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_min_32_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_min_64_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_max_1_sample
+dEQP-VK.draw.renderpass.linear_interpolation.offset_max_2_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_max_4_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_max_8_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_max_16_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_max_32_samples
+dEQP-VK.draw.renderpass.linear_interpolation.offset_max_64_samples
 dEQP-VK.draw.renderpass.discard_rectangles.inclusive_rect_1
 dEQP-VK.draw.renderpass.discard_rectangles.inclusive_rect_2
 dEQP-VK.draw.renderpass.discard_rectangles.inclusive_rect_3
@@ -6740,6 +6761,7 @@
 dEQP-VK.draw.renderpass.output_location.array.r8g8-uint-mediump-output-uint
 dEQP-VK.draw.renderpass.output_location.shuffle.inputs-outputs
 dEQP-VK.draw.renderpass.output_location.shuffle.inputs-outputs-mod
+dEQP-VK.draw.renderpass.shader_invocation.helper_invocation
 dEQP-VK.draw.renderpass.ahb.triangle_list
 dEQP-VK.draw.renderpass.ahb.triangle_list_layers_3
 dEQP-VK.draw.renderpass.ahb.triangle_list_layers_5
@@ -7664,6 +7686,27 @@
 dEQP-VK.draw.dynamic_rendering.multiple_interpolation.structured.with_sample_decoration.16_samples
 dEQP-VK.draw.dynamic_rendering.multiple_interpolation.structured.with_sample_decoration.32_samples
 dEQP-VK.draw.dynamic_rendering.multiple_interpolation.structured.with_sample_decoration.64_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.no_offset_1_sample
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.no_offset_2_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.no_offset_4_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.no_offset_8_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.no_offset_16_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.no_offset_32_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.no_offset_64_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_min_1_sample
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_min_2_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_min_4_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_min_8_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_min_16_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_min_32_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_min_64_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_max_1_sample
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_max_2_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_max_4_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_max_8_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_max_16_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_max_32_samples
+dEQP-VK.draw.dynamic_rendering.linear_interpolation.offset_max_64_samples
 dEQP-VK.draw.dynamic_rendering.discard_rectangles.inclusive_rect_1
 dEQP-VK.draw.dynamic_rendering.discard_rectangles.inclusive_rect_2
 dEQP-VK.draw.dynamic_rendering.discard_rectangles.inclusive_rect_3
diff --git a/tests/regres/testlists/vk-default/graphicsfuzz.txt b/tests/regres/testlists/vk-default/graphicsfuzz.txt
index 5767362..c887501 100644
--- a/tests/regres/testlists/vk-default/graphicsfuzz.txt
+++ b/tests/regres/testlists/vk-default/graphicsfuzz.txt
@@ -34,7 +34,9 @@
 dEQP-VK.graphicsfuzz.cov-apfloat-reflect-denorm
 dEQP-VK.graphicsfuzz.cov-apfloat-unpackunorm-loop
 dEQP-VK.graphicsfuzz.cov-array-accesses-clamp
+dEQP-VK.graphicsfuzz.cov-array-cast-bool-float-div-by-zero-no-effect
 dEQP-VK.graphicsfuzz.cov-array-copies-loops-with-limiters
+dEQP-VK.graphicsfuzz.cov-array-set-element-condition-negative-modulus
 dEQP-VK.graphicsfuzz.cov-asin-undefined-smoothstep
 dEQP-VK.graphicsfuzz.cov-atan-trunc-vec4
 dEQP-VK.graphicsfuzz.cov-basic-block-discard-in-function
@@ -45,6 +47,7 @@
 dEQP-VK.graphicsfuzz.cov-bitfieldreverse-loop-limit-underflow
 dEQP-VK.graphicsfuzz.cov-bitwise-and-variable-and-its-negation
 dEQP-VK.graphicsfuzz.cov-bitwise-inverse-uniform-condition
+dEQP-VK.graphicsfuzz.cov-bitwise-or-uniform-zero-tenth-bit-loop-limit-find-lsb
 dEQP-VK.graphicsfuzz.cov-bitwise-shift-right-always-select-one
 dEQP-VK.graphicsfuzz.cov-bitwise-shift-right-full-bits-no-effect-clamp
 dEQP-VK.graphicsfuzz.cov-blockfrequency-several-for-loops
@@ -52,6 +55,7 @@
 dEQP-VK.graphicsfuzz.cov-cast-float-to-int-and-back
 dEQP-VK.graphicsfuzz.cov-clamp-loop-limit-increment-float-array
 dEQP-VK.graphicsfuzz.cov-clamp-lower-limit-from-always-false
+dEQP-VK.graphicsfuzz.cov-clamp-min-bitcount-uniform
 dEQP-VK.graphicsfuzz.cov-clamp-vector-component-condition-using-matrix
 dEQP-VK.graphicsfuzz.cov-clamp-vector-element-ceil-negative
 dEQP-VK.graphicsfuzz.cov-clamp-vector-variable-negative-offset
@@ -59,6 +63,7 @@
 dEQP-VK.graphicsfuzz.cov-color-output-undefined-in-unexecuted-branch
 dEQP-VK.graphicsfuzz.cov-combine-and-or-xor-gt-lt
 dEQP-VK.graphicsfuzz.cov-condition-bitfield-extract-integer
+dEQP-VK.graphicsfuzz.cov-condition-clamp-min-from-uniform-never-larger
 dEQP-VK.graphicsfuzz.cov-condition-increment-zero-to-one-divide-by-two
 dEQP-VK.graphicsfuzz.cov-condition-loop-index-bitwise-not
 dEQP-VK.graphicsfuzz.cov-condition-matrix-determinant-uniform
@@ -86,6 +91,7 @@
 dEQP-VK.graphicsfuzz.cov-constants-combine-add-sub
 dEQP-VK.graphicsfuzz.cov-constants-mix-uniform
 dEQP-VK.graphicsfuzz.cov-continue-break-discard-return-in-loop
+dEQP-VK.graphicsfuzz.cov-copy-array-elements-except-first-nested-loop-replace-identical-values
 dEQP-VK.graphicsfuzz.cov-copy-output-color-swizzle-array-indexing
 dEQP-VK.graphicsfuzz.cov-copy-prop-arrays-func-argument
 dEQP-VK.graphicsfuzz.cov-copy-prop-arrays-no-stores
@@ -102,6 +108,7 @@
 dEQP-VK.graphicsfuzz.cov-dag-combiner-same-cond-nested
 dEQP-VK.graphicsfuzz.cov-dead-branch-func-return-arg
 dEQP-VK.graphicsfuzz.cov-dead-code-unreachable-merge
+dEQP-VK.graphicsfuzz.cov-decrement-vector-elements-clamp-index
 dEQP-VK.graphicsfuzz.cov-derivative-uniform-vector-global-loop-count
 dEQP-VK.graphicsfuzz.cov-descending-loop-index-temporary-array
 dEQP-VK.graphicsfuzz.cov-descending-loop-min-max-always-zero
@@ -113,8 +120,10 @@
 dEQP-VK.graphicsfuzz.cov-do-while-negative-iterator-nested-loops-increment-array-element
 dEQP-VK.graphicsfuzz.cov-do-while-switch-case-bitcount-findmsb
 dEQP-VK.graphicsfuzz.cov-double-if-true-in-loop
+dEQP-VK.graphicsfuzz.cov-double-negation-fragcoord-cast-ivec2-bitwise-and
 dEQP-VK.graphicsfuzz.cov-dummy-function-loop-array-element-increment-never-read
 dEQP-VK.graphicsfuzz.cov-empty-loop-minus-one-modulo-variable-one
+dEQP-VK.graphicsfuzz.cov-enable-bits-pixel-location-negate-not-equal-one
 dEQP-VK.graphicsfuzz.cov-exp2-two
 dEQP-VK.graphicsfuzz.cov-extend-uniform-vec2-to-vec3-matrix-multiply
 dEQP-VK.graphicsfuzz.cov-findlsb-division-by-zero
@@ -161,33 +170,58 @@
 dEQP-VK.graphicsfuzz.cov-fract-smoothstep-undefined
 dEQP-VK.graphicsfuzz.cov-fract-trunc-always-zero
 dEQP-VK.graphicsfuzz.cov-fragcood-multiple-conditions-function-loop-global-counter
+dEQP-VK.graphicsfuzz.cov-fragcoord-and-one-or-same-value
 dEQP-VK.graphicsfuzz.cov-fragcoord-bitwise-and-loop-reduce-value-index-array
 dEQP-VK.graphicsfuzz.cov-fragcoord-bitwise-not
 dEQP-VK.graphicsfuzz.cov-fragcoord-clamp-array-access
 dEQP-VK.graphicsfuzz.cov-fragcoord-conditions-never-return-index-array-using-uniform
+dEQP-VK.graphicsfuzz.cov-fragcoord-integer-loop-reduce-to-range
+dEQP-VK.graphicsfuzz.cov-fragcoord-loop-limit-negative-decrease-sum-first-iteration
 dEQP-VK.graphicsfuzz.cov-fragcoord-multiple-conditions-function-global-loop-counter-simplified
 dEQP-VK.graphicsfuzz.cov-fragcoord-multiply
+dEQP-VK.graphicsfuzz.cov-function-always-return-negative-bitfield-extract
 dEQP-VK.graphicsfuzz.cov-function-argument-uniform-float-loop-never-return
+dEQP-VK.graphicsfuzz.cov-function-clamp-min-identical-shift-right
+dEQP-VK.graphicsfuzz.cov-function-call-twice-clamp-global-variable
+dEQP-VK.graphicsfuzz.cov-function-divide-argument-until-lt-one
 dEQP-VK.graphicsfuzz.cov-function-find-lsb-ivec2-one
 dEQP-VK.graphicsfuzz.cov-function-fragcoord-condition-always-return
+dEQP-VK.graphicsfuzz.cov-function-infinite-loop-always-return
+dEQP-VK.graphicsfuzz.cov-function-infinite-loop-return-identical-condition
 dEQP-VK.graphicsfuzz.cov-function-large-array-max-clamp
+dEQP-VK.graphicsfuzz.cov-function-large-loop-break-argument-lte-global-loop-bound
+dEQP-VK.graphicsfuzz.cov-function-loop-check-determinant-zero-return-vector
+dEQP-VK.graphicsfuzz.cov-function-loop-clamp-no-effect
 dEQP-VK.graphicsfuzz.cov-function-loop-condition-uniform-shift-right
 dEQP-VK.graphicsfuzz.cov-function-loop-condition-variable-less-than-min-itself
 dEQP-VK.graphicsfuzz.cov-function-loop-copy-array-elements-based-on-arguments
+dEQP-VK.graphicsfuzz.cov-function-loop-modify-ivec-components-infinite-loop-never-executed
 dEQP-VK.graphicsfuzz.cov-function-loop-same-conditions-multiple-times-struct-array
+dEQP-VK.graphicsfuzz.cov-function-loop-switch-increment-array-element-return
+dEQP-VK.graphicsfuzz.cov-function-min-integer-large-shift-unused
+dEQP-VK.graphicsfuzz.cov-function-loop-variable-multiplied-unused
+dEQP-VK.graphicsfuzz.cov-function-loops-vector-mul-matrix-never-executed
+dEQP-VK.graphicsfuzz.cov-function-multiple-loops-compare-integer-return
 dEQP-VK.graphicsfuzz.cov-function-nested-do-whiles-looped-once
 dEQP-VK.graphicsfuzz.cov-function-nested-loops-break-early-never-discard
 dEQP-VK.graphicsfuzz.cov-function-nested-loops-limit-uniform-xor-uniform
+dEQP-VK.graphicsfuzz.cov-function-set-struct-field-zero-loop-reset-first-element
+dEQP-VK.graphicsfuzz.cov-function-parameter-zero-divided-by-uniform
+dEQP-VK.graphicsfuzz.cov-function-round-unpack-half-2x16
+dEQP-VK.graphicsfuzz.cov-function-switch-case-constant-clamp-transpose-identity-matrices
 dEQP-VK.graphicsfuzz.cov-function-trivial-switch-case
 dEQP-VK.graphicsfuzz.cov-function-two-loops-limit-using-arguments-array-element-copies
 dEQP-VK.graphicsfuzz.cov-function-undefined-shift-left-index-array-with-return-value
 dEQP-VK.graphicsfuzz.cov-function-unpack-unorm-2x16-one
+dEQP-VK.graphicsfuzz.cov-function-unused-argument-single-loop-iteration-icrement-global-counter
 dEQP-VK.graphicsfuzz.cov-function-variable-plus-one-minus-one
 dEQP-VK.graphicsfuzz.cov-function-vec2-never-discard
 dEQP-VK.graphicsfuzz.cov-function-with-nested-loops-called-from-nested-loops
 dEQP-VK.graphicsfuzz.cov-global-loop-bound-true-logical-or
+dEQP-VK.graphicsfuzz.cov-global-loop-count-array-struct-field-set-int-array-element
 dEQP-VK.graphicsfuzz.cov-global-loop-counter-accumulate-integer-condition-large-array-elements
 dEQP-VK.graphicsfuzz.cov-global-loop-counter-exhaust-calling-function-twice
+dEQP-VK.graphicsfuzz.cov-global-loop-counter-findlsb-zero
 dEQP-VK.graphicsfuzz.cov-global-loop-counter-float-accumulate-matrix
 dEQP-VK.graphicsfuzz.cov-global-loop-counter-for-loop-function-call-inside-never-called
 dEQP-VK.graphicsfuzz.cov-global-loop-counter-main-function-call
@@ -205,11 +239,13 @@
 dEQP-VK.graphicsfuzz.cov-inc-array-element-loop-lsb
 dEQP-VK.graphicsfuzz.cov-inc-inside-switch-and-for
 dEQP-VK.graphicsfuzz.cov-increment-array-element-in-loop
+dEQP-VK.graphicsfuzz.cov-increment-array-element-usub-borrow
 dEQP-VK.graphicsfuzz.cov-increment-float-in-loop-abs
 dEQP-VK.graphicsfuzz.cov-increment-global-counter-loop-function
 dEQP-VK.graphicsfuzz.cov-increment-inside-clamp
 dEQP-VK.graphicsfuzz.cov-increment-int-loop-counter-mod-array
 dEQP-VK.graphicsfuzz.cov-increment-multiple-integers
+dEQP-VK.graphicsfuzz.cov-increment-one-array-element-check-index-from-fragcoord
 dEQP-VK.graphicsfuzz.cov-increment-vector-array-matrix-element
 dEQP-VK.graphicsfuzz.cov-increment-vector-component-with-matrix-copy
 dEQP-VK.graphicsfuzz.cov-increment-vector-function-call-conditional
@@ -271,14 +307,19 @@
 dEQP-VK.graphicsfuzz.cov-ivec-shift-right-by-large-number
 dEQP-VK.graphicsfuzz.cov-large-for-loop-exit-early-set-iterator-array-element
 dEQP-VK.graphicsfuzz.cov-large-int-array-nested-loops-set-ivec-index-component-sum
+dEQP-VK.graphicsfuzz.cov-large-loop-break-early-condition-iterator-divided
+dEQP-VK.graphicsfuzz.cov-large-loop-multiply-integer-by-uniform-one
+dEQP-VK.graphicsfuzz.cov-large-number-of-false-conditions-return-discard-continue
 dEQP-VK.graphicsfuzz.cov-ldexp-exponent-undefined-divided-fragcoord-never-executed
 dEQP-VK.graphicsfuzz.cov-ldexp-undefined-mat-vec-multiply
 dEQP-VK.graphicsfuzz.cov-left-shift-array-access
 dEQP-VK.graphicsfuzz.cov-left-shift-right-shift-compare
 dEQP-VK.graphicsfuzz.cov-liveinterval-different-dest
 dEQP-VK.graphicsfuzz.cov-loop-abs-multiply-offset
+dEQP-VK.graphicsfuzz.cov-loop-array-element-bitfield-insert-undefined-never-read
 dEQP-VK.graphicsfuzz.cov-loop-array-element-copy-index-clamp-sign
 dEQP-VK.graphicsfuzz.cov-loop-array-index-decrement-never-negative
+dEQP-VK.graphicsfuzz.cov-loop-array-struct-field-index-array-with-uniforms
 dEQP-VK.graphicsfuzz.cov-loop-break-after-first-iteration-set-array-element
 dEQP-VK.graphicsfuzz.cov-loop-break-floor-nan-never-executed
 dEQP-VK.graphicsfuzz.cov-loop-clamp-to-one-empty-condition
@@ -287,32 +328,55 @@
 dEQP-VK.graphicsfuzz.cov-loop-condition-divide-by-uniform-always-false
 dEQP-VK.graphicsfuzz.cov-loop-condition-double-negate
 dEQP-VK.graphicsfuzz.cov-loop-condition-filter-some-iterations-never-discard
+dEQP-VK.graphicsfuzz.cov-loop-condition-increment-integer-fallback-global-counter
 dEQP-VK.graphicsfuzz.cov-loop-condition-logical-or-never-iterated
+dEQP-VK.graphicsfuzz.cov-loop-decrease-integer-never-break
+dEQP-VK.graphicsfuzz.cov-loop-construct-vec4-from-vec4-clamp-same-min-max
+dEQP-VK.graphicsfuzz.cov-loop-copy-previous-array-element-first-undefined
+dEQP-VK.graphicsfuzz.cov-loop-decrease-vector-components-assign-multiple-times
+dEQP-VK.graphicsfuzz.cov-loop-decrease-vector-component-only-first-iteration
 dEQP-VK.graphicsfuzz.cov-loop-dfdx-constant-divide
 dEQP-VK.graphicsfuzz.cov-loop-exit-conditions-sampler-struct-integer-variable
 dEQP-VK.graphicsfuzz.cov-loop-divide-uninitialized-vector-min-unused
+dEQP-VK.graphicsfuzz.cov-loop-find-lsb-eight-fragcoord-never-discard
 dEQP-VK.graphicsfuzz.cov-loop-findmsb-findlsb
 dEQP-VK.graphicsfuzz.cov-loop-fragcoord-identical-condition
+dEQP-VK.graphicsfuzz.cov-loop-global-counter-break-set-ivec-elements
+dEQP-VK.graphicsfuzz.cov-loop-function-call-negative-argument
 dEQP-VK.graphicsfuzz.cov-loop-increase-iterator-condition-uniform-copy-array-elements
 dEQP-VK.graphicsfuzz.cov-loop-increment-array-elements-clamp-index
+dEQP-VK.graphicsfuzz.cov-loop-increment-array-index-array-usuborrow-feedback
 dEQP-VK.graphicsfuzz.cov-loop-increment-integer-findmsb-minus-uniform
 dEQP-VK.graphicsfuzz.cov-loop-increment-integer-set-output-color-break
 dEQP-VK.graphicsfuzz.cov-loop-increment-matrix-element-break-after-first-iteration
 dEQP-VK.graphicsfuzz.cov-loop-increment-or-divide-by-loop-index
+dEQP-VK.graphicsfuzz.cov-loop-index-array-max-negative-zero
 dEQP-VK.graphicsfuzz.cov-loop-integer-half-minus-one
+dEQP-VK.graphicsfuzz.cov-loop-iterator-bitwise-negate
 dEQP-VK.graphicsfuzz.cov-loop-iterator-plus-one-variable-outside-index-array
+dEQP-VK.graphicsfuzz.cov-loop-large-array-index-clamp-negative-value
+dEQP-VK.graphicsfuzz.cov-loop-iterator-start-shift-left-right
 dEQP-VK.graphicsfuzz.cov-loop-limiter-min-findlsb
 dEQP-VK.graphicsfuzz.cov-loop-limiter-uniform-bitwise-and-one-always-break
 dEQP-VK.graphicsfuzz.cov-loop-logical-xor
+dEQP-VK.graphicsfuzz.cov-loop-multiple-iterator-variables-copy-array-elements
+dEQP-VK.graphicsfuzz.cov-loop-read-array-index-from-array-data
+dEQP-VK.graphicsfuzz.cov-loop-max-divide-integer-by-ten
+dEQP-VK.graphicsfuzz.cov-loop-overwrite-sample-texture-as-color-output
+dEQP-VK.graphicsfuzz.cov-loop-min-max-clamp-increment-only-first-iteration
 dEQP-VK.graphicsfuzz.cov-loop-replace-output-color-restore-original
 dEQP-VK.graphicsfuzz.cov-loop-returns-behind-true-and-false
+dEQP-VK.graphicsfuzz.cov-loop-sampled-texel-integer-counter
 dEQP-VK.graphicsfuzz.cov-loop-set-vector-components-pow-two
 dEQP-VK.graphicsfuzz.cov-loop-start-from-one-switch-case-invalid-color-never-executed
 dEQP-VK.graphicsfuzz.cov-loop-start-from-one-switch-case-never-executed
 dEQP-VK.graphicsfuzz.cov-loop-struct-array-field-set-value-self-dependency
 dEQP-VK.graphicsfuzz.cov-loop-switch-discard-never-hit
 dEQP-VK.graphicsfuzz.cov-loop-two-iterators-increment-array-empty-do-while
+dEQP-VK.graphicsfuzz.cov-loop-variable-less-than-itself
 dEQP-VK.graphicsfuzz.cov-loop-with-two-integers
+dEQP-VK.graphicsfuzz.cov-loops-and-conditions-fragcoord-always-false-floats-one
+dEQP-VK.graphicsfuzz.cov-loops-same-code-outside-loop
 dEQP-VK.graphicsfuzz.cov-machine-scheduler-for-if-pow
 dEQP-VK.graphicsfuzz.cov-machine-basic-block-for-for-for-less-than
 dEQP-VK.graphicsfuzz.cov-machinevaluetype-one-iter-loop
@@ -329,7 +393,9 @@
 dEQP-VK.graphicsfuzz.cov-min-intbitstofloat-undefined-never-used
 dEQP-VK.graphicsfuzz.cov-min-negative-constant-always-below-one
 dEQP-VK.graphicsfuzz.cov-min-nested-loop-same-value-for-variables
+dEQP-VK.graphicsfuzz.cov-min-vec2-transpose-mat2-identity
 dEQP-VK.graphicsfuzz.cov-missing-return-value-function-never-called
+dEQP-VK.graphicsfuzz.cov-mix-uninitialized-float-never-selected
 dEQP-VK.graphicsfuzz.cov-mix-uninitialized-vector-select-only-defined-data
 dEQP-VK.graphicsfuzz.cov-mod-acosh
 dEQP-VK.graphicsfuzz.cov-mod-uint-bits-float
@@ -346,34 +412,51 @@
 dEQP-VK.graphicsfuzz.cov-nested-functions-loop-assign-global-array-element
 dEQP-VK.graphicsfuzz.cov-nested-functions-struct-arrays-vector-lengths
 dEQP-VK.graphicsfuzz.cov-nested-loop-continue-inner-copy-array-element
+dEQP-VK.graphicsfuzz.cov-nested-loop-decrease-vector-components
 dEQP-VK.graphicsfuzz.cov-nested-loop-initializer-value-increased-inside
 dEQP-VK.graphicsfuzz.cov-nested-loop-large-array-index-using-vector-components
 dEQP-VK.graphicsfuzz.cov-nested-loop-not-greater-than-increment-array-element
 dEQP-VK.graphicsfuzz.cov-nested-loop-undefined-smoothstep-never-executed
+dEQP-VK.graphicsfuzz.cov-nested-loops-assign-vector-elements-from-matrix-no-negative-indexing
+dEQP-VK.graphicsfuzz.cov-nested-loops-array-choose-red-last-iteration
 dEQP-VK.graphicsfuzz.cov-nested-loops-clamp-ivec-push-constant-increment-global-counter
 dEQP-VK.graphicsfuzz.cov-nested-loops-copy-array-elements-skip-first
+dEQP-VK.graphicsfuzz.cov-nested-loops-decrease-ivec-component
 dEQP-VK.graphicsfuzz.cov-nested-loops-different-iteration-rates-function-copy-array-elements
 dEQP-VK.graphicsfuzz.cov-nested-loops-divide-integer-constant-always-zero
 dEQP-VK.graphicsfuzz.cov-nested-loops-decrease-vector-component-by-matrix-element-global-loop-counter
 dEQP-VK.graphicsfuzz.cov-nested-loops-float-array-select-by-fragcoord
 dEQP-VK.graphicsfuzz.cov-nested-loops-float-bits-to-int-increment-array
+dEQP-VK.graphicsfuzz.cov-nested-loops-fragcoord-conditions-empty-blocks
 dEQP-VK.graphicsfuzz.cov-nested-loops-fragcoord-never-return-descending-loop
 dEQP-VK.graphicsfuzz.cov-nested-loops-global-counter-func-set-struct-field
 dEQP-VK.graphicsfuzz.cov-nested-loops-global-counter-increment-single-element
 dEQP-VK.graphicsfuzz.cov-nested-loops-global-loop-counter-do-while-accumulate-float
 dEQP-VK.graphicsfuzz.cov-nested-loops-global-loop-counter-fragcoord-negative-always-false
+dEQP-VK.graphicsfuzz.cov-nested-loops-global-loop-counter-index-array-vec2
 dEQP-VK.graphicsfuzz.cov-nested-loops-global-loop-counter-iterator-dependency
 dEQP-VK.graphicsfuzz.cov-nested-loops-global-loop-counter-output-color-from-backup
 dEQP-VK.graphicsfuzz.cov-nested-loops-identical-iterator-names-multiply-divide
+dEQP-VK.graphicsfuzz.cov-nested-loops-identical-iterators-compare-same-array-elements
 dEQP-VK.graphicsfuzz.cov-nested-loops-increase-integer-dot-product
+dEQP-VK.graphicsfuzz.cov-nested-loops-inner-loop-min-copy-array-elements
+dEQP-VK.graphicsfuzz.cov-nested-loops-never-change-array-element-one
 dEQP-VK.graphicsfuzz.cov-nested-loops-redundant-condition
+dEQP-VK.graphicsfuzz.cov-nested-loops-return-inside-while-never-executed
 dEQP-VK.graphicsfuzz.cov-nested-loops-sample-opposite-corners
 dEQP-VK.graphicsfuzz.cov-nested-loops-set-struct-data-verify-in-function
+dEQP-VK.graphicsfuzz.cov-nested-loops-substract-matrix-element-change-float
+dEQP-VK.graphicsfuzz.cov-nested-loops-switch-case-fallthrough-increment-array-element
+dEQP-VK.graphicsfuzz.cov-nested-loops-temporary-copy-output-color-index-matrix
+dEQP-VK.graphicsfuzz.cov-nested-loops-while-min-iterator-condition-always-false
+dEQP-VK.graphicsfuzz.cov-nested-loops-switch-add-zero-matrix-elements
+dEQP-VK.graphicsfuzz.cov-nested-loops-while-condition-integer-range-increment-variable
 dEQP-VK.graphicsfuzz.cov-nested-structs-function-set-inner-struct-field-return
 dEQP-VK.graphicsfuzz.cov-nir-array-access
 dEQP-VK.graphicsfuzz.cov-nir-opt-large-constants-for-clamp-vector-access
 dEQP-VK.graphicsfuzz.cov-nir-opt-loop-unroll-if-if-if-if-do-while
 dEQP-VK.graphicsfuzz.cov-nouble-negation-fragcoord-cast-ivec2-bitwise-and
+dEQP-VK.graphicsfuzz.cov-one-bitwise-and-bitwise-or-full-bits
 dEQP-VK.graphicsfuzz.cov-one-minus-clamp-always-one-cast-to-int
 dEQP-VK.graphicsfuzz.cov-optimize-phis-for
 dEQP-VK.graphicsfuzz.cov-optimize-phis-for-for-do-while-if-if
@@ -406,6 +489,7 @@
 dEQP-VK.graphicsfuzz.cov-schedule-dag-rrlist-mix-log-cos
 dEQP-VK.graphicsfuzz.cov-selection-dag-inverse-clamp
 dEQP-VK.graphicsfuzz.cov-selection-dag-same-cond-twice
+dEQP-VK.graphicsfuzz.cov-set-array-elements-to-uniform-check-value-break
 dEQP-VK.graphicsfuzz.cov-set-output-color-function-call-nested-loop
 dEQP-VK.graphicsfuzz.cov-set-vector-cos-fragcoord
 dEQP-VK.graphicsfuzz.cov-sign-array-access-uaddcarry
@@ -429,9 +513,12 @@
 dEQP-VK.graphicsfuzz.cov-single-block-elim-self-assign
 dEQP-VK.graphicsfuzz.cov-single-store-elim-assume-store
 dEQP-VK.graphicsfuzz.cov-sinh-ldexp
+dEQP-VK.graphicsfuzz.cov-small-array-overwrite-most-uniform-value-check-data-break
 dEQP-VK.graphicsfuzz.cov-ssa-rewrite-case-with-default
 dEQP-VK.graphicsfuzz.cov-step-sinh
+dEQP-VK.graphicsfuzz.cov-struct-array-ivec-negative-modulus-empty-function
 dEQP-VK.graphicsfuzz.cov-struct-float-array-mix-uniform-vectors
+dEQP-VK.graphicsfuzz.cov-struct-int-array-select-uniform-ivec
 dEQP-VK.graphicsfuzz.cov-sum-uniform-vector-components-round
 dEQP-VK.graphicsfuzz.cov-switch-fallthrough-variable-from-first-case
 dEQP-VK.graphicsfuzz.cov-tail-duplicator-for-for-for
@@ -441,10 +528,13 @@
 dEQP-VK.graphicsfuzz.cov-texel-double-negation
 dEQP-VK.graphicsfuzz.cov-transpose-multiply
 dEQP-VK.graphicsfuzz.cov-trunc-fract-always-zero
+dEQP-VK.graphicsfuzz.cov-two-functions-loops-copy-elements-infinite-loops-never-executed
 dEQP-VK.graphicsfuzz.cov-two-functions-modify-struct-array-element-return-from-loop
 dEQP-VK.graphicsfuzz.cov-two-loops-global-loop-counter-shift-right-zero-increment-array-element
+dEQP-VK.graphicsfuzz.cov-two-loops-increment-integer-global-counter-break-square-threshold
 dEQP-VK.graphicsfuzz.cov-two-nested-loops-switch-case-matrix-array-increment
 dEQP-VK.graphicsfuzz.cov-types-return-in-main-never-hit
+dEQP-VK.graphicsfuzz.cov-uadd-carry-bit-count-index-array
 dEQP-VK.graphicsfuzz.cov-ucarryadd-one-and-one
 dEQP-VK.graphicsfuzz.cov-undefined-inversesqrt-reflect
 dEQP-VK.graphicsfuzz.cov-uniform-vector-copy
diff --git a/tests/regres/testlists/vk-default/wsi.txt b/tests/regres/testlists/vk-default/wsi.txt
index 5a98150..edc17d8 100644
--- a/tests/regres/testlists/vk-default/wsi.txt
+++ b/tests/regres/testlists/vk-default/wsi.txt
@@ -15,6 +15,9 @@
 dEQP-VK.wsi.xlib.surface.destroy_null_handle
 dEQP-VK.wsi.xlib.surface.initial_size
 dEQP-VK.wsi.xlib.surface.resize
+dEQP-VK.wsi.xlib.surface.query_formats_surfaceless
+dEQP-VK.wsi.xlib.surface.query_present_modes_surfaceless
+dEQP-VK.wsi.xlib.surface.query_formats2_surfaceless
 dEQP-VK.wsi.xlib.swapchain.create.min_image_count
 dEQP-VK.wsi.xlib.swapchain.create.image_format
 dEQP-VK.wsi.xlib.swapchain.create.image_extent
@@ -470,6 +473,9 @@
 dEQP-VK.wsi.xcb.surface.destroy_null_handle
 dEQP-VK.wsi.xcb.surface.initial_size
 dEQP-VK.wsi.xcb.surface.resize
+dEQP-VK.wsi.xcb.surface.query_formats_surfaceless
+dEQP-VK.wsi.xcb.surface.query_present_modes_surfaceless
+dEQP-VK.wsi.xcb.surface.query_formats2_surfaceless
 dEQP-VK.wsi.xcb.swapchain.create.min_image_count
 dEQP-VK.wsi.xcb.swapchain.create.image_format
 dEQP-VK.wsi.xcb.swapchain.create.image_extent
@@ -923,6 +929,9 @@
 dEQP-VK.wsi.wayland.surface.query_devgroup_present_capabilities
 dEQP-VK.wsi.wayland.surface.query_devgroup_present_modes
 dEQP-VK.wsi.wayland.surface.destroy_null_handle
+dEQP-VK.wsi.wayland.surface.query_formats_surfaceless
+dEQP-VK.wsi.wayland.surface.query_present_modes_surfaceless
+dEQP-VK.wsi.wayland.surface.query_formats2_surfaceless
 dEQP-VK.wsi.wayland.swapchain.create.min_image_count
 dEQP-VK.wsi.wayland.swapchain.create.image_format
 dEQP-VK.wsi.wayland.swapchain.create.image_extent
@@ -1378,6 +1387,9 @@
 dEQP-VK.wsi.android.surface.query_devgroup_present_modes
 dEQP-VK.wsi.android.surface.destroy_null_handle
 dEQP-VK.wsi.android.surface.initial_size
+dEQP-VK.wsi.android.surface.query_formats_surfaceless
+dEQP-VK.wsi.android.surface.query_present_modes_surfaceless
+dEQP-VK.wsi.android.surface.query_formats2_surfaceless
 dEQP-VK.wsi.android.swapchain.create.min_image_count
 dEQP-VK.wsi.android.swapchain.create.image_format
 dEQP-VK.wsi.android.swapchain.create.image_extent
@@ -2554,6 +2566,9 @@
 dEQP-VK.wsi.win32.surface.destroy_null_handle
 dEQP-VK.wsi.win32.surface.initial_size
 dEQP-VK.wsi.win32.surface.resize
+dEQP-VK.wsi.win32.surface.query_formats_surfaceless
+dEQP-VK.wsi.win32.surface.query_present_modes_surfaceless
+dEQP-VK.wsi.win32.surface.query_formats2_surfaceless
 dEQP-VK.wsi.win32.swapchain.create.min_image_count
 dEQP-VK.wsi.win32.swapchain.create.image_format
 dEQP-VK.wsi.win32.swapchain.create.image_extent
@@ -3009,6 +3024,9 @@
 dEQP-VK.wsi.macos.surface.destroy_null_handle
 dEQP-VK.wsi.macos.surface.initial_size
 dEQP-VK.wsi.macos.surface.resize
+dEQP-VK.wsi.macos.surface.query_formats_surfaceless
+dEQP-VK.wsi.macos.surface.query_present_modes_surfaceless
+dEQP-VK.wsi.macos.surface.query_formats2_surfaceless
 dEQP-VK.wsi.macos.swapchain.create.min_image_count
 dEQP-VK.wsi.macos.swapchain.create.image_format
 dEQP-VK.wsi.macos.swapchain.create.image_extent
@@ -3462,6 +3480,9 @@
 dEQP-VK.wsi.headless.surface.query_devgroup_present_capabilities
 dEQP-VK.wsi.headless.surface.query_devgroup_present_modes
 dEQP-VK.wsi.headless.surface.destroy_null_handle
+dEQP-VK.wsi.headless.surface.query_formats_surfaceless
+dEQP-VK.wsi.headless.surface.query_present_modes_surfaceless
+dEQP-VK.wsi.headless.surface.query_formats2_surfaceless
 dEQP-VK.wsi.headless.swapchain.create.min_image_count
 dEQP-VK.wsi.headless.swapchain.create.image_format
 dEQP-VK.wsi.headless.swapchain.create.image_extent